AMD EDF - Segmented Configuration using AMD Yocto Project recipes

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

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 full option generates a complete device tree for the programmable logic.

  • The output pl.dtsi should 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

Steps:

  1. Add the dfx-user-dts class to your Yocto recipe.

  2. 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/xilinx on 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

Follow: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258090078/Hardware+Application+Development#Deploying-the-PL-firmware-application-onto-target

 

References & Further Reading

 

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.