Introduction

This document describes how to enable new platforms for OpenCPI, which will support the execution of component-based applications. It assumes a basic knowledge of OpenCPI as described in the OpenCPI Application Development Guide and OpenCPI Component Development Guide. Platform development is the third class of OpenCPI development, beyond application development and component development. It involves configuring, adapting and wrapping various aspects of hardware platforms, operating systems, system libraries, and development tools. It applies to general-purpose computing platforms, FPGA platforms and GPU platforms. It applies to self-hosted development as well as cross development.

The questions this document tries to answer are:

  • What are suitable platforms?

  • What is involved in making a platform ready?

  • What are the actual steps and processes for making a platform ready?

These questions are answered separately for enabling development targeting the platform (creating and building assets) vs. enabling execution on the platform (running applications).

These questions are answered separately for GPP, FPGA, and GPU platforms.

After introducing all these topics, this document has sections for each aspect in the following table:

Table 54: Categories of Platform Development

Examples

Development Tools

Execution Environment

I/O and Interconnect Device Support

General-Purpose Processors (GPPs)

X86
(Intel/AMD),
ARM
(Xilinx/Altera/TI)
Compiler tool chains,
make
python
Operating System,
Libraries,
Drivers

FPGAs

Xilinx
(Virtex,
Zynq-7000)
Intel/Altera
(Stratix, Cyclone)
Mentor/Modelsim
Synthesis
Place&route
Simulation
Bitstream loading
Control Plane Drivers
Data Plane Drivers

Directly attached I/O devices

Graphics Processors

Nvidia Tesla
AMD FirePro
Compilers,
Profilers
Execution Management
Drivers
Data Plane Drivers

References

This document requires information from several others. To actually perform platform development it is generally useful to understand OpenCPI component and application development, as well as the installation process for previously enabled platforms. To simply get a flavor for what is involved in platform development, only the OpenCPI Introduction Briefing (and Glossary) as well as the OpenCPI Platform Development briefings are required.

Table 55: Table of Reference Documents

Title

Published By

Link

OpenCPI User Guide

OpenCPI

OpenCPI User Guide

OpenCPI Installation Guide

OpenCPI

OpenCPI Installation Guide

OpenCPI Component Development Guide

OpenCPI

OpenCPI Component Development Guide

OpenCPI Application Development Guide

OpenCPI

OpenCPI Application Development Guide