Embedded Platform Components and Architecture - 2023.2 English

Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 English

A platform is the starting point of your Vitis design. Vitis applications are built on top of the platforms.

An embedded platform includes a hardware platform and a software platform.

Hardware Platform

The hardware platform is the static, unchanging portion of your hardware design. It includes the Xilinx Support Archive (XSA) file exported from the Vivado Design Suite.

The hardware platform describes platform hardware setup and the acceleration resources that can be used by acceleration applications, for example, input and output interfaces, clocks, AXI buses, and interrupts. Vitis adds kernels and infrastructure modules to the hardware design as needed to facilitate data movement. Acceleration kernels can share data with platform IPs, but cannot change or modify them. For information about setting up the hardware platform, refer to Installing Xilinx Runtime and Platforms.

Software Platform

The software platform is the environment that runs the software to control acceleration kernels for acceleration applications. Both fixed and extensible platforms require the software platform. It includes the domain setup and boot components setup to reset and configure the hardware platform. The elements of the software platform include the following:

Root File System (RFS)
Includes binaries, libraries, and setups for a Linux file system. In the AMD-provided common rootfs, XRT has been installed so that acceleration application can run on this Linux environment.
Kernel Image
A compiled Linux kernel. The common kernel image provided by AMD includes most AMD peripheral drivers.
Sysroot
Used for cross compilation. It provides the libraries to be linked when compiling applications for a target system.

All pre-built AMD platforms have the software platform provided. By default, the platforms have a Linux domain with the Xilinx Runtime (XRT) enable so that acceleration applications can be run on the platform. Because the device tree is unique to each platform, it is provided as a component with the Linux XRT domain inside the platform.

For platform customization, the software platform can be downloaded from the Common Images for Embedded Vitis Platforms section of the Downloads Center. The common image packages contain the following components:

  • Pre-built Linux kernel
  • Pre-built root file system
  • boot files (pre-built u-boot.elf, boot.scr, bl31.elf, etc)
  • sdk.sh script to generate the Sysroot

Linux domain components must be provided when there is a Linux domain in the platform. These components can be generated by PetaLinux, Yocto, or third-party frameworks. Because these components can be shared across all AMD demo boards for the given FPGA family, a common Linux component image generated by PetaLinux is provided for all standard platforms.

Tip: When creating a Linux application in the Vitis IDE, the Linux domain components in the platform setting will be the default settings. You can overwrite these settings with components installed elsewhere.

The source files for embedded platforms are available on GitHub at Vitis Embedded Platform Source. You can use these files as the source of your own custom platform. To regenerate the common Linux components from the platform source files set the environment variable COMMON_RFS_KRNL_SYSROOT=FALSE before running make.