diff --git a/boot/xilinx-prebuilt/xilinx-prebuilt.mk b/boot/xilinx-prebuilt/xilinx-prebuilt.mk index 72273f0d2f..4d1dfc5ca0 100644 --- a/boot/xilinx-prebuilt/xilinx-prebuilt.mk +++ b/boot/xilinx-prebuilt/xilinx-prebuilt.mk @@ -28,9 +28,6 @@ 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) -# We need the *.pdi glob, because the file has different names for the -# different boards, but there is only one, and it has to be named -# vpl_gen_fixed.pdi when installed. ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y) XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf # Unlike the psmfw.elf file for Xilinx development boards, @@ -39,11 +36,33 @@ XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.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 -XILINX_PREBUILT_PDI = $(@D)/*.pdi +# We need the *.pdi glob, because the file has different names for the +# different boards, and it has to be named vpl_gen_fixed.pdi when installed. +# If Segmented Configuration is used, there will be two pdi files and we need +# the file that has "_boot.pdi" in the filename. +define XILINX_PREBUILT_INSTALL_VERSAL_XSA_BOOT_PDI + $(INSTALL) -D -m 0644 \ + $(if $(wildcard $(@D)/*_boot.pdi), \ + $(@D)/*_boot.pdi, \ + $(@D)/*.pdi \ + ) \ + $(BINARIES_DIR)/vpl_gen_fixed.pdi +endef 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 -XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi +# We need the *.pdi glob, because the file has different names for the +# different boards, and it has to be named vpl_gen_fixed.pdi when installed. +# If Segmented Configuration is used, there will be two pdi files and we need +# the file that has "_boot.pdi" in the filename. +define XILINX_PREBUILT_INSTALL_VERSAL_BOOT_PDI + $(INSTALL) -D -m 0644 \ + $(if $(wildcard $(XILINX_PREBUILT_BOARD_DIR)/*_boot.pdi), \ + $(XILINX_PREBUILT_BOARD_DIR)/*_boot.pdi, \ + $(XILINX_PREBUILT_BOARD_DIR)/*.pdi \ + ) \ + $(BINARIES_DIR)/vpl_gen_fixed.pdi +endef endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM),y) @@ -60,10 +79,6 @@ define XILINX_PREBUILT_INSTALL_VERSAL_PSMFW endef endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW -define XILINX_PREBUILT_INSTALL_VERSAL_PDI - $(INSTALL) -D -m 0644 $(XILINX_PREBUILT_PDI) \ - $(BINARIES_DIR)/vpl_gen_fixed.pdi -endef else # BR2_TARGET_XILINX_PREBUILT_VERSAL ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW),y) define XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW @@ -76,7 +91,8 @@ endif # BR2_TARGET_XILINX_PREBUILT_VERSAL define XILINX_PREBUILT_INSTALL_IMAGES_CMDS $(XILINX_PREBUILT_INSTALL_VERSAL_PLM) $(XILINX_PREBUILT_INSTALL_VERSAL_PSMFW) - $(XILINX_PREBUILT_INSTALL_VERSAL_PDI) + $(XILINX_PREBUILT_INSTALL_VERSAL_BOOT_PDI) + $(XILINX_PREBUILT_INSTALL_VERSAL_XSA_BOOT_PDI) $(XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW) endef