123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- ################################################################################
- #
- # xilinx-prebuilt
- #
- ################################################################################
- XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
- ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
- XILINX_PREBUILT_FILE = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION))
- XILINX_PREBUILT_SITE = $(patsubst %/,%,$(dir $(XILINX_PREBUILT_FILE)))
- XILINX_PREBUILT_SOURCE = $(notdir $(XILINX_PREBUILT_FILE))
- define XILINX_PREBUILT_EXTRACT_CMDS
- $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
- endef
- else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
- XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
- XILINX_PREBUILT_LICENSE = MIT
- XILINX_PREBUILT_LICENSE_FILES = LICENSE
- endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
- XILINX_PREBUILT_INSTALL_IMAGES = YES
- XILINX_PREBUILT_FAMILY = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_FAMILY))
- 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)
- 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,
- # 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
- # 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)/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
- # 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
- # 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)/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)
- define XILINX_PREBUILT_INSTALL_VERSAL_PLM
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
- $(BINARIES_DIR)/plm.elf
- endef
- endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM
- ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW),y)
- define XILINX_PREBUILT_INSTALL_VERSAL_PSMFW
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
- $(BINARIES_DIR)/psmfw.elf
- endef
- endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW
- else # BR2_TARGET_XILINX_PREBUILT_VERSAL
- ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW),y)
- define XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW
- $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/pmufw.elf \
- $(BINARIES_DIR)/pmufw.elf
- endef
- endif # !BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW
- 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_BOOT_PDI)
- $(XILINX_PREBUILT_INSTALL_VERSAL_XSA_BOOT_PDI)
- $(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))
|