With all requirements prepared for Vitis acceleration platforms, you can package them together and generate the final Vitis acceleration platform. You can do this using either the Vitis Unified IDE or the Python CLI (command line) tool.
- In the Vitis IDE, select to create a Vitis platform.
- Using Python CLI, you can use the platform related command to create a platform and the associated domains. For more information about XSCT, see Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400).
The platform is an encapsulation of multiple hardware and software components. This capsulation makes it easier to hand off deliveries from hardware-oriented engineers to application developers.
The following files and information are packaged into the platform.
- Hardware Specification
- This is an extensible XSA file.
- Software Components
- These are added to the platform as a Linux domain that enables OpenCL runtime.
Root Filesystem
FAT32 and Ext4 partition types are supported by Vitis. The root filesystem is optional in platform creation step because it can be assigned during Vitis application creation step.
An image directory needs to be set during platform creation. All contents in this directory will be packaged into final SD card image. If the target file system is FAT32, the files will be placed to SD card root directory; if the target file system is Ext4, the files will be placed to root directory of the first FAT32 partition.
Boot Components
A BIF file must be provided so that the application build process can package the boot image.
The following is an example of a BIF file for ZYNQMP:
/* linux */
the_ROM_image:
{
[fsbl_config] a53_x64
[bootloader] <fsbl.elf>
[pmufw_image] <pmufw.elf>
[destination_device=pl] <bitstream>
[destination_cpu=a53-0, exception_level=el-3, trustzone] <bl31.elf>
[destination_cpu=a53-0, exception_level=el-2] <u-boot.elf>
}
the_ROM_image:
{
image {
{ type=bootimage, file=vck190.pdi }
{ type=bootloader, file=plm.elf }
{ core=psm, file=psmfw.elf }
}
image {
id = 0x1c000000, name = subsystem, delay_handoff
{ type=raw, load=0x00001000, file=system.dtb }
{ core = a72-0, exception_level=el-3, trustzone, file=bl31.elf }
{ core = a72-0, exception_level=el-2, file=u-boot.elf }
}
}
A boot components directory, including all the files described in the BIF, should also be provided. In this example, the components directory provides fsbl.elf, pmufw.elf, bl31.elf, and u-boot.elf. These boot components can be generated by PetaLinux or from common images. AMD recommends that you use a common image if there is no system customization.
In the Vitis application building
and packaging state, v++
looks for the files in the
boot components directory and replaces the placeholders with real file names and
paths. It then calls Bootgen to generate BOOT.BIN.