diff --git a/boot/xilinx-prebuilt/Config.in b/boot/xilinx-prebuilt/Config.in index b95df5cbf4..b127097c7e 100644 --- a/boot/xilinx-prebuilt/Config.in +++ b/boot/xilinx-prebuilt/Config.in @@ -63,6 +63,15 @@ config BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION 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 + 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. + config BR2_TARGET_XILINX_PREBUILT_FAMILY string default "zynqmp" if BR2_TARGET_XILINX_PREBUILT_ZYNQMP diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk index 05dc9aebe8..62b60b88fa 100644 --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk @@ -19,7 +19,6 @@ XILINX_PREBUILT_LICENSE = MIT XILINX_PREBUILT_LICENSE_FILES = LICENSE endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA -XILINX_PREBUILT_INSTALL_TARGET = NO XILINX_PREBUILT_INSTALL_IMAGES = YES XILINX_PREBUILT_FAMILY = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_FAMILY)) @@ -48,6 +47,18 @@ define XILINX_PREBUILT_INSTALL_VERSAL_XSA_BOOT_PDI ) \ $(BINARIES_DIR)/boot.pdi endef + +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI),y) +# Install pld.pdi in target file system for run-time loading when using +# Versal Segmented Configuration. +define XILINX_PREBUILT_INSTALL_VERSAL_XSA_PLD_PDI + $(if $(wildcard $(@D)/*_pld.pdi), + mkdir -p $(TARGET_DIR)/lib/firmware/xilinx && \ + $(INSTALL) -D -m 0644 $(@D)/*_pld.pdi \ + $(TARGET_DIR)/lib/firmware/xilinx + ) +endef +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf @@ -63,6 +74,18 @@ define XILINX_PREBUILT_INSTALL_VERSAL_BOOT_PDI ) \ $(BINARIES_DIR)/boot.pdi endef + +ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI),y) +# Install pld.pdi in target file system for run-time loading when using +# Versal Segmented Configuration. +define XILINX_PREBUILT_INSTALL_VERSAL_PLD_PDI + $(if $(wildcard $(XILINX_PREBUILT_BOARD_DIR)/*_pld.pdi), + mkdir -p $(TARGET_DIR)/lib/firmware/xilinx && \ + $(INSTALL) -D -m 0644 $(XILINX_PREBUILT_BOARD_DIR)/*_pld.pdi \ + $(TARGET_DIR)/lib/firmware/xilinx + ) +endef +endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_PLD_PDI endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM),y) @@ -96,4 +119,9 @@ define XILINX_PREBUILT_INSTALL_IMAGES_CMDS $(XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW) endef +define XILINX_PREBUILT_INSTALL_TARGET_CMDS + $(XILINX_PREBUILT_INSTALL_VERSAL_PLD_PDI) + $(XILINX_PREBUILT_INSTALL_VERSAL_XSA_PLD_PDI) +endef + $(eval $(generic-package))