2
1

ti-k3-r5-loader.mk 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. ################################################################################
  2. #
  3. # ti-k3-r5-loader
  4. #
  5. ################################################################################
  6. TI_K3_R5_LOADER_VERSION = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_VERSION))
  7. TI_K3_R5_LOADER_DL_SUBDIR = uboot
  8. ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL),y)
  9. # Handle custom U-Boot tarballs as specified by the configuration
  10. TI_K3_R5_LOADER_TARBALL = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_TARBALL_LOCATION))
  11. TI_K3_R5_LOADER_SITE = $(patsubst %/,%,$(dir $(TI_K3_R5_LOADER_TARBALL)))
  12. TI_K3_R5_LOADER_SOURCE = $(notdir $(TI_K3_R5_LOADER_TARBALL))
  13. else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT),y)
  14. TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
  15. TI_K3_R5_LOADER_SITE_METHOD = git
  16. TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.gz
  17. else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_HG),y)
  18. TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
  19. TI_K3_R5_LOADER_SITE_METHOD = hg
  20. TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.gz
  21. else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_SVN),y)
  22. TI_K3_R5_LOADER_SITE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL))
  23. TI_K3_R5_LOADER_SITE_METHOD = svn
  24. TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.gz
  25. else
  26. # Handle stable official U-Boot versions
  27. TI_K3_R5_LOADER_SITE = https://ftp.denx.de/pub/u-boot
  28. TI_K3_R5_LOADER_SOURCE = u-boot-$(TI_K3_R5_LOADER_VERSION).tar.bz2
  29. endif
  30. ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR2_TARGET_TI_K3_R5_LOADER_LATEST_VERSION),y)
  31. BR_NO_CHECK_HASH_FOR += $(TI_K3_R5_LOADER_SOURCE)
  32. endif
  33. TI_K3_R5_LOADER_LICENSE = GPL-2.0+
  34. TI_K3_R5_LOADER_LICENSE_FILES = Licenses/gpl-2.0.txt
  35. TI_K3_R5_LOADER_CPE_ID_VENDOR = denx
  36. TI_K3_R5_LOADER_CPE_ID_PRODUCT = u-boot
  37. TI_K3_R5_LOADER_INSTALL_IMAGES = YES
  38. # https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/binman/binman.rst?plain=1#L377
  39. # https://source.denx.de/u-boot/u-boot/-/blob/v2024.04/tools/buildman/requirements.txt
  40. # Make sure that all binman requirements are built before ti-k3-r5-loader.
  41. TI_K3_R5_LOADER_DEPENDENCIES = \
  42. host-pkgconf \
  43. $(BR2_MAKE_HOST_DEPENDENCY) \
  44. host-arm-gnu-toolchain \
  45. host-openssl \
  46. host-python3 \
  47. host-python-jsonschema \
  48. host-python-pyelftools \
  49. host-python-pylibfdt \
  50. host-python-pyyaml \
  51. host-python-setuptools \
  52. host-python-yamllint \
  53. ti-k3-boot-firmware
  54. TI_K3_R5_LOADER_MAKE = $(BR2_MAKE)
  55. TI_K3_R5_LOADER_MAKE_ENV = $(TARGET_MAKE_ENV)
  56. TI_K3_R5_LOADER_KCONFIG_DEPENDENCIES = \
  57. host-arm-gnu-toolchain \
  58. $(BR2_MAKE_HOST_DEPENDENCY) \
  59. $(BR2_BISON_HOST_DEPENDENCY) \
  60. $(BR2_FLEX_HOST_DEPENDENCY)
  61. ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG),y)
  62. TI_K3_R5_LOADER_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_BOARD_DEFCONFIG))_defconfig
  63. else ifeq ($(BR2_TARGET_TI_K3_R5_LOADER_USE_CUSTOM_CONFIG),y)
  64. TI_K3_R5_LOADER_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_CONFIG_FILE))
  65. endif # BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG
  66. TI_K3_R5_LOADER_MAKE_OPTS = \
  67. CROSS_COMPILE=$(HOST_DIR)/bin/arm-none-eabi- \
  68. ARCH=arm \
  69. HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \
  70. HOSTLDFLAGS="$(HOST_LDFLAGS)" \
  71. BINMAN_INDIRS=$(BINARIES_DIR)
  72. TI_K3_R5_LOADER_TIBOOT3_BIN = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_TIBOOT3_BIN))
  73. define TI_K3_R5_LOADER_INSTALL_TIBOOT3_BIN
  74. cp $(@D)/$(TI_K3_R5_LOADER_TIBOOT3_BIN) $(BINARIES_DIR)/tiboot3.bin
  75. endef
  76. TI_K3_R5_LOADER_SYSFW_ITB = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_SYSFW_ITB))
  77. # sysfw*.itb are only generated for Split binary based Boot Flow (eg: am65, j721e).
  78. # So, if sysfw.itb symlink exist we must copy it or the custom sysfw.itb.
  79. define TI_K3_R5_LOADER_INSTALL_SWSFW_ITB
  80. if test -e $(@D)/sysfw.itb ; then \
  81. cp $(@D)/$(TI_K3_R5_LOADER_SYSFW_ITB) $(BINARIES_DIR)/sysfw.itb ; \
  82. fi
  83. endef
  84. TI_K3_R5_LOADER_CUSTOM_DTS_PATH = $(call qstrip,$(BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_DTS_PATH))
  85. define TI_K3_R5_LOADER_BUILD_CMDS
  86. $(if $(TI_K3_R5_LOADER_CUSTOM_DTS_PATH),
  87. cp -f $(TI_K3_R5_LOADER_CUSTOM_DTS_PATH) $(@D)/arch/arm/dts/
  88. )
  89. $(TARGET_CONFIGURE_OPTS) $(TI_K3_R5_LOADER_MAKE) -C $(@D) $(TI_K3_R5_LOADER_MAKE_OPTS)
  90. endef
  91. define TI_K3_R5_LOADER_INSTALL_IMAGES_CMDS
  92. cp $(@D)/spl/u-boot-spl.bin $(BINARIES_DIR)/r5-u-boot-spl.bin
  93. $(TI_K3_R5_LOADER_INSTALL_TIBOOT3_BIN)
  94. $(TI_K3_R5_LOADER_INSTALL_SWSFW_ITB)
  95. endef
  96. # Checks to give errors that the user can understand
  97. # Must be before we call to kconfig-package
  98. ifeq ($(BR2_TARGET_TI_K3_R5_LOADER)$(BR_BUILDING),yy)
  99. ifeq ($(TI_K3_R5_LOADER_TIBOOT3_BIN),)
  100. $(error No custom tiboot3 name specified, check your BR2_TARGET_TI_K3_R5_LOADER_TIBOOT3_BIN setting)
  101. endif
  102. ifeq ($(TI_K3_R5_LOADER_SYSFW_ITB),)
  103. $(error No custom sysfw name specified, check your BR2_TARGET_TI_K3_R5_LOADER_SYSFW_ITB setting)
  104. endif
  105. endif # BR_BUILDING
  106. $(eval $(kconfig-package))