2 # Copyright (C) 2017 Hauke Mehrtens
3 # Copyright (C) 2021-2023 Daniel Golle
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
9 include $(TOPDIR
)/rules.mk
11 PKG_NAME
:=arm-trusted-firmware-mediatek
15 PKG_SOURCE_URL
=https
://github.com
/mtk-openwrt
/arm-trusted-firmware.git
16 PKG_SOURCE_DATE
:=2025-02-12
17 PKG_SOURCE_VERSION
:=e090770684e775711a624e68e0b28112227a4c38
18 PKG_MIRROR_HASH
:=1ff9d60f3677aadd9a6716e860985987ba7157bd28ce831112e05c0b3170939a
20 PKG_MAINTAINER
:=Daniel Golle
<daniel@makrotopia.org
>
22 include $(INCLUDE_DIR
)/kernel.mk
23 include $(INCLUDE_DIR
)/trusted-firmware-a.mk
24 include $(INCLUDE_DIR
)/package.mk
26 define Trusted-Firmware-A
/Default
27 BUILD_TARGET
:=mediatek
28 TFA_IMAGE
:=bl2.img bl31.bin
42 define Trusted-Firmware-A
/mt7622-nor-1ddr
43 NAME
:=MediaTek MT7622
(SPI-NOR
, 1x DDR3
)
44 BUILD_SUBTARGET
:=mt7622
49 define Trusted-Firmware-A
/mt7622-nor-2ddr
50 NAME
:=MediaTek MT7622
(SPI-NOR
, 2x DDR3
)
51 BUILD_SUBTARGET
:=mt7622
57 define Trusted-Firmware-A
/mt7622-ram-1ddr
58 NAME
:=MediaTek MT7622
(RAM
, 1x DDR3
)
60 BUILD_SUBTARGET
:=mt7622
64 DEFAULT
:=TARGET_mediatek_mt7622
67 define Trusted-Firmware-A
/mt7622-ram-2ddr
68 NAME
:=MediaTek MT7622
(RAM
, 2x DDR3
)
70 BUILD_SUBTARGET
:=mt7622
75 DEFAULT
:=TARGET_mediatek_mt7622
78 define Trusted-Firmware-A
/mt7622-snand-1ddr
79 NAME
:=MediaTek MT7622
(SPI-NAND
, 1x DDR3
)
80 BUILD_SUBTARGET
:=mt7622
85 define Trusted-Firmware-A
/mt7622-snand-ubi-1ddr
86 NAME
:=MediaTek MT7622
(SPI-NAND using UBI
, 1x DDR3
)
87 BUILD_SUBTARGET
:=mt7622
93 define Trusted-Firmware-A
/mt7622-snand-2ddr
94 NAME
:=MediaTek MT7622
(SPI-NAND
, 2x DDR3
)
95 BUILD_SUBTARGET
:=mt7622
101 define Trusted-Firmware-A
/mt7622-snand-ubi-2ddr
102 NAME
:=MediaTek MT7622
(SPI-NAND using UBI
, 2x DDR3
)
103 BUILD_SUBTARGET
:=mt7622
110 define Trusted-Firmware-A
/mt7622-emmc-1ddr
111 NAME
:=MediaTek MT7622
(eMMC
, 1x DDR3
)
112 BUILD_SUBTARGET
:=mt7622
117 define Trusted-Firmware-A
/mt7622-emmc-2ddr
118 NAME
:=MediaTek MT7622
(eMMC
, 2x DDR3
)
119 BUILD_SUBTARGET
:=mt7622
125 define Trusted-Firmware-A
/mt7622-sdmmc-1ddr
126 NAME
:=MediaTek MT7622
(SD card
, 1x DDR3
)
127 BUILD_SUBTARGET
:=mt7622
132 define Trusted-Firmware-A
/mt7622-sdmmc-2ddr
133 NAME
:=MediaTek MT7622
(SD card
, 2x DDR3
)
134 BUILD_SUBTARGET
:=mt7622
140 define Trusted-Firmware-A
/mt7981-ram-ddr4
141 NAME
:=MediaTek MT7981
(RAM
, DDR4
)
143 BUILD_SUBTARGET
:=filogic
148 DEFAULT
:=TARGET_mediatek_filogic
151 define Trusted-Firmware-A
/mt7981-emmc-ddr4
152 NAME
:=MediaTek MT7981
(eMMC
, DDR4
)
154 BUILD_SUBTARGET
:=filogic
159 define Trusted-Firmware-A
/mt7981-spim-nand-ddr4
160 NAME
:=MediaTek MT7981
(SPI-NAND via SPIM
, DDR4
)
161 BOOT_DEVICE
:=spim-nand
162 BUILD_SUBTARGET
:=filogic
167 define Trusted-Firmware-A
/mt7981-nor-ddr3
168 NAME
:=MediaTek MT7981
(SPI-NOR
, DDR3
)
170 BUILD_SUBTARGET
:=filogic
175 define Trusted-Firmware-A
/mt7981-ram-ddr3
176 NAME
:=MediaTek MT7981
(RAM
, DDR3
)
178 BUILD_SUBTARGET
:=filogic
183 DEFAULT
:=TARGET_mediatek_filogic
186 define Trusted-Firmware-A
/mt7981-nor-ddr4
187 NAME
:=MediaTek MT7981
(SPI-NOR
, DDR4
)
189 BUILD_SUBTARGET
:=filogic
194 define Trusted-Firmware-A
/mt7981-emmc-ddr3
195 NAME
:=MediaTek MT7981
(eMMC
, DDR3
)
197 BUILD_SUBTARGET
:=filogic
202 define Trusted-Firmware-A
/mt7981-sdmmc-ddr3
203 NAME
:=MediaTek MT7981
(SD card
, DDR3
)
205 BUILD_SUBTARGET
:=filogic
210 define Trusted-Firmware-A
/mt7981-snand-ddr3
211 NAME
:=MediaTek MT7981
(SPI-NAND via SNFI
, DDR3
)
213 BUILD_SUBTARGET
:=filogic
218 define Trusted-Firmware-A
/mt7981-spim-nand-ddr3
219 NAME
:=MediaTek MT7981
(SPI-NAND via SPIM
, DDR3
)
220 BOOT_DEVICE
:=spim-nand
221 BUILD_SUBTARGET
:=filogic
226 define Trusted-Firmware-A
/mt7981-cudy-tr3000-v1
227 NAME
:=Cudy TR3000 v1
(SPI-NAND via SPIM
, DDR3
)
228 BOOT_DEVICE
:=spim-nand
229 BUILD_SUBTARGET
:=filogic
236 define Trusted-Firmware-A
/mt7986-ram-ddr4
237 NAME
:=MediaTek MT7986
(RAM
, DDR4
)
239 BUILD_SUBTARGET
:=filogic
244 DEFAULT
:=TARGET_mediatek_filogic
247 define Trusted-Firmware-A
/mt7981-spim-nand-ubi-ddr4
248 NAME
:=MediaTek MT7981
(SPI-NAND via SPIM
, DDR4
)
249 BOOT_DEVICE
:=spim-nand
250 BUILD_SUBTARGET
:=filogic
256 define Trusted-Firmware-A
/mt7986-nor-ddr4
257 NAME
:=MediaTek MT7986
(SPI-NOR
, DDR4
)
259 BUILD_SUBTARGET
:=filogic
264 define Trusted-Firmware-A
/mt7986-emmc-ddr4
265 NAME
:=MediaTek MT7986
(eMMC
, DDR4
)
267 BUILD_SUBTARGET
:=filogic
272 define Trusted-Firmware-A
/mt7986-sdmmc-ddr4
273 NAME
:=MediaTek MT7986
(SD card
, DDR4
)
275 BUILD_SUBTARGET
:=filogic
280 define Trusted-Firmware-A
/mt7986-snand-ddr4
281 NAME
:=MediaTek MT7986
(SPI-NAND via SNFI
, DDR4
)
283 BUILD_SUBTARGET
:=filogic
288 define Trusted-Firmware-A
/mt7986-spim-nand-ddr4
289 NAME
:=MediaTek MT7986
(SPI-NAND via SPIM
, DDR4
)
290 BOOT_DEVICE
:=spim-nand
291 BUILD_SUBTARGET
:=filogic
294 NAND_TYPE
:=spim
:2k
+64
297 define Trusted-Firmware-A
/mt7986-spim-nand-ubi-ddr4
298 NAME
:=MediaTek MT7986
(SPI-NAND via SPIM using UBI
, DDR4
)
299 BOOT_DEVICE
:=spim-nand
300 BUILD_SUBTARGET
:=filogic
303 NAND_TYPE
:=spim
:2k
+64
307 define Trusted-Firmware-A
/mt7986-spim-nand-4k-ddr4
308 NAME
:=MediaTek MT7986
(SPI-NAND via SPIM
, DDR4
)
309 BOOT_DEVICE
:=spim-nand
310 BUILD_SUBTARGET
:=filogic
313 NAND_TYPE
:=spim
:4k
+256
316 define Trusted-Firmware-A
/mt7986-ram-ddr3
317 NAME
:=MediaTek MT7986
(RAM
, DDR3
)
319 BUILD_SUBTARGET
:=filogic
324 DEFAULT
:=TARGET_mediatek_filogic
327 define Trusted-Firmware-A
/mt7986-nor-ddr3
328 NAME
:=MediaTek MT7986
(SPI-NOR
, DDR3
)
330 BUILD_SUBTARGET
:=filogic
335 define Trusted-Firmware-A
/mt7986-emmc-ddr3
336 NAME
:=MediaTek MT7986
(eMMC
, DDR3
)
338 BUILD_SUBTARGET
:=filogic
343 define Trusted-Firmware-A
/mt7986-sdmmc-ddr3
344 NAME
:=MediaTek MT7986
(SD card
, DDR3
)
346 BUILD_SUBTARGET
:=filogic
351 define Trusted-Firmware-A
/mt7986-snand-ddr3
352 NAME
:=MediaTek MT7986
(SPI-NAND via SNFI
, DDR3
)
354 BUILD_SUBTARGET
:=filogic
359 define Trusted-Firmware-A
/mt7986-spim-nand-ddr3
360 NAME
:=MediaTek MT7986
(SPI-NAND via SPIM
, DDR3
)
361 BOOT_DEVICE
:=spim-nand
362 BUILD_SUBTARGET
:=filogic
367 define Trusted-Firmware-A
/mt7986-spim-nand-ubi-ddr3
368 NAME
:=MediaTek MT7986
(SPI-NAND via SPIM using UBI
, DDR3
)
369 BOOT_DEVICE
:=spim-nand
370 BUILD_SUBTARGET
:=filogic
376 define Trusted-Firmware-A
/mt7988-nor-ddr3
377 NAME
:=MediaTek MT7988
(SPI-NOR
, DDR3
)
379 BUILD_SUBTARGET
:=filogic
384 define Trusted-Firmware-A
/mt7988-emmc-ddr3
385 NAME
:=MediaTek MT7988
(eMMC
, DDR3
)
387 BUILD_SUBTARGET
:=filogic
392 define Trusted-Firmware-A
/mt7988-sdmmc-ddr3
393 NAME
:=MediaTek MT7988
(SD card
, DDR3
)
395 BUILD_SUBTARGET
:=filogic
400 define Trusted-Firmware-A
/mt7988-snand-ddr3
401 NAME
:=MediaTek MT7988
(SPI-NAND via SNFI
, DDR3
)
403 BUILD_SUBTARGET
:=filogic
408 define Trusted-Firmware-A
/mt7988-spim-nand-ddr3
409 NAME
:=MediaTek MT7988
(SPI-NAND via SPIM
, DDR3
)
410 BOOT_DEVICE
:=spim-nand
411 BUILD_SUBTARGET
:=filogic
416 define Trusted-Firmware-A
/mt7988-nor-ddr4
417 NAME
:=MediaTek MT7988
(SPI-NOR
, DDR4
)
419 BUILD_SUBTARGET
:=filogic
424 define Trusted-Firmware-A
/mt7988-emmc-ddr4
425 NAME
:=MediaTek MT7988
(eMMC
, DDR4
)
427 BUILD_SUBTARGET
:=filogic
432 define Trusted-Firmware-A
/mt7988-sdmmc-ddr4
433 NAME
:=MediaTek MT7988
(SD card
, DDR4
)
435 BUILD_SUBTARGET
:=filogic
440 define Trusted-Firmware-A
/mt7988-snand-ddr4
441 NAME
:=MediaTek MT7988
(SPI-NAND via SNFI
, DDR4
)
443 BUILD_SUBTARGET
:=filogic
448 define Trusted-Firmware-A
/mt7988-spim-nand-ddr4
449 NAME
:=MediaTek MT7988
(SPI-NAND via SPIM
, DDR4
)
450 BOOT_DEVICE
:=spim-nand
451 BUILD_SUBTARGET
:=filogic
456 define Trusted-Firmware-A
/mt7988-ram-comb
457 NAME
:=MediaTek MT7988
(RAM
)
459 BUILD_SUBTARGET
:=filogic
464 DEFAULT
:=TARGET_mediatek_filogic
467 define Trusted-Firmware-A
/mt7988-ram-ddr4
468 NAME
:=MediaTek MT7988
(RAM
/ddr4
)
470 BUILD_SUBTARGET
:=filogic
474 DEFAULT
:=TARGET_mediatek_filogic
478 define Trusted-Firmware-A
/mt7988-nor-comb
479 NAME
:=MediaTek MT7988
(SPI-NOR
)
481 BUILD_SUBTARGET
:=filogic
486 define Trusted-Firmware-A
/mt7988-emmc-comb
487 NAME
:=MediaTek MT7988
(eMMC
)
489 BUILD_SUBTARGET
:=filogic
494 define Trusted-Firmware-A
/mt7988-sdmmc-comb
495 NAME
:=MediaTek MT7988
(SD card
)
497 BUILD_SUBTARGET
:=filogic
502 define Trusted-Firmware-A
/mt7988-snand-comb
503 NAME
:=MediaTek MT7988
(SPI-NAND via SNFI
)
505 BUILD_SUBTARGET
:=filogic
510 define Trusted-Firmware-A
/mt7988-snand-ubi-comb
511 NAME
:=MediaTek MT7988
(SPI-NAND via SNFI
, UBI
)
513 BUILD_SUBTARGET
:=filogic
519 define Trusted-Firmware-A
/mt7988-spim-nand-comb
520 NAME
:=MediaTek MT7988
(SPI-NAND via SPIM
)
521 BOOT_DEVICE
:=spim-nand
522 BUILD_SUBTARGET
:=filogic
527 define Trusted-Firmware-A
/mt7988-spim-nand-ubi-comb
528 NAME
:=MediaTek MT7988
(SPI-NAND via SPIM
, UBI
)
529 BOOT_DEVICE
:=spim-nand
530 BUILD_SUBTARGET
:=filogic
536 define Trusted-Firmware-A
/mt7988-spim-nand-ubi-ddr4
537 NAME
:=MediaTek MT7988
(SPI-NAND via SPIM
, DDR4
)
538 BOOT_DEVICE
:=spim-nand
539 BUILD_SUBTARGET
:=filogic
551 mt7622-snand-ubi-1ddr \
553 mt7622-snand-ubi-2ddr \
564 mt7981-spim-nand-ddr3 \
565 mt7981-spim-nand-ubi-ddr4 \
568 mt7981-spim-nand-ddr4 \
569 mt7981-cudy-tr3000-v1 \
575 mt7986-spim-nand-ddr3 \
576 mt7986-spim-nand-ubi-ddr3 \
582 mt7986-spim-nand-ddr4 \
583 mt7986-spim-nand-ubi-ddr4 \
584 mt7986-spim-nand-4k-ddr4 \
589 mt7988-spim-nand-ddr3 \
594 mt7988-spim-nand-ddr4 \
601 mt7988-snand-ubi-comb \
602 mt7988-spim-nand-comb \
603 mt7988-spim-nand-ubi-comb \
604 mt7988-spim-nand-ubi-ddr4
607 BOOT_DEVICE
=$(BOOT_DEVICE
) \
608 USE_MKIMAGE
=1 MKIMAGE
=$(STAGING_DIR_HOST
)/bin
/mkimage \
609 $(if
$(findstring ddr4
,$(DDR_TYPE
)),DRAM_USE_DDR4
=1) \
610 $(if
$(BOARD_QFN
),BOARD_QFN
=1,BOARD_BGA
=1) \
611 $(if
$(NAND_TYPE
),NAND_TYPE
=$(NAND_TYPE
)) \
612 HAVE_DRAM_OBJ_FILE
=yes \
613 $(if
$(DDR3_FLYBY
),DDR3_FLYBY
=1) \
614 $(if
$(DRAM_USE_COMB
),DRAM_USE_COMB
=1) \
615 $(if
$(RAM_BOOT_UART_DL
),RAM_BOOT_UART_DL
=1) \
616 $(if
$(USE_UBI
),UBI
=1 $(if
$(findstring mt7622
,$(PLAT
)),OVERRIDE_UBI_START_ADDR
=0x80000)) \
617 $(if
$(USE_UBI
),UBI
=1 $(if
$(findstring mt7981
,$(PLAT
)),OVERRIDE_UBI_START_ADDR
=0x100000)) \
618 $(if
$(USE_UBI
),UBI
=1 $(if
$(findstring mt7986
,$(PLAT
)),OVERRIDE_UBI_START_ADDR
=0x200000)) \
619 $(if
$(FIP_OFFSET
),OVERRIDE_FIP_BASE
=$(FIP_OFFSET
)) \
620 $(if
$(FIP_SIZE
),OVERRIDE_FIP_SIZE
=$(FIP_SIZE
)) \
621 $(if
$(RAM_BOOT_UART_DL
),bl2
,all)
623 define Package
/trusted-firmware-a-ram
/install
624 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)
625 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/build
/$(PLAT
)/release
/bl2.bin
$(BIN_DIR
)/$(BUILD_VARIANT
)-bl2.bin
627 Package
/trusted-firmware-a-mt7622-ram-1ddr
/install = $(Package
/trusted-firmware-a-ram
/install)
628 Package
/trusted-firmware-a-mt7622-ram-2ddr
/install = $(Package
/trusted-firmware-a-ram
/install)
629 Package
/trusted-firmware-a-mt7981-ram-ddr3
/install = $(Package
/trusted-firmware-a-ram
/install)
630 Package
/trusted-firmware-a-mt7981-ram-ddr4
/install = $(Package
/trusted-firmware-a-ram
/install)
631 Package
/trusted-firmware-a-mt7986-ram-ddr3
/install = $(Package
/trusted-firmware-a-ram
/install)
632 Package
/trusted-firmware-a-mt7986-ram-ddr4
/install = $(Package
/trusted-firmware-a-ram
/install)
633 Package
/trusted-firmware-a-mt7988-ram-comb
/install = $(Package
/trusted-firmware-a-ram
/install)
634 Package
/trusted-firmware-a-mt7988-ram-ddr4
/install = $(Package
/trusted-firmware-a-ram
/install)
636 define Package
/trusted-firmware-a
/install
637 $(INSTALL_DIR
) $(STAGING_DIR_IMAGE
)
638 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/build
/$(PLAT
)/release
/bl2.img
$(STAGING_DIR_IMAGE
)/$(BUILD_VARIANT
)-bl2.img
639 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/build
/$(PLAT
)/release
/bl31.bin
$(STAGING_DIR_IMAGE
)/$(BUILD_VARIANT
)-bl31.bin
642 $(eval
$(call BuildPackage
/Trusted-Firmware-A
))