xilinx-prebuilt.mk 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. ################################################################################
  2. #
  3. # xilinx-prebuilt
  4. #
  5. ################################################################################
  6. XILINX_PREBUILT_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSION))
  7. ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
  8. XILINX_PREBUILT_FILE = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA_LOCATION))
  9. XILINX_PREBUILT_SITE = $(patsubst %/,%,$(dir $(XILINX_PREBUILT_FILE)))
  10. XILINX_PREBUILT_SOURCE = $(notdir $(XILINX_PREBUILT_FILE))
  11. define XILINX_PREBUILT_EXTRACT_CMDS
  12. $(UNZIP) $(XILINX_PREBUILT_DL_DIR)/$(XILINX_PREBUILT_SOURCE) -d $(@D)
  13. endef
  14. else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
  15. XILINX_PREBUILT_SITE = $(call github,Xilinx,soc-prebuilt-firmware,$(XILINX_PREBUILT_VERSION))
  16. XILINX_PREBUILT_LICENSE = MIT
  17. XILINX_PREBUILT_LICENSE_FILES = LICENSE
  18. endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
  19. XILINX_PREBUILT_INSTALL_TARGET = NO
  20. XILINX_PREBUILT_INSTALL_IMAGES = YES
  21. XILINX_PREBUILT_FAMILY = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_FAMILY))
  22. XILINX_PREBUILT_BOARD = $(call qstrip,$(BR2_TARGET_XILINX_PREBUILT_BOARD))
  23. XILINX_PREBUILT_BOARD_DIR = $(@D)/$(XILINX_PREBUILT_BOARD)-$(XILINX_PREBUILT_FAMILY)
  24. ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL),y)
  25. # We need the *.pdi glob, because the file has different names for the
  26. # different boards, but there is only one, and it has to be named
  27. # vpl_gen_fixed.pdi when installed.
  28. ifeq ($(BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA),y)
  29. XILINX_PREBUILT_PLM = $(@D)/pdi_files/gen_files/plm.elf
  30. # Unlike the psmfw.elf file for Xilinx development boards,
  31. # AMD Vivado Design Suite currently generates a file named psm_fw.elf.
  32. # Future versions of AMD Vivado will generate a file named psmfw.elf,
  33. # so to support current and future AMD Vivado versions, the filename
  34. # psm*fw.elf is used.
  35. XILINX_PREBUILT_PSMFW = $(@D)/pdi_files/static_files/psm*fw.elf
  36. XILINX_PREBUILT_PDI = $(@D)/*.pdi
  37. else # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
  38. XILINX_PREBUILT_PLM = $(XILINX_PREBUILT_BOARD_DIR)/plm.elf
  39. XILINX_PREBUILT_PSMFW = $(XILINX_PREBUILT_BOARD_DIR)/psmfw.elf
  40. XILINX_PREBUILT_PDI = $(XILINX_PREBUILT_BOARD_DIR)/*.pdi
  41. endif # BR2_TARGET_XILINX_PREBUILT_VERSAL_XSA
  42. ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM),y)
  43. define XILINX_PREBUILT_INSTALL_VERSAL_PLM
  44. $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PLM) \
  45. $(BINARIES_DIR)/plm.elf
  46. endef
  47. endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM
  48. ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW),y)
  49. define XILINX_PREBUILT_INSTALL_VERSAL_PSMFW
  50. $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PSMFW) \
  51. $(BINARIES_DIR)/psmfw.elf
  52. endef
  53. endif # !BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW
  54. define XILINX_PREBUILT_INSTALL_VERSAL_PDI
  55. $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_PDI) \
  56. $(BINARIES_DIR)/vpl_gen_fixed.pdi
  57. endef
  58. else # BR2_TARGET_XILINX_PREBUILT_VERSAL
  59. ifneq ($(BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW),y)
  60. define XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW
  61. $(INSTALL) -D -m 0755 $(XILINX_PREBUILT_BOARD_DIR)/pmufw.elf \
  62. $(BINARIES_DIR)/pmufw.elf
  63. endef
  64. endif # !BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW
  65. endif # BR2_TARGET_XILINX_PREBUILT_VERSAL
  66. define XILINX_PREBUILT_INSTALL_IMAGES_CMDS
  67. $(XILINX_PREBUILT_INSTALL_VERSAL_PLM)
  68. $(XILINX_PREBUILT_INSTALL_VERSAL_PSMFW)
  69. $(XILINX_PREBUILT_INSTALL_VERSAL_PDI)
  70. $(XILINX_PREBUILT_INSTALL_ZYNQMP_PMUFW)
  71. endef
  72. $(eval $(generic-package))