AMD EDF - Segmented Configuration using AMD Yocto Project recipes
Overview
This page describes how to enable segmented configuration for AMD devices using AMD Yocto Project recipes. In this flow, the programmable logic (PL) is divided into independently configurable segments, allowing modular configuration updates after boot while keeping the overall system under Yocto control.
The segmented flow uses instructions
1. Generate the pl.dtsi Using gen-machine-conf
Tool:
gen-machine-conf/README.md at main · Xilinx/gen-machine-confgen-machine-confFollow for more: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258188188/Custom+Hardware+Development+AMD+Versal+device+portfolio#Generating-a-new-Yocto-Project-Machine-Configuration , https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3164209180
Command Example:
# Using --template option
$ gen-machine-conf parse-sdt --template <sources/meta-amd-adaptive-socs/meta-amd-adaptive-socs-bsp/conf/machineyaml/template-yaml-file> --hw-description <path-to-sdt-handoff-dir> -O <machine-override>
--machine-name <machine-name>
or
# Using without template and with custom layer
$ gen-machine-conf parse-sdt --hw-description <path-to-sdt-handoff-dir> \
-c <path-to-layer>/sources/meta-custom-bsp/conf -g full -O <machine-override> --machine-name <machine-name>The
-g fulloption generates a complete device tree for the programmable logic.The output
pl.dtsishould match the hardware described in your post-boot module.
Tip: Ensure your hardware design is finalized before generating the pl.dtsi.
2. Integrate Segmented Configuration with dfx-user-dts
Yocto Class:
meta-xilinx/meta-xilinx-core/classes-recipe/dfx_user_dts.bbclass at rel-v2024.2 · Xilinx/meta-xilinxdfx-user-dtsInstructions:
meta-xilinx/docs/README.dfx.user.dts.md at rel-v2025.2 · Xilinx/meta-xilinx
Steps:
Add the
dfx-user-dtsclass to your Yocto recipe.Follow the README instructions to update your device tree for segmented configuration:
meta-xilinx/docs/README.dfx.user.dts.md at rel-v2025.2 · Xilinx/meta-xilinx
Note: For segmented configuration, you do not need a shell.json file.
3. Deploy and Run dfx-mgr
Purpose: Manages loading of segmented configuration data at runtime.
Firmware Path:
/lib/firmware/xilinx
Command Example:
dfx-mgr-client -load <Package>Ensure your partial bitstreams or configuration files are placed in
/lib/firmware/xilinxon your target device.
Building a compatible PL design payload and creating a Firmware Bundle (Device Tree Overlay)
VEK385 example Follow: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258090078/Hardware+Application+Development#Building-a-compatible-PL-design-payload-and-creating-a-Firmware-Bundle-(Device-Tree-Overlay)
Deploying the PL firmware application onto target
References & Further Reading
gen-machine-conf/README.md at main · Xilinx/gen-machine-confhttps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3164209180
meta-xilinx/meta-xilinx-core/classes-recipe/dfx_user_dts.bbclass at rel-v2024.2 · Xilinx/meta-xilinx
meta-xilinx/docs/README.dfx.user.dts.md at rel-v2025.2 · Xilinx/meta-xilinxhttps://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3164209163
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.