Application Development and Deployment
This section of the getting started guide provides walk through style examples using the AMD Embedded Development Framework (EDF) for application development and deployment using the pre-built image, segmented configuration enabled workflows, and Yocto Project™ recipes.
Table of Contents
Application Development and Deployment
Applications targeting Adaptive SoCs typically consist of hardware and software components. Hardware components include PL and/or AIE payloads typically provided as PDI and/or xclbin.
Software components include device drivers (for example, Linux kernel modules) and software libraries / applications (Linux user-space). In Linux, hardware payloads are packaged as firmware binaries (for example, PDI with device tree binary overlay (dtbo)). Different aspects of application development can be performed on the target, or on a host PC using a cross-development SDK environment.
This allows for testing, debugging, and iterating over changes quickly. Once the application is stable and ready for release, the Yocto Project build system provides a way to package applications for production deployment.
Software Application Development on Target
On-target development is convenient because you can use native compilers and tools and a workflow most developers are used to, similar to doing native x86 development on a workstation.
You can install a rich set of dev packages from the package feed and use familiar build systems such as make, autotools, cmake, or meson without having to set up a cross-development environment.
Software Application Development using SDK
An SDK for cross-development on an x86 host is useful when a user does not have access to a board for on-target development. Depending on the project, it can speed up the build task compared to building on-target. The downside is that the content of the SDK is fixed and it is not possible to install additional dev packages or utilities into an existing SDK whereas on target, packages can be installed from the package feed.
Hardware Application Development
This section covers how to generate PL images compatible with a base design or the EDF pre-built images, using Segmented Configuration. This enables different payload (PL or other) to be loaded or re-loaded from Linux at run time, speeding up development (test on running system) and enabling dynamic payload management on deployed systems with Linux/U-Boot as the system manager (for example version management, fallback, recovery).
Application Deployment using Yocto Recipies
Once applications have been created, the Yocto build system can be used to package and manage deployment. This might mean integration into the image build or using a package stream or container store to enable over the air updates to the running system.
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258090263/Application+Deployment+using+Yocto+Recipes+AMD+Versal+device+portfolio#Software-Application-Deployment - Software Applications
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258090263/Application+Deployment+using+Yocto+Recipes+AMD+Versal+device+portfolio#Kernel-module - Kernel Drivers / Modules
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258090263/Application+Deployment+using+Yocto+Recipes+AMD+Versal+device+portfolio#Firmware-Bundle - PL PDI and Device Tree
Application Deployment using Yocto Recipes AMD Versal device portfolio | Deploying a Container Image Hello World Example - Deploying using a container
Child Pages
Trademarks
Yocto Project and all related marks and logos are trademarks of The Linux Foundation. This website is not, in any way, endorsed by the Yocto Project or The Linux Foundation.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
© 2025 Advanced Micro Devices, Inc. Privacy Policy