2
0

Makefile 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. include $(TOPDIR)/rules.mk
  2. include $(INCLUDE_DIR)/kernel.mk
  3. PKG_VERSION:=2023.01
  4. PKG_HASH:=69423bad380f89a0916636e89e6dcbd2e4512d584308d922d1039d1e4331950f
  5. PKG_BUILD_DEPENDS:=!(TARGET_ramips||TARGET_mediatek_mt7623):arm-trusted-firmware-tools/host
  6. include $(INCLUDE_DIR)/u-boot.mk
  7. include $(INCLUDE_DIR)/package.mk
  8. include $(INCLUDE_DIR)/host-build.mk
  9. MT7621_LOWLEVEL_PRELOADER_URL:=https://raw.githubusercontent.com/mtk-openwrt/mt7621-lowlevel-preloader/a03b07c60bf1ba4add9b671d32caa102fe948180/
  10. define Download/mt7621-stage-sram
  11. FILE:=mt7621_stage_sram.bin
  12. URL:=$(MT7621_LOWLEVEL_PRELOADER_URL)
  13. HASH:=1dda68aa089f0ff262e01539b990dea478952e9fb68bcc0a8cd6f76f0135c62e
  14. endef
  15. define Download/mt7621-stage-sram-noprint
  16. FILE:=mt7621_stage_sram_noprint.bin
  17. URL:=$(MT7621_LOWLEVEL_PRELOADER_URL)
  18. HASH:=8ee419275144fc298e9444d413d98e965a55d283152a74ea6a1f8de79eb516b6
  19. endef
  20. ifdef CONFIG_TARGET_ramips_mt7621
  21. ifdef CONFIG_DEBUG
  22. $(eval $(call Download,mt7621-stage-sram))
  23. else
  24. $(eval $(call Download,mt7621-stage-sram-noprint))
  25. endif
  26. endif
  27. define U-Boot/Default
  28. BUILD_TARGET:=mediatek
  29. UBOOT_IMAGE:=u-boot-mtk.bin
  30. endef
  31. define U-Boot/mt7620_rfb
  32. NAME:=MT7620 Reference Board
  33. UBOOT_CONFIG:=mt7620_rfb
  34. BUILD_DEVICES:=ralink_mt7620a-evb
  35. BUILD_TARGET:=ramips
  36. BUILD_SUBTARGET:=mt7620
  37. UBOOT_IMAGE:=u-boot-with-spl.bin
  38. endef
  39. define U-Boot/mt7620_mt7530_rfb
  40. NAME:=MT7620+MT7530 Reference Board
  41. UBOOT_CONFIG:=mt7620_mt7530_rfb
  42. BUILD_DEVICES:=ralink_mt7620a-mt7530-evb
  43. BUILD_TARGET:=ramips
  44. BUILD_SUBTARGET:=mt7620
  45. UBOOT_IMAGE:=u-boot-with-spl.bin
  46. endef
  47. define U-Boot/mt7621_rfb
  48. NAME:=MT7621 Reference Board
  49. UBOOT_CONFIG:=mt7621_rfb
  50. BUILD_DEVICES:=mediatek_mt7621-eval-board
  51. BUILD_TARGET:=ramips
  52. BUILD_SUBTARGET:=mt7621
  53. UBOOT_IMAGE:=u-boot-mt7621.bin
  54. endef
  55. define U-Boot/mt7621_nand_rfb
  56. NAME:=MT7621 Reference Board (NAND)
  57. UBOOT_CONFIG:=mt7621_nand_rfb
  58. BUILD_DEVICES:=mediatek_mt7621-eval-board
  59. BUILD_TARGET:=ramips
  60. BUILD_SUBTARGET:=mt7621
  61. UBOOT_IMAGE:=u-boot-mt7621.bin
  62. endef
  63. define U-Boot/mt7622_rfb1
  64. NAME:=MT7622 Reference Board 1
  65. UBOOT_CONFIG:=mt7622_rfb
  66. BUILD_DEVICES:=mediatek_mt7622-rfb1 mediatek_mt7622-rfb1-ubi
  67. BUILD_SUBTARGET:=mt7622
  68. endef
  69. define U-Boot/mt7622_linksys_e8450
  70. NAME:=Linksys E8450
  71. UBOOT_CONFIG:=mt7622_linksys_e8450
  72. BUILD_DEVICES:=linksys_e8450-ubi
  73. BUILD_SUBTARGET:=mt7622
  74. UBOOT_IMAGE:=u-boot.fip
  75. BL2_BOOTDEV:=snand
  76. BL2_DDRBLOB:=1
  77. DEPENDS:=+trusted-firmware-a-mt7622-snand-1ddr
  78. endef
  79. define U-Boot/mt7622_bananapi_bpi-r64-emmc
  80. NAME:=BananaPi R64 (eMMC)
  81. UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-emmc
  82. BUILD_DEVICES:=bananapi_bpi-r64
  83. BUILD_SUBTARGET:=mt7622
  84. UBOOT_IMAGE:=u-boot.fip
  85. BL2_BOOTDEV:=emmc
  86. BL2_DDRBLOB:=2
  87. DEPENDS:=+trusted-firmware-a-mt7622-emmc-2ddr
  88. endef
  89. define U-Boot/mt7622_bananapi_bpi-r64-sdmmc
  90. NAME:=BananaPi R64 (SDMMC)
  91. UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-sdmmc
  92. BUILD_DEVICES:=bananapi_bpi-r64
  93. BUILD_SUBTARGET:=mt7622
  94. UBOOT_IMAGE:=u-boot.fip
  95. BL2_BOOTDEV:=sdmmc
  96. BL2_DDRBLOB:=2
  97. DEPENDS:=+trusted-firmware-a-mt7622-sdmmc-2ddr
  98. endef
  99. define U-Boot/mt7622_bananapi_bpi-r64-snand
  100. NAME:=BananaPi R64 (SNAND)
  101. UBOOT_CONFIG:=mt7622_bananapi_bpi-r64-snand
  102. BUILD_DEVICES:=bananapi_bpi-r64
  103. BUILD_SUBTARGET:=mt7622
  104. UBOOT_IMAGE:=u-boot.fip
  105. BL2_BOOTDEV:=snand
  106. BL2_DDRBLOB:=2
  107. DEPENDS:=+trusted-firmware-a-mt7622-snand-2ddr
  108. endef
  109. define U-Boot/mt7622_ubnt_unifi-6-lr
  110. NAME:=Ubiquiti UniFi 6 LR
  111. UBOOT_CONFIG:=mt7622_ubnt_unifi-6-lr
  112. BUILD_DEVICES:=ubnt_unifi-6-lr-v1-ubootmod ubnt_unifi-6-lr-v2-ubootmod
  113. BUILD_SUBTARGET:=mt7622
  114. UBOOT_IMAGE:=u-boot.fip
  115. BL2_BOOTDEV:=nor
  116. BL2_DDRBLOB:=2
  117. DEPENDS:=+trusted-firmware-a-mt7622-nor-2ddr
  118. FIP_COMPRESS:=1
  119. endef
  120. define U-Boot/mt7623a_unielec_u7623
  121. NAME:=UniElec U7623 (mt7623)
  122. BUILD_DEVICES:=unielec_u7623-02
  123. BUILD_SUBTARGET:=mt7623
  124. UBOOT_CONFIG:=mt7623a_unielec_u7623_02
  125. endef
  126. define U-Boot/mt7623n_bpir2
  127. NAME:=Banana Pi R2 (mt7623)
  128. BUILD_DEVICES:=bananapi_bpi-r2
  129. BUILD_SUBTARGET:=mt7623
  130. UBOOT_IMAGE:=u-boot.bin
  131. UBOOT_CONFIG:=mt7623n_bpir2
  132. endef
  133. define U-Boot/mt7628_rfb
  134. NAME:=MT7628 Reference Board
  135. BUILD_DEVICES:=mediatek_mt7628an-eval-board
  136. BUILD_TARGET:=ramips
  137. BUILD_SUBTARGET:=mt76x8
  138. UBOOT_CONFIG:=mt7628_rfb
  139. UBOOT_IMAGE:=u-boot-with-spl.bin
  140. endef
  141. define U-Boot/ravpower_rp-wd009
  142. NAME:=RAVPower RP-WD009
  143. BUILD_TARGET:=ramips
  144. BUILD_DEVICES:=ravpower_rp-wd009
  145. BUILD_SUBTARGET:=mt76x8
  146. UBOOT_CONFIG:=ravpower-rp-wd009-ram
  147. UBOOT_IMAGE:=u-boot.bin
  148. endef
  149. define U-Boot/mt7629_rfb
  150. NAME:=MT7629 Reference Board
  151. BUILD_SUBTARGET:=mt7629
  152. BUILD_DEVICES:=mediatek_mt7629-rfb
  153. UBOOT_CONFIG:=mt7629_rfb
  154. endef
  155. define U-Boot/mt7986_rfb
  156. NAME:=MT7986 Reference Board
  157. BUILD_SUBTARGET:=filogic
  158. BUILD_DEVICES:=mediatek_mt7986-rfb
  159. UBOOT_CONFIG:=mt7986_rfb
  160. UBOOT_IMAGE:=u-boot.fip
  161. BL2_BOOTDEV:=sdmmc
  162. BL2_SOC:=mt7986
  163. BL2_DDRTYPE:=ddr4
  164. DEPENDS:=+trusted-firmware-a-mt7986-sdmmc-ddr4
  165. endef
  166. define U-Boot/mt7986_bananapi_bpi-r3-emmc
  167. NAME:=BananaPi BPi-R3
  168. BUILD_SUBTARGET:=filogic
  169. BUILD_DEVICES:=bananapi_bpi-r3
  170. UBOOT_CONFIG:=mt7986a_bpi-r3-emmc
  171. UBOOT_IMAGE:=u-boot.fip
  172. BL2_BOOTDEV:=emmc
  173. BL2_SOC:=mt7986
  174. BL2_DDRTYPE:=ddr4
  175. DEPENDS:=+trusted-firmware-a-mt7986-emmc-ddr4
  176. endef
  177. define U-Boot/mt7986_bananapi_bpi-r3-sdmmc
  178. NAME:=BananaPi BPi-R3
  179. BUILD_SUBTARGET:=filogic
  180. BUILD_DEVICES:=bananapi_bpi-r3
  181. UBOOT_CONFIG:=mt7986a_bpi-r3-sd
  182. UBOOT_IMAGE:=u-boot.fip
  183. BL2_BOOTDEV:=sdmmc
  184. BL2_SOC:=mt7986
  185. BL2_DDRTYPE:=ddr4
  186. DEPENDS:=+trusted-firmware-a-mt7986-sdmmc-ddr4
  187. endef
  188. define U-Boot/mt7986_bananapi_bpi-r3-snand
  189. NAME:=BananaPi BPi-R3
  190. BUILD_SUBTARGET:=filogic
  191. BUILD_DEVICES:=bananapi_bpi-r3
  192. UBOOT_CONFIG:=mt7986a_bpi-r3-snand
  193. UBOOT_IMAGE:=u-boot.fip
  194. BL2_BOOTDEV:=spim-nand
  195. BL2_SOC:=mt7986
  196. BL2_DDRTYPE:=ddr4
  197. DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ddr4
  198. endef
  199. define U-Boot/mt7986_bananapi_bpi-r3-nor
  200. NAME:=BananaPi BPi-R3
  201. BUILD_SUBTARGET:=filogic
  202. BUILD_DEVICES:=bananapi_bpi-r3
  203. UBOOT_CONFIG:=mt7986a_bpi-r3-nor
  204. UBOOT_IMAGE:=u-boot.fip
  205. BL2_BOOTDEV:=nor
  206. BL2_SOC:=mt7986
  207. BL2_DDRTYPE:=ddr4
  208. DEPENDS:=+trusted-firmware-a-mt7986-nor-ddr4
  209. FIP_COMPRESS:=1
  210. endef
  211. define U-Boot/mt7986_xiaomi_redmi-router-ax6000
  212. NAME:=Xiaomi Redmi AX6000
  213. BUILD_SUBTARGET:=filogic
  214. BUILD_DEVICES:=xiaomi_redmi-router-ax6000-ubootmod
  215. UBOOT_CONFIG:=mt7986_xiaomi_redmi-ax6000
  216. UBOOT_IMAGE:=u-boot.fip
  217. BL2_BOOTDEV:=spim-nand
  218. BL2_SOC:=mt7986
  219. BL2_DDRTYPE:=ddr4
  220. DEPENDS:=+trusted-firmware-a-mt7986-spim-nand-ddr4
  221. endef
  222. UBOOT_TARGETS := \
  223. mt7620_mt7530_rfb \
  224. mt7620_rfb \
  225. mt7621_nand_rfb \
  226. mt7621_rfb \
  227. mt7622_bananapi_bpi-r64-emmc \
  228. mt7622_bananapi_bpi-r64-sdmmc \
  229. mt7622_bananapi_bpi-r64-snand \
  230. mt7622_linksys_e8450 \
  231. mt7622_rfb1 \
  232. mt7622_ubnt_unifi-6-lr \
  233. mt7623n_bpir2 \
  234. mt7623a_unielec_u7623 \
  235. mt7628_rfb \
  236. ravpower_rp-wd009 \
  237. mt7629_rfb \
  238. mt7986_bananapi_bpi-r3-emmc \
  239. mt7986_bananapi_bpi-r3-sdmmc \
  240. mt7986_bananapi_bpi-r3-snand \
  241. mt7986_bananapi_bpi-r3-nor \
  242. mt7986_xiaomi_redmi-router-ax6000 \
  243. mt7986_rfb
  244. ifdef CONFIG_TARGET_mediatek
  245. UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE:.fip=.bin)
  246. endif
  247. define Build/fip-image
  248. $(if $(FIP_COMPRESS),\
  249. xz -f -e -k -9 -C crc32 $(STAGING_DIR_IMAGE)/$(if $(BL2_SOC),$(BL2_SOC),$(BUILD_SUBTARGET))-$(BL2_BOOTDEV)-$(if $(BL2_DDRTYPE),$(BL2_DDRTYPE)-)$(if $(BL2_DDRBLOB),$(BL2_DDRBLOB)ddr-)bl31.bin ;\
  250. xz -f -e -k -9 -C crc32 $(PKG_BUILD_DIR)/u-boot.bin \
  251. )
  252. $(STAGING_DIR_HOST)/bin/fiptool create \
  253. --soc-fw $(STAGING_DIR_IMAGE)/$(if $(BL2_SOC),$(BL2_SOC),$(BUILD_SUBTARGET))-$(BL2_BOOTDEV)-$(if $(BL2_DDRTYPE),$(BL2_DDRTYPE)-)$(if $(BL2_DDRBLOB),$(BL2_DDRBLOB)ddr-)bl31.bin$(if $(FIP_COMPRESS),.xz) \
  254. --nt-fw $(PKG_BUILD_DIR)/u-boot.bin$(if $(FIP_COMPRESS),.xz) \
  255. $(PKG_BUILD_DIR)/u-boot.fip
  256. endef
  257. ifdef CONFIG_TARGET_ramips_mt7621
  258. define Build/Prepare
  259. $(call Build/Prepare/Default)
  260. ifdef CONFIG_DEBUG
  261. $(CP) $(DL_DIR)/mt7621_stage_sram.bin $(PKG_BUILD_DIR)/
  262. else
  263. $(CP) $(DL_DIR)/mt7621_stage_sram_noprint.bin $(PKG_BUILD_DIR)/mt7621_stage_sram.bin
  264. endif
  265. endef
  266. endif
  267. define Build/Configure
  268. $(call Build/Configure/U-Boot)
  269. sed -i 's/CONFIG_TOOLS_LIBCRYPTO=y/# CONFIG_TOOLS_LIBCRYPTO is not set/' $(PKG_BUILD_DIR)/.config
  270. endef
  271. define Build/Compile
  272. $(call Build/Compile/U-Boot)
  273. ifeq ($(UBOOT_IMAGE),u-boot.fip)
  274. $(call Build/fip-image)
  275. endif
  276. endef
  277. # don't stage files to bindir, let target/linux/mediatek/image/*.mk do that
  278. ifdef CONFIG_TARGET_mediatek
  279. define Package/u-boot/install
  280. endef
  281. endif
  282. define Build/InstallDev
  283. $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
  284. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE)
  285. endef
  286. $(eval $(call BuildPackage/U-Boot))