Makefile 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. #
  2. # Copyright (C) 2017 Hauke Mehrtens
  3. # Copyright (C) 2021-2023 Daniel Golle
  4. #
  5. # This is free software, licensed under the GNU General Public License v2.
  6. # See /LICENSE for more information.
  7. #
  8. include $(TOPDIR)/rules.mk
  9. PKG_NAME:=arm-trusted-firmware-mediatek
  10. PKG_RELEASE:=1
  11. PKG_SOURCE_PROTO:=git
  12. PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
  13. PKG_SOURCE_DATE:=2023-10-13
  14. PKG_SOURCE_VERSION:=0ea67d76ae8be127c91caa3fcdf449b1fe533175
  15. PKG_MIRROR_HASH:=22579fae08de942e0d5a420cfaa0b1d310dc9431e85b7e28a3c3ef08331a199d
  16. PKG_MAINTAINER:=Daniel Golle <[email protected]>
  17. include $(INCLUDE_DIR)/kernel.mk
  18. include $(INCLUDE_DIR)/trusted-firmware-a.mk
  19. include $(INCLUDE_DIR)/package.mk
  20. define Trusted-Firmware-A/Default
  21. BUILD_TARGET:=mediatek
  22. TFA_IMAGE:=bl2.img bl31.bin
  23. HIDDEN:=y
  24. BOOT_DEVICE:=
  25. DDR3_FLYBY:=
  26. DDR_TYPE:=
  27. NAND_TYPE:=
  28. BOARD_QFN:=
  29. DRAM_USE_COMB:=
  30. USE_UBI:=
  31. endef
  32. define Trusted-Firmware-A/mt7622-nor-1ddr
  33. NAME:=MediaTek MT7622 (SPI-NOR, 1x DDR3)
  34. BUILD_SUBTARGET:=mt7622
  35. PLAT:=mt7622
  36. BOOT_DEVICE:=nor
  37. endef
  38. define Trusted-Firmware-A/mt7622-nor-2ddr
  39. NAME:=MediaTek MT7622 (SPI-NOR, 2x DDR3)
  40. BUILD_SUBTARGET:=mt7622
  41. PLAT:=mt7622
  42. BOOT_DEVICE:=nor
  43. DDR3_FLYBY:=1
  44. endef
  45. define Trusted-Firmware-A/mt7622-snand-1ddr
  46. NAME:=MediaTek MT7622 (SPI-NAND, 1x DDR3)
  47. BUILD_SUBTARGET:=mt7622
  48. PLAT:=mt7622
  49. BOOT_DEVICE:=snand
  50. endef
  51. define Trusted-Firmware-A/mt7622-snand-ubi-1ddr
  52. NAME:=MediaTek MT7622 (SPI-NAND using UBI, 1x DDR3)
  53. BUILD_SUBTARGET:=mt7622
  54. PLAT:=mt7622
  55. BOOT_DEVICE:=snand
  56. USE_UBI:=1
  57. endef
  58. define Trusted-Firmware-A/mt7622-snand-2ddr
  59. NAME:=MediaTek MT7622 (SPI-NAND, 2x DDR3)
  60. BUILD_SUBTARGET:=mt7622
  61. PLAT:=mt7622
  62. BOOT_DEVICE:=snand
  63. DDR3_FLYBY:=1
  64. endef
  65. define Trusted-Firmware-A/mt7622-snand-ubi-2ddr
  66. NAME:=MediaTek MT7622 (SPI-NAND using UBI, 2x DDR3)
  67. BUILD_SUBTARGET:=mt7622
  68. PLAT:=mt7622
  69. BOOT_DEVICE:=snand
  70. DDR3_FLYBY:=1
  71. USE_UBI:=1
  72. endef
  73. define Trusted-Firmware-A/mt7622-emmc-1ddr
  74. NAME:=MediaTek MT7622 (eMMC, 1x DDR3)
  75. BUILD_SUBTARGET:=mt7622
  76. PLAT:=mt7622
  77. BOOT_DEVICE:=emmc
  78. endef
  79. define Trusted-Firmware-A/mt7622-emmc-2ddr
  80. NAME:=MediaTek MT7622 (eMMC, 2x DDR3)
  81. BUILD_SUBTARGET:=mt7622
  82. PLAT:=mt7622
  83. BOOT_DEVICE:=emmc
  84. DDR3_FLYBY:=1
  85. endef
  86. define Trusted-Firmware-A/mt7622-sdmmc-1ddr
  87. NAME:=MediaTek MT7622 (SD card, 1x DDR3)
  88. BUILD_SUBTARGET:=mt7622
  89. PLAT:=mt7622
  90. BOOT_DEVICE:=sdmmc
  91. endef
  92. define Trusted-Firmware-A/mt7622-sdmmc-2ddr
  93. NAME:=MediaTek MT7622 (SD card, 2x DDR3)
  94. BUILD_SUBTARGET:=mt7622
  95. PLAT:=mt7622
  96. BOOT_DEVICE:=sdmmc
  97. DDR3_FLYBY:=1
  98. endef
  99. define Trusted-Firmware-A/mt7981-emmc-ddr4
  100. NAME:=MediaTek MT7981 (eMMC, DDR4)
  101. BOOT_DEVICE:=emmc
  102. BUILD_SUBTARGET:=filogic
  103. PLAT:=mt7981
  104. DDR_TYPE:=ddr4
  105. endef
  106. define Trusted-Firmware-A/mt7981-spim-nand-ddr4
  107. NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR4)
  108. BOOT_DEVICE:=spim-nand
  109. BUILD_SUBTARGET:=filogic
  110. PLAT:=mt7981
  111. DDR_TYPE:=ddr4
  112. endef
  113. define Trusted-Firmware-A/mt7981-nor-ddr3
  114. NAME:=MediaTek MT7981 (SPI-NOR, DDR3)
  115. BOOT_DEVICE:=nor
  116. BUILD_SUBTARGET:=filogic
  117. PLAT:=mt7981
  118. DDR_TYPE:=ddr3
  119. endef
  120. define Trusted-Firmware-A/mt7981-emmc-ddr3
  121. NAME:=MediaTek MT7981 (eMMC, DDR3)
  122. BOOT_DEVICE:=emmc
  123. BUILD_SUBTARGET:=filogic
  124. PLAT:=mt7981
  125. DDR_TYPE:=ddr3
  126. endef
  127. define Trusted-Firmware-A/mt7981-sdmmc-ddr3
  128. NAME:=MediaTek MT7981 (SD card, DDR3)
  129. BOOT_DEVICE:=sdmmc
  130. BUILD_SUBTARGET:=filogic
  131. PLAT:=mt7981
  132. DDR_TYPE:=ddr3
  133. endef
  134. define Trusted-Firmware-A/mt7981-snand-ddr3
  135. NAME:=MediaTek MT7981 (SPI-NAND via SNFI, DDR3)
  136. BOOT_DEVICE:=snand
  137. BUILD_SUBTARGET:=filogic
  138. PLAT:=mt7981
  139. DDR_TYPE:=ddr3
  140. endef
  141. define Trusted-Firmware-A/mt7981-spim-nand-ddr3
  142. NAME:=MediaTek MT7981 (SPI-NAND via SPIM, DDR3)
  143. BOOT_DEVICE:=spim-nand
  144. BUILD_SUBTARGET:=filogic
  145. PLAT:=mt7981
  146. DDR_TYPE:=ddr3
  147. endef
  148. define Trusted-Firmware-A/mt7986-nor-ddr4
  149. NAME:=MediaTek MT7986 (SPI-NOR, DDR4)
  150. BOOT_DEVICE:=nor
  151. BUILD_SUBTARGET:=filogic
  152. PLAT:=mt7986
  153. DDR_TYPE:=ddr4
  154. endef
  155. define Trusted-Firmware-A/mt7986-emmc-ddr4
  156. NAME:=MediaTek MT7986 (eMMC, DDR4)
  157. BOOT_DEVICE:=emmc
  158. BUILD_SUBTARGET:=filogic
  159. PLAT:=mt7986
  160. DDR_TYPE:=ddr4
  161. endef
  162. define Trusted-Firmware-A/mt7986-sdmmc-ddr4
  163. NAME:=MediaTek MT7986 (SD card, DDR4)
  164. BOOT_DEVICE:=sdmmc
  165. BUILD_SUBTARGET:=filogic
  166. PLAT:=mt7986
  167. DDR_TYPE:=ddr4
  168. endef
  169. define Trusted-Firmware-A/mt7986-snand-ddr4
  170. NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR4)
  171. BOOT_DEVICE:=snand
  172. BUILD_SUBTARGET:=filogic
  173. PLAT:=mt7986
  174. DDR_TYPE:=ddr4
  175. endef
  176. define Trusted-Firmware-A/mt7986-spim-nand-ddr4
  177. NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
  178. BOOT_DEVICE:=spim-nand
  179. BUILD_SUBTARGET:=filogic
  180. PLAT:=mt7986
  181. DDR_TYPE:=ddr4
  182. NAND_TYPE:=spim:2k+64
  183. endef
  184. define Trusted-Firmware-A/mt7986-spim-nand-ubi-ddr4
  185. NAME:=MediaTek MT7986 (SPI-NAND via SPIM using UBI, DDR4)
  186. BOOT_DEVICE:=spim-nand
  187. BUILD_SUBTARGET:=filogic
  188. PLAT:=mt7986
  189. DDR_TYPE:=ddr4
  190. NAND_TYPE:=spim:2k+64
  191. USE_UBI:=1
  192. endef
  193. define Trusted-Firmware-A/mt7986-spim-nand-4k-ddr4
  194. NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR4)
  195. BOOT_DEVICE:=spim-nand
  196. BUILD_SUBTARGET:=filogic
  197. PLAT:=mt7986
  198. DDR_TYPE:=ddr4
  199. NAND_TYPE:=spim:4k+256
  200. endef
  201. define Trusted-Firmware-A/mt7986-nor-ddr3
  202. NAME:=MediaTek MT7986 (SPI-NOR, DDR3)
  203. BOOT_DEVICE:=nor
  204. BUILD_SUBTARGET:=filogic
  205. PLAT:=mt7986
  206. DDR_TYPE:=ddr3
  207. endef
  208. define Trusted-Firmware-A/mt7986-emmc-ddr3
  209. NAME:=MediaTek MT7986 (eMMC, DDR3)
  210. BOOT_DEVICE:=emmc
  211. BUILD_SUBTARGET:=filogic
  212. PLAT:=mt7986
  213. DDR_TYPE:=ddr3
  214. endef
  215. define Trusted-Firmware-A/mt7986-sdmmc-ddr3
  216. NAME:=MediaTek MT7986 (SD card, DDR3)
  217. BOOT_DEVICE:=sdmmc
  218. BUILD_SUBTARGET:=filogic
  219. PLAT:=mt7986
  220. DDR_TYPE:=ddr3
  221. endef
  222. define Trusted-Firmware-A/mt7986-snand-ddr3
  223. NAME:=MediaTek MT7986 (SPI-NAND via SNFI, DDR3)
  224. BOOT_DEVICE:=snand
  225. BUILD_SUBTARGET:=filogic
  226. PLAT:=mt7986
  227. DDR_TYPE:=ddr3
  228. endef
  229. define Trusted-Firmware-A/mt7986-spim-nand-ddr3
  230. NAME:=MediaTek MT7986 (SPI-NAND via SPIM, DDR3)
  231. BOOT_DEVICE:=spim-nand
  232. BUILD_SUBTARGET:=filogic
  233. PLAT:=mt7986
  234. DDR_TYPE:=ddr3
  235. endef
  236. define Trusted-Firmware-A/mt7988-nor-ddr3
  237. NAME:=MediaTek MT7988 (SPI-NOR, DDR3)
  238. BOOT_DEVICE:=nor
  239. BUILD_SUBTARGET:=filogic
  240. PLAT:=mt7988
  241. DDR_TYPE:=ddr3
  242. endef
  243. define Trusted-Firmware-A/mt7988-emmc-ddr3
  244. NAME:=MediaTek MT7988 (eMMC, DDR3)
  245. BOOT_DEVICE:=emmc
  246. BUILD_SUBTARGET:=filogic
  247. PLAT:=mt7988
  248. DDR_TYPE:=ddr3
  249. endef
  250. define Trusted-Firmware-A/mt7988-sdmmc-ddr3
  251. NAME:=MediaTek MT7988 (SD card, DDR3)
  252. BOOT_DEVICE:=sdmmc
  253. BUILD_SUBTARGET:=filogic
  254. PLAT:=mt7988
  255. DDR_TYPE:=ddr3
  256. endef
  257. define Trusted-Firmware-A/mt7988-snand-ddr3
  258. NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR3)
  259. BOOT_DEVICE:=snand
  260. BUILD_SUBTARGET:=filogic
  261. PLAT:=mt7988
  262. DDR_TYPE:=ddr3
  263. endef
  264. define Trusted-Firmware-A/mt7988-spim-nand-ddr3
  265. NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR3)
  266. BOOT_DEVICE:=spim-nand
  267. BUILD_SUBTARGET:=filogic
  268. PLAT:=mt7988
  269. DDR_TYPE:=ddr3
  270. endef
  271. define Trusted-Firmware-A/mt7988-nor-ddr4
  272. NAME:=MediaTek MT7988 (SPI-NOR, DDR4)
  273. BOOT_DEVICE:=nor
  274. BUILD_SUBTARGET:=filogic
  275. PLAT:=mt7988
  276. DDR_TYPE:=ddr4
  277. endef
  278. define Trusted-Firmware-A/mt7988-emmc-ddr4
  279. NAME:=MediaTek MT7988 (eMMC, DDR4)
  280. BOOT_DEVICE:=emmc
  281. BUILD_SUBTARGET:=filogic
  282. PLAT:=mt7988
  283. DDR_TYPE:=ddr4
  284. endef
  285. define Trusted-Firmware-A/mt7988-sdmmc-ddr4
  286. NAME:=MediaTek MT7988 (SD card, DDR4)
  287. BOOT_DEVICE:=sdmmc
  288. BUILD_SUBTARGET:=filogic
  289. PLAT:=mt7988
  290. DDR_TYPE:=ddr4
  291. endef
  292. define Trusted-Firmware-A/mt7988-snand-ddr4
  293. NAME:=MediaTek MT7988 (SPI-NAND via SNFI, DDR4)
  294. BOOT_DEVICE:=snand
  295. BUILD_SUBTARGET:=filogic
  296. PLAT:=mt7988
  297. DDR_TYPE:=ddr4
  298. endef
  299. define Trusted-Firmware-A/mt7988-spim-nand-ddr4
  300. NAME:=MediaTek MT7988 (SPI-NAND via SPIM, DDR4)
  301. BOOT_DEVICE:=spim-nand
  302. BUILD_SUBTARGET:=filogic
  303. PLAT:=mt7988
  304. DDR_TYPE:=ddr4
  305. endef
  306. define Trusted-Firmware-A/mt7988-nor-comb
  307. NAME:=MediaTek MT7988 (SPI-NOR)
  308. BOOT_DEVICE:=nor
  309. BUILD_SUBTARGET:=filogic
  310. PLAT:=mt7988
  311. DRAM_USE_COMB:=1
  312. endef
  313. define Trusted-Firmware-A/mt7988-emmc-comb
  314. NAME:=MediaTek MT7988 (eMMC)
  315. BOOT_DEVICE:=emmc
  316. BUILD_SUBTARGET:=filogic
  317. PLAT:=mt7988
  318. DRAM_USE_COMB:=1
  319. endef
  320. define Trusted-Firmware-A/mt7988-sdmmc-comb
  321. NAME:=MediaTek MT7988 (SD card)
  322. BOOT_DEVICE:=sdmmc
  323. BUILD_SUBTARGET:=filogic
  324. PLAT:=mt7988
  325. DRAM_USE_COMB:=1
  326. endef
  327. define Trusted-Firmware-A/mt7988-snand-comb
  328. NAME:=MediaTek MT7988 (SPI-NAND via SNFI)
  329. BOOT_DEVICE:=snand
  330. BUILD_SUBTARGET:=filogic
  331. PLAT:=mt7988
  332. DRAM_USE_COMB:=1
  333. endef
  334. define Trusted-Firmware-A/mt7988-snand-ubi-comb
  335. NAME:=MediaTek MT7988 (SPI-NAND via SNFI, UBI)
  336. BOOT_DEVICE:=snand
  337. BUILD_SUBTARGET:=filogic
  338. PLAT:=mt7988
  339. DRAM_USE_COMB:=1
  340. USE_UBI:=1
  341. endef
  342. define Trusted-Firmware-A/mt7988-spim-nand-comb
  343. NAME:=MediaTek MT7988 (SPI-NAND via SPIM)
  344. BOOT_DEVICE:=spim-nand
  345. BUILD_SUBTARGET:=filogic
  346. PLAT:=mt7988
  347. DRAM_USE_COMB:=1
  348. endef
  349. define Trusted-Firmware-A/mt7988-spim-nand-ubi-comb
  350. NAME:=MediaTek MT7988 (SPI-NAND via SPIM, UBI)
  351. BOOT_DEVICE:=spim-nand
  352. BUILD_SUBTARGET:=filogic
  353. PLAT:=mt7988
  354. DRAM_USE_COMB:=1
  355. USE_UBI:=1
  356. endef
  357. TFA_TARGETS:= \
  358. mt7622-nor-1ddr \
  359. mt7622-nor-2ddr \
  360. mt7622-snand-1ddr \
  361. mt7622-snand-ubi-1ddr \
  362. mt7622-snand-2ddr \
  363. mt7622-snand-ubi-2ddr \
  364. mt7622-emmc-1ddr \
  365. mt7622-emmc-2ddr \
  366. mt7622-sdmmc-1ddr \
  367. mt7622-sdmmc-2ddr \
  368. mt7981-emmc-ddr3 \
  369. mt7981-nor-ddr3 \
  370. mt7981-sdmmc-ddr3 \
  371. mt7981-snand-ddr3 \
  372. mt7981-spim-nand-ddr3 \
  373. mt7981-emmc-ddr4 \
  374. mt7981-spim-nand-ddr4 \
  375. mt7986-emmc-ddr3 \
  376. mt7986-nor-ddr3 \
  377. mt7986-sdmmc-ddr3 \
  378. mt7986-snand-ddr3 \
  379. mt7986-spim-nand-ddr3 \
  380. mt7986-emmc-ddr4 \
  381. mt7986-nor-ddr4 \
  382. mt7986-sdmmc-ddr4 \
  383. mt7986-snand-ddr4 \
  384. mt7986-spim-nand-ddr4 \
  385. mt7986-spim-nand-ubi-ddr4 \
  386. mt7986-spim-nand-4k-ddr4 \
  387. mt7988-emmc-ddr3 \
  388. mt7988-nor-ddr3 \
  389. mt7988-sdmmc-ddr3 \
  390. mt7988-snand-ddr3 \
  391. mt7988-spim-nand-ddr3 \
  392. mt7988-emmc-ddr4 \
  393. mt7988-nor-ddr4 \
  394. mt7988-sdmmc-ddr4 \
  395. mt7988-snand-ddr4 \
  396. mt7988-spim-nand-ddr4 \
  397. mt7988-emmc-comb \
  398. mt7988-nor-comb \
  399. mt7988-sdmmc-comb \
  400. mt7988-snand-comb \
  401. mt7988-snand-ubi-comb \
  402. mt7988-spim-nand-comb \
  403. mt7988-spim-nand-ubi-comb
  404. TFA_MAKE_FLAGS += \
  405. BOOT_DEVICE=$(BOOT_DEVICE) \
  406. USE_MKIMAGE=1 MKIMAGE=$(STAGING_DIR_HOST)/bin/mkimage \
  407. $(if $(findstring ddr4,$(DDR_TYPE)),DRAM_USE_DDR4=1) \
  408. $(if $(BOARD_QFN),BOARD_QFN=1,BOARD_BGA=1) \
  409. $(if $(NAND_TYPE),NAND_TYPE=$(NAND_TYPE)) \
  410. HAVE_DRAM_OBJ_FILE=yes \
  411. $(if $(DDR3_FLYBY),DDR3_FLYBY=1) \
  412. $(if $(DRAM_USE_COMB),DRAM_USE_COMB=1) \
  413. $(if $(USE_UBI),UBI=1 $(if $(findstring mt7622,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x80000)) \
  414. all
  415. define Package/trusted-firmware-a/install
  416. $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
  417. $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl2.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl2.img
  418. $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl31.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-bl31.bin
  419. endef
  420. $(eval $(call BuildPackage/Trusted-Firmware-A))