mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
boot/xilinx-prebuilt: add versal2 support
Add support for Xilinx versal2 devices to download the boot.pdi, pld.pdi and plm.elf files from the Xilinx/soc-prebuilt-firmware repo. Since the psmfw.elf does not exist for versal2 devices, the installation of this image has been split out for original versal devices only, whereas the other images are all common between versal and versal2 device families. For more information about the Xilinx Versal Gen2 series: https://www.amd.com/en/products/adaptive-socs-and-fpgas/versal/gen2/ai-edge-series.html https://www.amd.com/en/products/adaptive-socs-and-fpgas/versal/gen2/prime-series.html Signed-off-by: Neal Frager <neal.frager@amd.com> Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
c7d703b202
commit
1609e85322
@@ -26,6 +26,7 @@ choice
|
||||
bool "family variant"
|
||||
default BR2_TARGET_XILINX_PREBUILT_VERSAL if BR2_PACKAGE_VERSAL_FIRMWARE # legacy
|
||||
default BR2_TARGET_XILINX_PREBUILT_VERSAL if BR2_cortex_a72
|
||||
default BR2_TARGET_XILINX_PREBUILT_VERSAL2 if BR2_cortex_a78
|
||||
default BR2_TARGET_XILINX_PREBUILT_ZYNQMP
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_ZYNQMP
|
||||
@@ -40,14 +41,21 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL
|
||||
bool "versal"
|
||||
depends on BR2_cortex_a72
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
bool "versal2"
|
||||
depends on BR2_cortex_a78
|
||||
help
|
||||
Version must be xilinx_v2025.2 or newer.
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
bool "download a prebuilt Versal XSA"
|
||||
depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
|
||||
depends on BR2_TARGET_XILINX_PREBUILT_VERSAL || BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
help
|
||||
The Xilinx Support Archive (XSA) provides custom Xilinx
|
||||
firmware files generated by the AMD Vivado Design Suite.
|
||||
This option applies to either versal or versal2.
|
||||
|
||||
https://docs.amd.com/r/en-US/ug1400-vitis-embedded/Creating-a-Hardware-Design-XSA-File
|
||||
|
||||
@@ -64,28 +72,33 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION
|
||||
use a make variable like $(TOPDIR) to reference the root of
|
||||
the Buildroot tree.
|
||||
|
||||
This option applies to either versal or versal2.
|
||||
|
||||
endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI
|
||||
bool "install versal pld.pdi"
|
||||
depends on BR2_TARGET_XILINX_PREBUILT_VERSAL
|
||||
depends on BR2_TARGET_XILINX_PREBUILT_VERSAL || BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
help
|
||||
When using the Versal Segmented Configuration, there is a
|
||||
pld.pdi file containing the FPGA bitstream which can be
|
||||
loaded at run-time. By enabling this option, the pld.pdi
|
||||
will be installed to the target /lib/firmware/xilinx dir.
|
||||
This option applies to either versal or versal2.
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_FAMILY
|
||||
string
|
||||
default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
|
||||
default "kria" if BR2_TARGET_XILINX_PREBUILT_KRIA
|
||||
default "versal" if BR2_TARGET_XILINX_PREBUILT_VERSAL
|
||||
default "versal_2ve_2vm" if BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
|
||||
config BR2_TARGET_XILINX_PREBUILT_BOARD
|
||||
string "board name"
|
||||
default "zcu102" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP
|
||||
default "kr260" if BR2_TARGET_XILINX_PREBUILT_KRIA
|
||||
default "vck190" if BR2_TARGET_XILINX_PREBUILT_VERSAL
|
||||
default "vek385" if BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
help
|
||||
Name of Xilinx target board.
|
||||
Used for installing the appropriate firmware.
|
||||
|
||||
@@ -26,16 +26,11 @@ XILINX_PREBUILT_BOARD = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_BOARD))
|
||||
|
||||
XILINX_PREBUILT_BOARD_DIR = $(@D)/$(XILINX_PREBUILT_BOARD)-$(XILINX_PREBUILT_FAMILY)
|
||||
|
||||
ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
|
||||
# Common Files for All Versal Families
|
||||
ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL)$(BR2_TARGET_XILINX_PREBUILT_VERSAL2),y)
|
||||
ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
|
||||
# Supports either plm.elf or plmfw.elf filenames
|
||||
XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm*.elf
|
||||
# Unlike the psmfw.elf file for Xilinx development boards,
|
||||
# AMD Vivado Design Suite currently generates a file named psm_fw.elf.
|
||||
# Future versions of AMD Vivado will generate a file named psmfw.elf,
|
||||
# so to support current and future AMD Vivado versions, the filename
|
||||
# psm*fw.elf is used.
|
||||
XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm*fw.elf
|
||||
# We need the *.pdi glob, because the file has different names for the
|
||||
# different boards, and it has to be named boot.pdi when installed.
|
||||
# If Segmented Configuration is used, there will be two pdi files and we need
|
||||
@@ -63,7 +58,6 @@ endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI
|
||||
else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
# Supports either plm.elf or plmfw.elf filenames
|
||||
XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm*.elf
|
||||
XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
|
||||
# We need the *.pdi glob, because the file has different names for the
|
||||
# different boards, and it has to be named boot.pdi when installed.
|
||||
# If Segmented Configuration is used, there will be two pdi files and we need
|
||||
@@ -91,11 +85,27 @@ endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI
|
||||
endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
|
||||
ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM),y)
|
||||
ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL2_PLM),y)
|
||||
define XILINX_PREBUILT_INSTALL_VERSAL_PLM
|
||||
$(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
|
||||
$(BINARIES_DIR)/plm.elf
|
||||
endef
|
||||
endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL2_PLM
|
||||
endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM
|
||||
endif # BR2_TARGET_XILINX_PREBUILT_VERSAL | BR2_TARGET_XILINX_PREBUILT_VERSAL2
|
||||
|
||||
# Files specific to Versal Gen1
|
||||
ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
|
||||
ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
|
||||
# Unlike the psmfw.elf file for Xilinx development boards,
|
||||
# AMD Vivado Design Suite currently generates a file named psm_fw.elf.
|
||||
# Future versions of AMD Vivado will generate a file named psmfw.elf,
|
||||
# so to support current and future AMD Vivado versions, the filename
|
||||
# psm*fw.elf is used.
|
||||
XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm*fw.elf
|
||||
else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
|
||||
endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
|
||||
|
||||
ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW),y)
|
||||
define XILINX_PREBUILT_INSTALL_VERSAL_PSMFW
|
||||
|
||||
Reference in New Issue
Block a user