2
1

xilinx-embeddedsw.mk 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ################################################################################
  2. #
  3. # xilinx-embeddedsw
  4. #
  5. ################################################################################
  6. XILINX_EMBEDDEDSW_VERSION = $(call qstrip,$(BR2_TARGET_XILINX_EMBEDDEDSW_VERSION))
  7. XILINX_EMBEDDEDSW_SITE = $(call github,Xilinx,embeddedsw,$(XILINX_EMBEDDEDSW_VERSION))
  8. XILINX_EMBEDDEDSW_LICENSE = MIT
  9. XILINX_EMBEDDEDSW_LICENSE_FILES = license.txt
  10. XILINX_EMBEDDEDSW_INSTALL_TARGET = NO
  11. XILINX_EMBEDDEDSW_INSTALL_IMAGES = YES
  12. XILINX_EMBEDDEDSW_DEPENDENCIES = toolchain-bare-metal-buildroot
  13. XILINX_EMBEDDEDSW_MICROBLAZE_CC = $(call qstrip, \
  14. $(if $(wildcard $(HOST_DIR)/bin/microblazeel-xilinx-elf-gcc), \
  15. $(HOST_DIR)/bin/microblazeel-xilinx-elf-gcc, \
  16. $(HOST_DIR)/bin/microblazeel-buildroot-elf-gcc))
  17. XILINX_EMBEDDEDSW_MICROBLAZE_AR = $(XILINX_EMBEDDEDSW_MICROBLAZE_CC)-ar
  18. ifeq ($(basename $(notdir $(XILINX_EMBEDDEDSW_MICROBLAZE_CC))),microblazeel-xilinx-elf-gcc)
  19. $(warning microblazeel-xilinx-elf in BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH is not supported anymore!)
  20. $(error Replace microblazeel-xilinx-elf with microblazeel-buildroot-elf in BR2_TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH)
  21. endif
  22. # ZYNQMP_PMUFW application allows users to add cflags
  23. XILINX_EMBEDDEDSW_ZYNQMP_PMUFW_USER_CFLAGS = \
  24. $(call qstrip,$(BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW_USER_CFLAGS))
  25. XILINX_EMBEDDEDSW_ZYNQMP_PMUFW_CFLAGS = \
  26. "-Os -flto -ffat-lto-objects $(XILINX_EMBEDDEDSW_ZYNQMP_PMUFW_USER_CFLAGS)"
  27. XILINX_EMBEDDEDSW_CFLAGS = "-Os -flto -ffat-lto-objects"
  28. ifeq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM),y)
  29. define XILINX_EMBEDDEDSW_BUILD_VERSAL_PLM
  30. $(MAKE) -C $(@D)/lib/sw_apps/versal_plm/src/versal \
  31. COMPILER=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  32. ARCHIVER=$(XILINX_EMBEDDEDSW_MICROBLAZE_AR) \
  33. CC=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  34. CFLAGS=$(XILINX_EMBEDDEDSW_CFLAGS)
  35. endef
  36. define XILINX_EMBEDDEDSW_INSTALL_VERSAL_PLM
  37. $(INSTALL) -D -m 0755 $(@D)/lib/sw_apps/versal_plm/src/versal/plm.elf \
  38. $(BINARIES_DIR)/plm.elf
  39. endef
  40. endif # BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PLM
  41. ifeq ($(BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW),y)
  42. define XILINX_EMBEDDEDSW_BUILD_VERSAL_PSMFW
  43. $(MAKE) -C $(@D)/lib/sw_apps/versal_psmfw/src/versal \
  44. COMPILER=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  45. ARCHIVER=$(XILINX_EMBEDDEDSW_MICROBLAZE_AR) \
  46. CC=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  47. CFLAGS=$(XILINX_EMBEDDEDSW_CFLAGS)
  48. endef
  49. define XILINX_EMBEDDEDSW_INSTALL_VERSAL_PSMFW
  50. $(INSTALL) -D -m 0755 $(@D)/lib/sw_apps/versal_psmfw/src/versal/psmfw.elf \
  51. $(BINARIES_DIR)/psmfw.elf
  52. endef
  53. endif # BR2_TARGET_XILINX_EMBEDDEDSW_VERSAL_PSMFW
  54. ifeq ($(BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW),y)
  55. define XILINX_EMBEDDEDSW_BUILD_ZYNQMP_PMUFW
  56. $(MAKE) -C $(@D)/lib/sw_apps/zynqmp_pmufw/src \
  57. COMPILER=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  58. ARCHIVER=$(XILINX_EMBEDDEDSW_MICROBLAZE_AR) \
  59. CC=$(XILINX_EMBEDDEDSW_MICROBLAZE_CC) \
  60. CFLAGS=$(XILINX_EMBEDDEDSW_ZYNQMP_PMUFW_CFLAGS)
  61. endef
  62. define XILINX_EMBEDDEDSW_INSTALL_ZYNQMP_PMUFW
  63. $(INSTALL) -D -m 0755 $(@D)/lib/sw_apps/zynqmp_pmufw/src/executable.elf \
  64. $(BINARIES_DIR)/pmufw.elf
  65. endef
  66. endif # BR2_TARGET_XILINX_EMBEDDEDSW_ZYNQMP_PMUFW
  67. define XILINX_EMBEDDEDSW_BUILD_CMDS
  68. $(XILINX_EMBEDDEDSW_BUILD_VERSAL_PLM)
  69. $(XILINX_EMBEDDEDSW_BUILD_VERSAL_PSMFW)
  70. $(XILINX_EMBEDDEDSW_BUILD_ZYNQMP_PMUFW)
  71. endef
  72. define XILINX_EMBEDDEDSW_INSTALL_IMAGES_CMDS
  73. $(XILINX_EMBEDDEDSW_INSTALL_VERSAL_PLM)
  74. $(XILINX_EMBEDDEDSW_INSTALL_VERSAL_PSMFW)
  75. $(XILINX_EMBEDDEDSW_INSTALL_ZYNQMP_PMUFW)
  76. endef
  77. $(eval $(generic-package))