Makefile 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. include $(ADK_TOPDIR)/rules.mk
  4. PKG_NAME:= u-boot
  5. PKG_VERSION:= 2026.07
  6. PKG_RELEASE:= 1
  7. PKG_HASH:= 5be3cddfd5e6ac023dbdc62b2a117231de2c180dcc598f3788e5b482c21fa28c
  8. PKG_DESCR:= portable bootloader
  9. PKG_SECTION:= base/boot
  10. HOST_BUILDDEP:= dtc-host swig-host python3-host python3-setuptools-host
  11. PKG_BUILDDEP:= python3-host python3-setuptools-host python3-pyelftools-host swig-host u-boot-host
  12. PKG_URL:= https://u-boot-project.org/
  13. PKG_SITES:= https://git.u-boot-project.org/u-boot/u-boot/-/archive/v$(PKG_VERSION)/
  14. DISTFILES:= $(PKG_NAME)-v$(PKG_VERSION).tar.bz2
  15. WRKDIST= $(WRKDIR)/$(PKG_NAME)-v$(PKG_VERSION)
  16. PKG_SYSTEM_DEPENDS:= banana-p2-zero beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64 rockpi4-plus phytec-imx6 pcduino-3b imgtec-ci20 st-stm32f746g starfive-visionfive2 microchip-pic32 sheevaplug
  17. include $(ADK_TOPDIR)/mk/host.mk
  18. include $(ADK_TOPDIR)/mk/package.mk
  19. $(eval $(call HOST_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE)))
  20. $(eval $(call PKG_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
  21. UBOOT:= u-boot.bin
  22. ifeq ($(ADK_TARGET_SYSTEM_SHEEVAPLUG),y)
  23. CONFIG:= sheevaplug_defconfig
  24. UBOOT:= u-boot.kwb
  25. endif
  26. ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
  27. CONFIG:= clearfog_defconfig
  28. UBOOT:= u-boot-with-spl.kwb
  29. endif
  30. ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
  31. CONFIG:= pcm058_defconfig
  32. UBOOT:= u-boot.img
  33. endif
  34. ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
  35. CONFIG:= mx6cuboxi_defconfig
  36. UBOOT:= u-boot.img
  37. endif
  38. ifeq ($(ADK_TARGET_SYSTEM_PCDUINO_3B),y)
  39. CONFIG:= Linksprite_pcDuino3_defconfig
  40. UBOOT:= u-boot-sunxi-with-spl.bin
  41. endif
  42. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
  43. CONFIG:= rpi_defconfig
  44. endif
  45. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI2),y)
  46. CONFIG:= rpi_defconfig
  47. endif
  48. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3),y)
  49. CONFIG:= rpi_3_32b_defconfig
  50. endif
  51. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3P),y)
  52. CONFIG:= rpi_3_32b_defconfig
  53. endif
  54. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3_64),y)
  55. CONFIG:= rpi_3_defconfig
  56. endif
  57. ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64),y)
  58. CONFIG:= rpi_3_defconfig
  59. endif
  60. ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
  61. CONFIG:= rock-pi-4-rk3399_defconfig
  62. UBOOT:= u-boot.itb
  63. endif
  64. ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
  65. CONFIG:= Bananapro_defconfig
  66. UBOOT:= u-boot-sunxi-with-spl.bin
  67. endif
  68. ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
  69. CONFIG:= bananapi_m2_p2_zero_defconfig
  70. UBOOT:= u-boot-sunxi-with-spl.bin
  71. endif
  72. ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
  73. CONFIG:= orangepi_zero_defconfig
  74. UBOOT:= u-boot-sunxi-with-spl.bin
  75. endif
  76. ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
  77. CONFIG:= am335x_evm_defconfig
  78. UBOOT:= u-boot.img
  79. endif
  80. ifeq ($(ADK_TARGET_SYSTEM_IMGTEC_CI20),y)
  81. CONFIG:= ci20_mmc_defconfig
  82. UBOOT:= u-boot-dtb.img
  83. endif
  84. ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
  85. CONFIG:= stm32f746-disco_defconfig
  86. UBOOT:= u-boot-dtb.bin
  87. endif
  88. ifeq ($(ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2),y)
  89. CONFIG:= starfive_visionfive2_defconfig
  90. UBOOT:= u-boot.itb
  91. endif
  92. ifeq ($(ADK_TARGET_SYSTEM_MICROCHIP_PIC32),y)
  93. CONFIG:= pic32mzdask_defconfig
  94. UBOOT:= u-boot-dtb.bin
  95. endif
  96. MAKE_FLAGS+= HOSTCFLAGS="-I$(STAGING_HOST_DIR)/usr/include" \
  97. HOSTLDFLAGS="$(HOST_LDFLAGS)"
  98. HOST_STYLE:= manual
  99. CONFIG_STYLE:= manual
  100. BUILD_STYLE:= manual
  101. INSTALL_STYLE:= manual
  102. ifeq ($(ADK_TARGET_BINFMT_FDPIC),y)
  103. EXTRA_CFLAGS:= -mno-fdpic
  104. endif
  105. host-build:
  106. (cd $(WRKBUILD) && env $(HOST_MAKE_ENV) $(MAKE) -f $(MAKE_FILE) \
  107. $(HOST_MAKE_FLAGS) tools-only_defconfig )
  108. (cd $(WRKBUILD) && env $(HOST_MAKE_ENV) $(MAKE) -f $(MAKE_FILE) \
  109. $(HOST_MAKE_FLAGS) tools-only $(MAKE_TRACE) )
  110. u-boot-hostinstall:
  111. $(INSTALL_BIN) $(WRKBUILD)/tools/mk{,env}image \
  112. $(STAGING_HOST_DIR)/usr/bin
  113. do-configure:
  114. (cd $(WRKBUILD) && PATH='$(HOST_PATH)' $(MAKE) $(CONFIG))
  115. do-build:
  116. (cd $(WRKBUILD) && env \
  117. PKG_CONFIG="$(STAGING_HOST_DIR)/usr/bin/pkg-config" \
  118. PKG_CONFIG_LIBDIR="$(STAGING_HOST_DIR)/lib/pkgconfig:$(STAGING_HOST_DIR)/share/pkgconfig" \
  119. KBUILD_VERBOSE=1 \
  120. KCFLAGS='$(EXTRA_CFLAGS)' \
  121. PATH='$(HOST_PATH)' \
  122. CROSS_COMPILE='$(TARGET_CROSS)' \
  123. OPENSBI="$(FW_DIR)/fw_dynamic.bin" \
  124. BL31="$(WRKBUILD)/bl31.elf" \
  125. $(MAKE))
  126. (cd $(WRKBUILD) && env \
  127. PATH='$(HOST_PATH)' \
  128. CROSS_COMPILE='$(TARGET_CROSS)' \
  129. $(MAKE) envtools)
  130. u-boot-install:
  131. $(CP) $(WRKBUILD)/$(UBOOT) $(FW_DIR)
  132. $(INSTALL_DIR) $(IDIR_U_BOOT)/etc
  133. $(CP) ./files/fw_env.config $(IDIR_U_BOOT)/etc
  134. $(INSTALL_DIR) $(IDIR_U_BOOT)/usr/bin
  135. $(INSTALL_BIN) $(WRKBUILD)/tools/env/fw_printenv \
  136. $(IDIR_U_BOOT)/usr/bin
  137. cd $(IDIR_U_BOOT)/usr/bin && ln -fs fw_printenv fw_setenv
  138. ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
  139. $(CP) $(WRKBUILD)/idbloader.img $(FW_DIR)
  140. endif
  141. ifeq ($(ADK_TARGET_SYSTEM_IMGTEC_CI20),y)
  142. $(CP) $(WRKBUILD)/spl/u-boot-spl.bin $(FW_DIR)
  143. cat ./files/uboot-env.txt.ci20 | PATH='$(HOST_PATH)' mkenvimage -s "32768" -o $(FW_DIR)/uboot-env.bin -
  144. endif
  145. ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
  146. $(INSTALL_BIN) ./files/boot.script.bpi $(FW_DIR)
  147. endif
  148. ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
  149. $(INSTALL_BIN) ./files/boot.script.bpizero $(FW_DIR)
  150. endif
  151. ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
  152. $(INSTALL_BIN) ./files/boot.script.rockpi4 $(FW_DIR)
  153. endif
  154. ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
  155. $(INSTALL_BIN) ./files/boot.script.opi $(FW_DIR)
  156. endif
  157. ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
  158. $(INSTALL_BIN) ./files/boot.script.clearfog $(FW_DIR)
  159. endif
  160. ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
  161. $(INSTALL_BIN) $(WRKBUILD)/SPL $(FW_DIR)
  162. $(INSTALL_BIN) ./files/boot.script.imx6 $(FW_DIR)
  163. endif
  164. ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
  165. $(INSTALL_BIN) $(WRKBUILD)/SPL $(FW_DIR)
  166. $(INSTALL_BIN) ./files/boot.script.phytec $(FW_DIR)
  167. endif
  168. ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
  169. $(CP) ./files/uEnv.txt.bbb $(FW_DIR)/uEnv.txt
  170. $(INSTALL_BIN) $(WRKBUILD)/MLO $(FW_DIR)
  171. endif
  172. ifeq ($(ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2),y)
  173. $(CP) $(WRKBUILD)/spl/u-boot-spl.bin.normal.out $(FW_DIR)
  174. endif
  175. include $(ADK_TOPDIR)/mk/host-bottom.mk
  176. include $(ADK_TOPDIR)/mk/pkg-bottom.mk