Custom Kria SOM Platform Creation Example - 2024.1 English

Vitis Tutorials: Vitis Platform Creation

Document ID
XD101
Release Date
2024-05-30
Version
2024.1 English

Version: Vitis 2023.2

The AMD Kria™ KV260 Vision AI Starter Kit is the development platform for Kria K26 SOM. The KV260 is built for advanced vision application development without requiring complex hardware design knowledge. It is based on the AMD UltraScale+™ MPSoC technology similar to ZCU104 evaluation board. In this example, you will extend the ZCU104 custom embedded platform creation example to KV260 Vision AI Starter Kit.

To highlight the differences between KV260 and ZCU104, this example will simplify the descriptions of general steps that are shared between all MPSoC platforms, but add more KV260 specific contents. If you have question in some steps, cross reference ZCU104 custom embedded platform creation example, or ask questions in Github Issues page.

For your reference, The structure of this example system is shown in the following figure..

3PLHardwareSoftwareARM Trusted FirmwareAXI interruptDPU……EthernetEMMCUARTSDUSBDPHDMIButtonLEDSWITCHGPIO DriverZOL/XRT DriverInterrupt DriverUSB DriverSD DriverI2C DriverEthernet DriverQSPI DriverDDR Driver XRTVector AdditionAPP ClockgeneratorUserKernelSTEP3STEP2STEP1ARM resourcesPL resourcesData & control stream KV260DDR4DPU is kernel added and linked by V++ in step3. Bottom left below the application is the platform created in step1 and step2.SOM K26A53*4R5F*2QSPI

Custom Platform Planning

The platform you create should be able to run these applications:

  • Vitis acceleration examples like Vector Addition.

  • Vitis-AI applications will be available in the future.

The hardware design of the platform would provide basic support for Vitis acceleration. It is similar to the ZCU104 example.

In regards of software setup, you will use the common image because it can expedite the process of platform creation.

Kria SOM Architecture and Vitis Acceleration Considerations

Kria SOM has some ease-of-use designs for application developers. It provides software-like development experience on FPGA and SoC, such as real time reloading applications without rebooting the system. In order to allow updating PL design without rebooting Linux, it boots Linux from Arm® Cortex®-A53 and loads the FPGA bitstream using Linux. To ensure the board can always boot successfully and prevent the board get into brick status by accidental mistakes, the Kria SOM boot flow forces to boot Linux from QSPI mode and the boot firmware in QSPI is read-only. Linux will mount rootfs in the SD card. You can update the rootfs in the SD Card.

Vitis platform and application development can be divided into these parts:

  1. Platform hardware creation in the AMD Vivado™ Design Suite. It exports an XSA file with clock, reset, AXI interface, and interrupt signals and properties.

  2. Platform software preparation with common image or using PetaLinux tool, including Linux kernel, rootfs, device tree, and boot components.

  3. Platform creation in the Vitis to combine all hardware and software components and generate XPFM description.

  4. Create applications in Vitis against the platform. Vitis generates host application, xclbin and sd_card.img.

  5. Write the sd_card.img to SD card or update host application and xclbin to an existing SD card.

Because the Kria SOM Starter Kit provides an off-the-shelf boot image and has its enhanced boot sequence, Vitis platform developers and application developers can skip some steps above. Here is a summary for what needs to be done by Kria platform and acceleration application developers.

VivadoPetalinuxVitis/XSCTSTEP1STEP2Vitisxclbinelfbinshell.jsonSTEP3Platform CreationApplication DevelopmentCommon Image createdtsXSAxpfmdtboSysrootcan be generated from Petalinuxor extracted from common image. We suggest using sysrootfrom the common image as it can expedite the process ofplatform creationsysroot

Procedure Required Actions Output Skipped Actions
Platform Hardware Same as step 1 XSA N/A
Platform Creation Same as step 2; generate the device tree overlay for platform programmable logic (PL) of XSA; create Vitis platform pl.dtbo, sysroot and XPFM Skip adding the boot components
Application Creation Same as step 3; Create application Host App, XCLBIN skip generating the sd_card.img
Transfer files and run Use scp to copy generated files to Linux partition on SD card skip writing sd_card.img

NOTE: In step 2, after extracting the common image there are a lot of output components, the only valuable output product in this case is sysroot. It is used for host application cross-compilation. Because the boot images of KV260 Starter Kit is fixed, you do not need to generate any boot components, e.g., FSBL, etc.

NOTE: In this case, we assume you start to do this experiment after you have already had your board booted up successfully. If you do not, refer to kv260 getting started page.

The following chapters will explain the details about these steps.

Step-by-Step Tutorial

The platform creation steps are introduced in the following pages. Each page describes one major step in the platform creation process.

Start from Step 1: Vivado Design.

References

Copyright © 2020–2023 Advanced Micro Devices, Inc

Terms and Conditions