AMD EDF - Common Specifications

AMD EDF - Common Specifications

This page contains specification and architecture information for AMD Embedded Development Framework (EDF) that is applicable to all supported Evaluation boards and custom development flows.

Table of Contents

General Specifications

This section provides common sections of the AMD Embedded Development Framework (EDF) specification, which are implemented across multiple platforms and device families. Some common specifications might be superseded based on device or evaluation board feature sets, see the device and board specific specification pages for more information.

Boot Architecture for AMD Evaluation boards

For AMD evaluation boards a common boot architecture has been adopted, which is implemented in the BSPs and pre-built disk images provided.

The boot architecture includes support for Arm SystemReady™ IR and Trusted Firmware-A Platform Security Architecture Firmware Update (PSA FWU)

  • Platforms are not certified, this is a reference implementation that could be used on a pathway to certification.

Multistage boot with deferred PL load* - Default Boot Architecture

This is the default boot flow for BSP and pre-built images for AMD Evaluation boards supporting the latest AMD Adaptive SoC and FPGA devices, and supporting AMD EDF development flows.

 

SOC_BootFlow_highlevel_update_PDI_mulit.png

Stage 1 - Primary boot device: OSPI / QSPI - AMD EDF boot firmware with image select and recovery

  • AMD EDF boot firmware - See AMD EDF - Common Specifications | Boot Firmware overview for detailed information

    • Identifies the board from the EEPROM

    • Loads board specific .pdi

    • Loads TF-A

  • TF-A runs and loads U-Boot using the device specific device tree (Identified from EEPROM)

  • U-boot loads and boots a Linux disk image from the secondary boot device

    • Initial version of AMD EDF - Distro Boot

    • To follow as future default - UEFI boot

 

Stage 2 - Secondary boot device : SDMMC / USB / UFS - Common** Linux disk Image

  • The Linux disk image will boot to a console - PL not loaded

  • PL can be loaded from Linux user space

    • The Linux disk image contains PL Firmware payloads - See <ref to payloads>

    • See <ref> for command to load, re-load, or automate loading of PL payloads

 

Single stage boot with deferred PL load - Optional boot flow

A single stage boot flow is also supported, and is used for some AMD-EDF Linux BSPs and pre-built Linux disk images.

SOC_BootFlow_highlevel_update_PDI_single (1).png

Stage 1 - Primary boot device : SD Card / UFS / USB

  • Boot.pdi is loaded from the Primary boot device

  • TF-A is loaded and runs, TF-A loads U-Boot using a board specific device tree.

  • U-Boot runs, and then boots the Linux disk image (Common** Linux disk Image) from the Primary boot device using a board specific device tree

    • Initial version of AMD EDF - Distro Boot

    • To follow as future default - UEFI boot

  • The Linux disk image will boot to a console - PL not loaded

  • PL can be loaded from Linux user space

 

*AMD Adaptive SoCs and FPGA with support for Segmented Configuration or deferred PL load : AMD Versal™ portfolio, AMD Zynq™ UltraScale+™ MPSOC.

** Common Linux disk image across compatible AMD Adaptive SoC and FPGA, typically across device series.

AMD EDF supports all boot and configuration options available on AMD Adaptive SoC and FPGA

  • QSPI, OSPI, SDCARD, UFS, JTAG, etc

  • Single stage boot flows (e.g. SDCARD),  Multi stage boot flows (for example, QSPI/OSPI à SDCARD / UFS)

  • Segmented configuration with delayed PL load

  • Monolithic (or flat) configuration (PL load at PS Boot time - Single bitstream / PDI)

Custom boot architectures using alternative boot modes can be created, stored and built as custom image recipes, allowing end users to reflect their specific platform requirements. See Creating a custom image (Link and section needed).

 

Initial programming of Primary boot device

System Controller enabled evaluation boards

  • System Controller can be used to program the OSPI / QSPI flash used by the target device.

  • AMD Vivado Design Suite can also be used to program OSPI / QSPI flash used by the target device, see the relevant Vivado documentation or evaluation board user guide for more information.

Boot firmware Linux utility

EDF 25.05 - AMD Vivado Design Suite 2025.1

  • This feature will follow in a future release of AMD Embedded Development Framework

Boot Firmware overview

The AMD EDF boot firmware is an evolution of the Image Selector Application used on AMD Kria™ SoM, and is normally pre-loaded on AMD evaluation boards, but may need to be manually loaded for Early Access (EA) valuation boards or evaluation boards supported by AMD-EDF but which were originally released prior to 2025.

The boot firmware includes support for:

  • Multiple boot images (boot.pdi)

  • Fallback and recovery using an A-B scheme by default.

  • Arm SystemReady™ IR and Trusted Firmware-A Platform Security Architecture Firmware Update (PSA FWU)

    • Platforms are not certified, this is a reference implementation that could be used on a pathway to certification.

  • Flash management from Linux user space

The main components within the AMD EDF Boot firmware are outlined below

Image Selector Application

The Image Selector application boots on a cold reset of the device (POR_B) and acts as an platform controller selecting the "A" or "B" boot image from the firmware store implemented elsewhere in the primary boot non volatile memory device.

In the context of the Platform Security Firmware Update for the A-profile Arm® Architecture specification, this is represented by the "BMC/Immutable" component of the boot flow shown in the figure below. 

The Image Selectors behavior is data driven, based on the information available in the metadata fields of its primary boot device. 

 

ImageSelectorApp_bootflow.png

The Image Selector app also implements a function for initiating the Image Recovery application which can be initiated by the user through physical interaction with the platform at time of POR_B. This is implemented with a MIO-GPIO accessible pushbutton where available.

The Image Selector in Versal devices stores soft reset data such as SystemReady-DT boot counter in the PMC Persistent Global General Storage registers. These "user" facing registers are documented at this public Wiki.

The Image Selector uses PERS_GLOB_GEN_STORAGE4 with the following SystemReady-DT information consolidated within the register, aligned by byte.

  • MSB = "Magic" number - Unique value to help validate correct register read, Value = 0x1D

  • MSB-1 = Boot Counter

  • MSB-2 = Image Selected, Value = 0x0, "A", 0x1 "B"

  • MSB-3 = Rollback Counter

Image Recovery Application

The image recovery application simplifies the process for users to update the primary and secondary boot devices without requiring AMD-Xilinx specific tools. It supports the "Recovery Mode" called out in the Arm Platform Security Firmware Update for the A-profile Arm Architecture specification, and supports update of "A", "B" and the corresponding "Metadata" fields in the primary boot memory device. 

See the boot firmware Linux utility for information on how to update and manage the images in the boot flash (Primary Boot device).

Boot Firmware Image Update Utility

The image update utility is a Linux utility integrated within the Linux OS capable of interfacing with the primary boot device (QSPI/OSPI) and doing the following:

  • Updating the non-active A or B partition, modifying the necessary meta-data, and preparing the system for a reboot in which it switches to the new firmware (FW) image (boot.pdi). This functionality is referred to as the "Update Client" in the Arm FW Update guide.

  • Inquiring on the status of the boot device FW contents - To follow

The Boot Firmware Image Update Utility checks the GUID of a given FW before attempting updates in order to ensure that the FW capsule is aligned with the hardware (HW) target it is about to attempt an update on. The board GUID is located in the Board-ID EEPROM on AMD Evaluation boards.

OSPI/QSPI Memory Layout - Common Specification

The OSPI Memory Map bellow illustrates the high-level structure of the memory layout specifically designed to be consistent across multiple memory devices and AMD Evaluation boards.

Each region in the memory map has a designated functionality, as indicated in the "R or R/W" column. This column depicts whether the sector is read-only (R) or both read and write (R/W). Notably, some platforms might lock read-only sectors utilizing the hardware-level lock feature built into QSPI/OSPI systems.

By providing a unified framework for memory layouts, the OSPI (Flash) Memory Map simplifies the process of adapting to different memory devices and ensures a seamless experience across multiple platforms.

Offset

Description

Size

(# sectors)

R or R/W

Offset

Description

Size

(# sectors)

R or R/W

0x0

Image Selector App

1

R

1 * (sector boundary)

Image Selector App - Backup

1

R

+1 sector

U-Boot variables - Bank A

1 sector

R/W

+1 sector

U-Boot variables - Bank A

1 sector

R/W

Remaining Device

User Area

 

R/W

X * (sector boundary)

Image Recovery App

Size of Image Recovery Linux

R

Y * (sector boundary)

Bank "A" Image Directory

Accommodate max device image size

R/W

Z * (sector boundary)

Bank "B" Image Directory

Accommodate max device image size

R/W

 

Image Selector Revision

1

R

 

Image Recovery Revision

1 sector

R

 

FW Update Metadata 

1 sector

R/W

 

FW Update Metadata - Backup

1 sector

R/W

Note: Offsets of the primary boot device will be aligned to device sector offsets, to support corresponding erase and lock functions which occur in the physical memory device at sector boundaries. 

Board-ID EEPROM

AMD Evaluation boards with support for AMD-EDF boot flows contain a Board-ID EEPROM, which includes a unique device identifier used for the UEFI Capsule Update GUID firmware identifier or "image type" that is embedded as part of the capsule header.

The following table provides pre-allocation of GUIDs based on target platforms for the Basecamp FW alignment:

Board Name

GUID (16 bytes)

Board Name

GUID (16 bytes)

VEK280 Evaluation Board

a1f0d8c9-b3a7-4e09-9f25-7c9823b8a6f2

VEK385 Evaluation Board

cb27e54d-8f3a-4c77-8a72-1c76d2d4e938

Over The Air (OTA) Firmware (FW) Deployment - To follow

AMD-EDF also contains support for OTA FW update. New FW update capsules can be deployed to AMD targets via Linux packages (*.deb, *.rpm) aligned with the platforms target Linux distribution. Package names will be aligned with the platform name, and package revision information will be updated and incrementally aligned with the FW image revision to allow "apt update" like operations to grab new FW revisions automatically. 

EDF 25.05 - AMD Vivado Design Suite 2025.1

  • This feature will follow in a future release of the AMD Embedded Development Framework

 

Trusted Platform Module (TPM) - To follow

AMD-EDF boot firmware is architected to support the concept and implementation of "measured boot", where a boot time measurement of each element FW boot time configuration sequence can be stored.

This functionality is due to be added in a future release.

EDF 25.05 - AMD Vivado Design Suite 2025.1

  • This feature will follow in a future release of the AMD Embedded Development Framework

PS common minimum specification

This specification has a strong device specific element, also see the PS sections of AMD EDF - Device specific specifications and information

The default PS configuration aligned with the board defines fixed MIO, clocks, and enabling of clock frequencies enabled by the speed grade of the target device. 

  • MIO Controller - All MIO controllers (for example, I2C, SPI) associated with fixed peripherals of the platform will be enabled and configured based on the hardware board design.

  • MIO I/O Configurations - All MIO default I/O controls (for example,. pull-ups, slew rates) will be based on the hardware platform design. 

  • Secondary Boot - Should be set to "None". The Vivado feature is for a PLM PDI load from the secondary device, but in the context of Basecamp, the secondary boot device for boot Linux is managed by U-Boot and not PLM. 

The minimal requirements for PS connected peripherals and settings are as follows and also reflect minimal peripheral requirements for evaluation boards:

Embedded common platform Configurable Example Design (CED)

The embedded common platform CED is mapped to all supported evaluation boards and enforces common settings and PS minimum specifications to provide a unified starting point for platforms, reference designs and BSP creation. A part based flow uses the same for custom board development.

The CED implements the PS common minimum specification, and other items to support the EDF common boot architecture, using support in the AMD Vivado™ Design Suite for segmented configuration. This allows for creation of multiple compatible PL payloads that can be loaded at runtime onto a single initial boot image.

  • The files needed to build compatible designs are included in the CED package in the AMD Vivado™ Design Suite installation.

When the CED is mapped to an Evaluation board, the minimum requirements are extended to ensure that all PS enabled IP supported by the evaluation board are supported.

See AMD EDF - Board specific specifications and information

 

CED Hierarchy

The CED flow also includes hierarchy from AMD Vivado™ Design Suite version 2025.1, and allows users to build alternative configurations or sub-platforms from a single CED. One CED can generate multiple alternative platform configurations or designs with aligned settings, based on user selections.

The picture below tries to illustrate this hierarchy

  • Common PS settings + multiple alternate PL Payloads

image-2025-3-25_10-45-22-1.png

EDF 25.05 - AMD Vivado™ Design Suite 2025.1

  • The supported alternative PL payloads for VEK385 are limited to

    • Base - Minimal PL (default)

    • Extensible - Vitis Extensible Platform

 

Minimal PL payload (default)

This a deliberately simplistic PL design, it gives enough functionality to prove the PL is available.

This PL Payload is also shipped as part of the common disk image, and captured as the "default" PL firmware via dfx-mgr during the Linux boot process.

PL Payload content

  • AXI-BRAM

    • To support simple read/write scratchpad between the PL and the PS. It shall be configured with a single BRAM utilization which acts as a memory scratchpad.

  • AXI-GPIO

CED_25.1_v3.png

 

TF-A

EDF 25.05 - AMD Vivado Design Suite 2025.1

  • Documentation of the TF-A specification to follow

Additional information

 

U-Boot

U-Boot supports distro boot (initial AMD EDF boot flow) and integrates UEFI extensions to ensure compliance with Arm System Ready IR standards. By incorporating UEFI extensions and following a UEFI boot flow.

  • Initial versions of AMD EDF will use Distro Boot

  • Future version of AMD EDF will use UEFI boot flows by default

U-Boot serves as a standardized bootloader implementation that seamlessly enables Arm System Ready IR support.

To learn more about Arm System Ready IR, refer to the official Arm documentation: Arm SystemReady IR

For terminal commands on selecting boot configuration see:

SOC_BootFlow_highlevel_update_PDI_muli.png

OSPI - AMD EDF Getting started - Walk through examples

SD Mode - AMD EDF Getting started - Walk through examples

EDF Linux®OS

Linux kernel configurations used by AMD EDF 

Minimal, base and debug kernel configurations are provided, and are common across multiple AMD Adaptive SOC and FPGA device series and device portfolios. These configurations support AMDs evaluation board experience, Validation and optimization might be required for production use.

Minimal: A minimal configuration to optimize kernel size for use on platforms with restricted and boot time.

EDF 25.05 - AMD Vivado™ Design Suite 2025.1

  • Specification and configuration for the minimal kernel configuration is scheduled for a future release.

Base: A rich kernel configuration focused on ease of use rather than performance, debug or boot time.

  • All common AMD Adaptive drivers and commonly used kernel features are enabled.

 

Debug: Based on the Base configuration, but with additional features for kernel debug.

EDF 25.05 - AMD Vivado™ Design Suite 2025.1

  • Specification and configuration for the debug kernel configuration is scheduled for a future release.

  • Example changes below:

    • devmem2 enabled

    • debug symbol generation enabled

Kernel configuration locations

The kernel configurations used by AMD EDF are maintained and built within the meta-basecamp and meta-xilinx Yocto Project layers. They are based on the kernel configuration maintained in linux-xlnx (GitHub - Xilinx/linux-xlnx: The official Linux kernel from Xilinx).

 

Kernel configuration detail

Arm 64bit based Adaptive SOC - AMD Versal™ portfolio, AMD Zynq™ UltraScale+™ MPSOC

base Linux defconfig : linux-xlnx (GitHub - Xilinx/linux-xlnx: The official Linux kernel from Xilinx)

arch/arm64/configs/xilinx_defconfig

The kernel configuration is expanded by the Yocto Project build recipes used to create the disk images.

See : <yocto project base directory>/sources/

meta-basecamp/recipes-kernel/linux-xlnx/

meta-xilinx/meta-xilinx-core/recipes-kernel/linux-xlnx/linux-xlnx.inc

 

Arm 32-bit based Adaptive SoC (arm) - AMD Zynq 7000 SoCs

base Linux defconfig : linux-xlnx (GitHub - Xilinx/linux-xlnx: The official Linux kernel from Xilinx)

arch/arm/configs/xilinx_zynq_defconfig

 

Linux RootFS

AMD EDF provides two root fs configurations:

Minimal (A True Small Footprint Configuration):

  • This variant aims to provide a minimal footprint with essential functionalities. It is designed to be lightweight, simple, and best-suited for embedded systems with strict resource constraints.

VEK385 EA - AMD Vivado™ Design Suite 2025.1 EA

  • Specification and configuration for the minimal root fs configuration is scheduled for a future release.

 

Full:

  • This variant is the most feature-rich, offering a robust set of packages and components for a complete platform experience. It includes software stacks, multimedia codecs, networking support, and other packages catering to a wide range of use-cases.

The image .bb files (BitBake recipes for images) are typically found in the meta-edf layer of a Yocto project. The standard image recipes are in meta-edf/recipes-extended/images/.

The build system takes the MACHINE_FEATURES (available in the .conf file), into consideration and modifies the RootFS configuration accordingly.

Once the build process is complete, Yocto generates the manifest file based on the chosen image recipe and rootfs configurations. The manifest file offers a view of what packages and their versions are included in the built image.

The -g option is used in the bitbake command to enable various debugging features, especially the task dependency visualization using .dot files. When used with the build command, it generates log files and .dot files that represent task dependency graphs for the specified target.

Usage:

bitbake -g <your-target>

Upon executing this command, a set of .dot files will be generated in the tmp/deploy/tasks/ directory.

System Level Memory Map

The system level memory map shown here will focus on the DDR, OCM, and TCM allocations within the AMD EDF architecture.

The following table defines the default allocations used by AMD EDF, and what AMD reference designs will use as their starting points.  Due to the nature of device tree definition this can be changed by end users.

Start Addr

Size (MB)

Description

Fixed/Variable

XMPU 

Start Addr

Size (MB)

Description

Fixed/Variable

XMPU 

Low DDR - 2GB

0x000 0000 0000

16

Versal PLM

Fixed

Yes - PLM FW 

0x000 0100 0000

6

TFA - Transfer list / handoffs

Fixed

TBD

0x000 0160 0000

2

TFA - Core runtime memory

Fixed

Yes - TFA FW

0x000 0180 0000

128

OP-TEE shared buffers & dynamic TAs

Fixed

Yes - Secure OS/Secure Partition

0x000 0980 0000

40

RPU Core 0-9 OpenAMP (4MB / core)

Scale # RPUs

Yes - RPU

0x000 0C00 0000 

320

RPU+ISP reservation (10 RPU cores)

Scale # ISPs

Yes - RPU

0x000 2000 0000

1536

Linux - Low DDR

LOW_DDR Remainder

No

High DDR

0x008 0000 0000

0-3800

ISP frame buffer allocation 

Scale # ISPs

 

TBD

Platform dependent

Multimedia system reservations

Use case dependent

 

TBD

Platform dependent

Linux - High DDR

HIGH_DDR Remainder

 

TBD

Platform dependent

Linux CMA 

TBD

 

TBD

Platform dependent

PL & AIE dedicated allocation(s)

 

 

DDR Memory Map

The following represents the map reflecting the number of RPUs and physical memory available in the platform. 

Start Addr

Size (MB)

Description

Fixed/Variable

XMPU 

Low DDR - 2GB

0x000 0000 0000

16

Versal PLM

Fixed

Yes - PLM FW 

0x000 0100 0000

6

TFA - Transfer list / handoffs

Fixed

TBD

0x000 0160 0000

2

TFA - Core runtime memory

Fixed

Yes - TFA FW

0x000 0180 0000

128

OP-TEE shared buffers & dynamic TAs

Fixed

Yes - Secure OS/Secure Partition

0x000 0980 0000

8

RPU Core 0-1 OpenAMP allocations (4MB / core)

x2 RPU Cores

Yes - RPU

-

32

Free memory

 

 

0x000 0C00 0000 

320 (400MB requested)

RPU+ISP reservation

x3 ISP

Yes - RPU

0x000 2000 0000

1536

Linux - Low DDR

LOW_DDR Remainder

No

High DDR

0x008 0000 0000

2048

ISP frame buffer allocation (DDRMC closest to ISPs)

Scale # ISPs

 

-

TBD

Linux - High DDR

HIGH_DDR Remainder

 

-

TBD

PL & AIE dedicated allocation(s)

 

 

Disk images and Yocto Project Machines

AMD EDF disk image targets are built from the different Linux Kernel and root FS configurations.

AMD EDF Linux® BSP disk image

  • All binary disk images are based on the EDF Linux® distribution

  • Pre-built image names

    • EDF 25.05 release

      • EDF boot firmware (OSPI image)

        • Versal AI Edge Series Gen 2 VEK385 edf-ospi-versal-2ve-2vm-vek385-sdt-seg.bin

      • EDF Linux® disk image Disk Image

        • Versal AI Edge Series Gen 2 edf-linux-disk-image-amd-cortexa78-mali-common.rootfs.wic.xz

        • ZCU104 edf-linux-disk-image-amd-cortexa53-mali-common+zynqmp-zcu104-sdt-full.rootfs.wic.xz

        • ZCU111 edf-linux-disk-image-amd-cortexa53-common+zynqmp-zcu111-sdt-full.rootfs.wic.xz

  • Yocto Project pre-defined Machine names and build targets

    • EDF 25.05 release

      • EDF boot firmware (OSPI image)

        • Versal AI Edge Series Gen 2 VEK385 MACHINE=versal-2ve-2vm-vek385-sdt-seg bitbake edf-ospi

      • EDF Linux® disk image

        • Versal AI Edge Series Gen 2 MACHINE=amd-cortexa78-mali-common bitbake edf-linux-disk-image

        • Versal AI Edge MACHINE=amd-cortexa72-common bitbake edf-linux-disk-image

        • AMD Zynq™ UltraScale+™ MPSOC eg/ev family MACHINE=amd-cortexa53-mali-common bitbake edf-linux-disk-image

        • AMD Zynq™ UltraScale+™ MPSOC cg/dr family MACHINE=amd-cortexa53-common bitbake edf-linux-disk-image

      • Boot.bin

        • VEK385 MACHINE=versal-2ve-2vm-vek385-sdt-seg bitbake xilinx-bootbin

        • ZCU104 MACHINE=zynqmp-zcu104-sdt-full bitbake xilinx-bootbin

        • ZCU111 MACHINE=zynqmp-zcu111-sdt-full bitbake xilinx-bootbin

        • VEK280 MACHINE=versal-vek280-sdt-seg bitbake xilinx-bootbin

Related Links

 

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.

 





© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy