Common Specifications
This page contains specification and architecture information for the AMD Embedded Development Framework (EDF), which is applicable to all supported evaluation boards and custom development flows.
Table of Contents
- 1 General Specifications
- 1.1 Boot Architecture for AMD Evaluation boards
- 1.1.1 Multi-Stage Boot with Deferred PL Load* - Default Boot Architecture
- 1.1.2 Single-Stage Boot with Deferred PL Load - Optional Boot Flow
- 1.1.3 Initial Programming of Primary Boot Device
- 1.1.4 Boot Firmware overview
- 1.1.5 Image Selector Application
- 1.1.6 Image Recovery Application
- 1.1.7 Boot Firmware Image Update Utility (fwupdate tool)
- 1.1.8 fwupdtool tool
- 1.1.8.1 fwupdtool get-devices
- 1.1.8.2 Generating Capsule files (cab) for use with fwupdate
- 1.1.8.3 Installing the CAB files with fwupdate
- 1.1.8.4 Accepting the update and existing Trial state
- 1.1.8.5 Image Selector output at boot time (EDF boot firmware)
- 1.1.8.6 The PLM output at boot time
- 1.1.8.7 U-boot output at boot time
- 1.1.8.8 Known issues in EDF 25.05.1
- 1.1.8.9 Known issues in EDF 25.11
- 1.1.9 OSPI/QSPI Memory Layout - Common Specification
- 1.1.10 Board-ID EEPROM
- 1.1.11 Over The Air (OTA) Firmware (FW) Deployment - To follow
- 1.1.12 Trusted Platform Module (TPM) - To follow
- 1.2 PS common minimum specification
- 1.3 Embedded common platform Configurable Example Design (CED)
- 1.3.1 CED Hierarchy
- 1.3.2 Minimal PL payload (default)
- 1.4 EDF prebuilt Yocto machine definitions
- 1.5 TF-A
- 1.5.1 Additional information
- 1.6 U-Boot
- 1.7 systemd-boot
- 1.8 EDF Linux®OS
- 1.8.1 Linux kernel configurations used by AMD EDF
- 1.8.1.1 Kernel configuration locations
- 1.8.1.2 Kernel configuration detail
- 1.8.2 Linux RootFS
- 1.8.1 Linux kernel configurations used by AMD EDF
- 1.9 System Level Memory Map
- 1.9.1 DDR Memory Map
- 1.10 Disk images and Yocto Project Machines
- 1.1 Boot Architecture for AMD Evaluation boards
- 2 Related Links
- 3 Child Pages
- 4 Trademarks
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 prebuilt 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 can be used on a pathway to certification.
Multi-Stage Boot with Deferred PL Load* - Default Boot Architecture
This is the default boot flow for BSP and prebuilt images for AMD evaluation boards, supporting the latest AMD adaptive SoC and FPGA devices and AMD EDF development flows.
Stage 1 - Primary boot device: OSPI / QSPI - AMD EDF boot firmware with image select and recovery
AMD EDF boot firmware - See https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3250586143/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 (2025.1) - Distro boot
Support for SystemReady (2025.2 and onwards) - UEFI boot
Stage 2 - Secondary boot device: SDMMC / USB / UFS - Common** Linux disk image
The Linux disk image will boot to a console - programmable logic (PL) not loaded
PL can be loaded from the Linux user space - TODO: fill in <refs> below
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 prebuilt Linux disk images.
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 (2025.1) - Distro boot
Support for SystemReady (2025.2 and onwards) - UEFI boot
The Linux disk image will boot to a console - PL not loaded
PL can be loaded from the Linux user space - TODO: add <ref> below
The Linux disk image contains PL firmware payloads - See <ref to payloads>
See https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3258155011/Discovery+and+Evaluation+AMD+Versal+Device+Portfolio#Loading-the-pre-built-Programable-Logic-(PL)-firmware-BRAM-GPIO-UART-demo-(Vivado-design) for commands to load, re-load, or automate loading of PL payloads
*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 SoCs and FPGAs
QSPI, OSPI, SDCARD, UFS, JTAG, etc.
Single-stage boot flows (e.g., SDCARD), multi-stage boot flows (e.g., 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.
See System Controller WIKI evaluation board user guide for more information https://xilinx-wiki.atlassian.net/wiki/x/AYCGhw
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 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.
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.
The Image Recovery Application is a Linux-based web application that runs on the target and supports
Updating boot firmware (OSPI / QSPI) content and boot slots (A / B)
Updating disk images on secondary boot devices (SD, USB, UFS)
The web interface operates using an IP address (e.g., 10.10.70.2:8080), which is displayed on the UART console output of the target when image recovery boot mode is triggered
Image recovery boot mode is triggered by pressing the recovery mode push button on the Evaluation board
It can also be triggered via a register write from u-boot or via XRDB (JTAG) for boards without a recovery mode button.
Upon launching the web interface using the IP address shown on the UART console, a page will open, providing basic information about the hardware:
To update the Boot Firmware or Linux image using Ethernet Recovery, click the Browse button and select the desired file.
To update the Boot Image, select the boot.bin file, toggle the ‘Boot Image’ option, and click ‘Upload’.
To update the disk image, select the wic/wic.xz file, toggle the ‘Wic Image’ option, and click ‘Upload’.
Upon successful update, you will see the message displayed below.
See the boot firmware Linux utility for information on how to update and manage the images in the boot flash (Primary Boot device) from Linux user space (normal runtime image)
Boot Firmware Image Update Utility (fwupdate tool)
WARNING: Please be aware that in EDF 25.10 the boot firmware update process using UEFI capsules require the manual addition of a UEFI boot entry in uboot in order for the capsule to be discovered and installed - uboot is not capable of installing a capsule from an auto-generated UEFI boot entry. See Known Issues at the end of this section.
Starting in 2025.2, for versal devices and later, the partition layout has changed. The efi folder is now a top-level directory, and not under /boot. Therefore in the following sections when working under these conditions replace /boot/efi with /efi.
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.
fwupdtool tool
The Linux firmware update system, fwupdtool, utilizes .cab files as standard containers for firmware update metadata and binaries. These CAB files are meticulously signed and organized, enabling fwupdtool to verify their integrity and apply updates securely.
Pre-requisites
The system must be running EDF boot firmware and be configured for multi-state boot
The secondary boot device must be running an image based on EDF, with EFI partitions present
To utilize the first partition of an SD/USB drive with fwupdtool, ensure that it is formatted as an EFI type.
amd-edf:~$ sudo fdisk -l
...
Disk /dev/sdb: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Disk model: Ultra HS-COMBO
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00000000-0000-0000-0000-00004D9B9EF0
Device Start End Sectors Size Type
/dev/sdb1 64 1048639 1048576 512M EFI System
/dev/sdb2 1048640 2097215 1048576 512M Linux filesystem
/dev/sdb3 2097216 16777279 14680064 7G Linux root (ARM-64)
/dev/sdb4 16777280 18874431 2097152 1G Microsoft basic datafwupdtool get-devices
The fwupdtool get-devices command is utilized to display all devices recognized by fwupdtool on your system that may be eligible for firmware updates.
It will print device metadata, such as:
Device name & GUID
Firmware version
Vendor
Status (e.g., updatable, not updatable)
Flags (e.g., internal, requires reboot)
amd-edf:/home/amd-edf# FWUPD_UEFI_ESP_PATH=/boot/efi fwupdtool get-devices
Loading? [************************************** ]
WARNING: This package has not been validated, it may not work properly.
amd AMD Versal VEK385 revA
?
??Bank A Space:
? Device ID: 801b063a5daf54ed4763bdf05365be2960f635b4
? Summary: Memory Technology Device
? Vendor: DMI:amd
? GUIDs: bd5d37df-4d51-5d5e-a085-514ab4dcf384 ? MTD\NAME_Bank-A-Space
? dc173611-e6a6-551b-a303-adbd0d9fc51d ? MTD\VENDOR_amd&NAME_Bank-A-Space
? ccfc3bb3-7a99-511f-b8a1-e1aedb51b47d ? MTD\VENDOR_amd&PRODUCT_AMD-Versal-VEK385-revA&NAME_Bank-A-Space
? Device Flags: ? Internal device
? ? Updatable
? ? Needs a reboot after installation
? ? Cryptographic hash verification is available
?
??Bank B Space:
? Device ID: f93c02c7eef61e91938930caed8c9eb899006969
? Summary: Memory Technology Device
? Vendor: DMI:amd
? GUIDs: c06436f3-e1e7-55a5-9567-ec3015ee6c9a ? MTD\NAME_Bank-B-Space
? b10adb7f-d896-5c8e-8bef-4467f70cf2fb ? MTD\VENDOR_amd&NAME_Bank-B-Space
? 6b8a8aaf-f23b-5dd7-9804-26aeb47d704f ? MTD\VENDOR_amd&PRODUCT_AMD-Versal-VEK385-revA&NAME_Bank-B-Space
? Device Flags: ? Internal device
? ? Updatable
? ? Needs a reboot after installation
? ? Cryptographic hash verification is available
?
??Image Recovery:
? Device ID: 7c6b1fbcd3e4899c8719ed709bbce0200f44413f
? Summary: Memory Technology Device
? Vendor: DMI:amd
...
...
??User Scratchpad:
Device ID: bd0d9e0bd371a2f3caa6d12313b6cc72e7263963
Summary: Memory Technology Device
Vendor: DMI:amd
GUIDs: 0c4aa683-fd32-556c-8e14-422a5dbeb272 ? MTD\NAME_User-Scratchpad
09e0e3e8-10f4-5f7e-a804-cc57f00d9975 ? MTD\VENDOR_amd&NAME_User-Scratchpad
0480d7e9-2829-5f81-ab28-8006997ce1e3 ? MTD\VENDOR_amd&PRODUCT_AMD-Versal-VEK385-revA&NAME_User-Scratchpad
Device Flags: ? Internal device
? Updatable
? Needs a reboot after installation
? Cryptographic hash verification is available
amd-edf:/home/amd-edf#Generating Capsule files (cab) for use with fwupdate
Capsule files (cab) for use with fwupdate are generated from the EDF Yocto Project based build environment using the uefi-capsule recipe
yocto/build $ MACHINE=versal-2ve-2vm-vek385-sdt-seg bitbake uefi-capsuleTo ensure compatibility with the fwuptool, it is essential to maintain the incremental rollback counter. In version 2025.1, the rollback counter is set to (1) for both the OSPI boot.bin and the uefi-capsule boot.bin.
For more details see LINK TO DEVOPMENT FLOWS
Installing the CAB files with fwupdate
The CAB file is installed with the fwupdate tool
amd-edf:/home/amd-edf# FWUPD_UEFI_ESP_PATH=/boot/efi fwupdtool install uefi-capsules-v2/uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-bootfw-firmware.cab
Loading? [******************* ]
WARNING: This package has not been validated, it may not work properly.
Waiting? [***************************************]
An update requires a reboot to complete. Restart now? [y|N]: yDuring a reboot you can view the logs of the capsule file being applied, and the switch to the Trail state.
U-Boot 2025.01-gaedc0ad8e17f-dirty (Jul 01 2025 - 13:49:05 +0000)
CPU: Versal Gen 2
Silicon: v1.0
Chip: v1.0
Model: AMD Versal VEK385 revA
DRAM: 2 GiB (effective 10 GiB)
...
...
##################################
Applying capsule fwupd-cb27e54d-8f3a-4c77-8a72-1c76d2d4e938.cap succeeded.
Reboot after firmware update.
INFO: BL31: Early console setup
INFO: Successfully initialized new runtime console
NOTICE: TF-A running on Silicon v0.0, RTL v8.6, PS v8.6, PMC v8.6
INFO: CPU Revision = 0x3
INFO: cpu_clock = 100000000Hz, uart_clock = 100000000Hz
NOTICE: BL31: Executing from 0xbbf00000
NOTICE: BL31: Secure code at 0x1800000
NOTICE: BL31: Non secure code at 0x40000000
NOTICE: BL31: v2.12.0(debug):xlnx_rebase_v2.12_2025.1-dirty
NOTICE: BL31: Built : 07:04:54, Apr 24 2025
INFO: GICv3 without legacy support detected.
INFO: ARM GICv3 driver initialized in EL3
INFO: Maximum SPI INTID supported: 543
INFO: SCMI: Server initialized
INFO: BL31: Initializing runtime services
INFO: BL31: cortex_a78_ae: CPU workaround for CVE 2024_5660 was applied
INFO: BL31: cortex_a78_ae: CPU workaround for CVE 2022_23960 was applied
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x40000000
INFO: SPSR = 0x3c9
U-Boot 2025.01-gaedc0ad8e17f-dirty (Jul 01 2025 - 13:49:05 +0000)
CPU: Versal Gen 2
Silicon: v1.0
Chip: v1.0
Model: AMD Versal VEK385 revA
DRAM: 2 GiB (effective 10 GiB)
...
...
Warning: ethernet@ed920000 (eth1) using random MAC address - 12:81:8b:f8:75:77
, eth1: ethernet@ed920000
Missing TPMv2 device for EFI_TCG_PROTOCOL
Missing RNG device for EFI_RNG_PROTOCOL
Trial State count: attempt 1 out of 3Please be aware of the limitation in 2025.2 as it does not ship with any UEFI boot options preconfigured and reiles on the auto-generated boot options for booting - these will not work for capsule update and you will need to manually add a boot option for it to work. Further details at the end of this section.
Accepting the update and existing Trial state
If boot is successful the capsule update must be accepted, the Trial State must be exited, and a reboot should be initiated
amd-edf:/home/amd-edf# ls uefi-capsules-v2/
uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-acceptance-capsule.bin uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-capsule.bin
uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-bootfw-firmware.cab
amd-edf:/home/amd-edf#
amd-edf:/home/amd-edf#
amd-edf:/home/amd-edf# cp uefi-capsules-v2/uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-acceptance-capsule.bin /boot/efi/EFI/UpdateCapsule/
amd-edf:/home/amd-edf#
amd-edf:/home/amd-edf# sudo rebootDuring the reboot, you can view the logs of the acceptance capsule file being applied and the automatic reboot.
Device 2: (0:2) Vendor: MICRON Prod.: MT064GBCAV1U31AA Rev: 0302
Type: Hard Disk
Capacity: 4096.0 MB = 4.0 GB (1048576 x 4096)
Applying capsule uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-acceptance-capsule.bin succeeded.
Reboot after firmware update.
INFO: BL31: Early console setupImage Selector output at boot time (EDF boot firmware)
The Image Selector log file will displays the status at boot time
active_index: 0 - indicates bank number A, 1 - indicates bank number B
bank_state : FC - Accepted, FE - Not accepted
Image Type Guid: CB27E54D-8F3A-4C77-8A72-1C76D2D4E938 GUID specific to board
ImageSelector Version: 2.0
Boot Count: 1
MaxBootCnt: 4
Rollback counter: 1
Mdata.crc32: D7F6B374
Mdata.version: 2
Mdata.active_index: 0
Mdata.previous_active_index: 1
Mdata.metadata_size: 7C
Mdata.desc_offset: 20
Mdata.bank_state[0]: FC
Mdata.bank_state[1]: FC
Mdata.bank_state[2]: FF
Mdata.bank_state[3]: FF
Mdata.fw_desc.num_banks: 2
Mdata.fw_desc.num_images: 1
Mdata.fw_desc.img_entry_size: 50
Mdata.fw_desc.bank_info_entry_size: 18
Image Type Guid: CB27E54D-8F3A-4C77-8A72-1C76D2D4E938
Location Guid: D7CE8A58-CE2C-11ED-81CD-D324E93AC223
Image Guid: 7E1B930B-F6B2-EF11-8565-EB65D140066B
Image Acceptance: yes
Image Guid: 00D84312-F6B2-EF11-8F4F-8BDDC3AA326D
Image Acceptance: yes
Active bank image version: amd-edf-versal-2ve-2vm-vek385-sdt-seg-bootfw-v25.05.1+release-d5858dThe PLM output at boot time
The PLM UART output will also show status and which image bank (A/B) is in use
[0.154]BOOTMODE: 0x8, MULTIBOOT: 0x2B0 # bank A
[0.154]BOOTMODE: 0x8, MULTIBOOT: 0x10F8 # bank BU-boot output at boot time
The u-boot UART output will also show Image status
versal2> fw
FWU Metadata
crc32: 0xa9b9eadb
version: 0x2
size: 0x7c
active_index: 0x0
previous_active_index: 0x1
bank_state[0]: 0xfe
bank_state[1]: 0xfc
bank_state[2]: 0xff
bank_state[3]: 0xff
Image Info
Image Type Guid: CB27E54D-8F3A-4C77-8A72-1C76D2D4E938
Location Guid: D7CE8A58-CE2C-11ED-81CD-D324E93AC223
Image Guid: 7E1B930B-F6B2-EF11-8565-EB65D140066B
Image Acceptance: no
Image Guid: 00D84312-F6B2-EF11-8F4F-8BDDC3AA326D
Image Acceptance: yes
versal2> Known issues in EDF 25.05.1
It is essential to always specify the FWUPD_UEFI_ESP_PATH=/boot/efi when executing the fwupdtool.
amd-edf:~$ sudo fwupdtool install uefi-capsules-v2/uefi-capsule-versal-2ve-2vm-vek385-sdt-seg-bootfw-firmware.cab
Loading? [** ]
19:36:28.258 FuPluginUefiCapsule cannot find default ESP: No valid 'EspLocation' specified in /etc/fwupd/fwupd.conf
Loading? Known issues in EDF 25.11
u-boot is not currently able to install capsule using the auto-generated boot entries (“mmc0”, “mmc1”, “usb0”, etc.) so it is necessary to manually add a boot entry to the UEFI menu pointing to the device that contains the capsule you wish to install. This entry can be removed once the update has completed if desired. Below is an example of adding an entry to u-boot for the purposes of capsule install and triggering the install. This entry assumes that the capsule is available in the EFI System Partition of the first MMC device, hence “mmc 0:1”.
versal> efidebug boot add -b 6 "Capsule Update" mmc 0:1 EFI/UpdateCapsule
versal> efidebug boot next 6
versal> efidebug capsule disk-updateOSPI/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 |
|---|---|---|---|
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 |
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) |
|---|---|
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 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3250586239
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:
Boot Flash
Storage Flash
Boot mode - To support the boot architecture https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3250586143/Common+Specifications#Boot-Architecture-for-AMD-Evaluation-boards
UART (multiple if available)
Ethernet
MIO Controllers
I2C - Connected to EPPROM for board ID
SPI
GPIO to be connected to PL
IPI settings - To support OpenAmp and Xen implementations
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 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3250586284
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
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
The following are the mix of I/O that will be prioritized as a mix of input and output functions:
PL user LEDs
PL push button
PL PMOD interface
See https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3250586284
EDF prebuilt Yocto machine definitions
List of Yocto pre-built Machine names for supported AMD evaluation boards
Devices | Evaluation Board | Supported boot mode (for pre-built images) | Supported Versions | Board specific machine name | BOOT FW Supported recipes |
|---|---|---|---|---|---|
Zynq-7000 | Single Stage with deferred PL Load - SD | 2025.2 and later | MACHINE=zynq-zc702-sdt-full |
| |
Zynq MPSoC | Single Stage with deferred PL Load - SD | 2025.1 and later | MACHINE=zynqmp-zcu104-sdt-full |
| |
Single Stage with deferred PL Load - SD | 2025.2 and later | MACHINE=zynqmp-zcu106-sdt-full |
| ||
Single Stage with deferred PL Load - SD | 2025.2 and later | MACHINE=zynqmp-zcu102-sdt-full |
| ||
Zynq RFSoC | Single Stage with deferred PL Load - SD | 2025.1 and later | MACHINE=zynqmp-zcu111-sdt-full |
| |
Versal | Single Stage with deferred PL Load - SD | 2025.1 and later | MACHINE=versal-vek280-sdt-seg |
| |
Single Stage with deferred PL Load - SD | 2025.1 and later | MACHINE=versal-vck190-sdt-seg |
| ||
VPK120 | Single Stage with deferred PL Load - SD | 2025.2 and later | MACHINE=versal-vpk120-sdt-seg |
| |
VMK180 | Single Stage with deferred PL Load - SD | 2025.2 and later | MACHINE=versal-vmk180-sdt-seg |
© 2025 Advanced Micro Devices, Inc. Privacy Policy