Skip to content

Commit 6b998c6

Browse files
DragonBluepdangowrt
authored andcommitted
arm-trusted-firmware-mediatek: update to v2026-01-23
The highlight of this version is that the bl2 size will be reduced by 60+ KB. The MT7987 SPI interface selection hack was replaced by upstream implementation with the new symbol SPIM_NAND_PREFER_SPI2. Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
1 parent ca0d26a commit 6b998c6

3 files changed

Lines changed: 15 additions & 101 deletions

File tree

package/boot/arm-trusted-firmware-mediatek/Makefile

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ PKG_RELEASE:=1
1313

1414
PKG_SOURCE_PROTO:=git
1515
PKG_SOURCE_URL=https://github.com/mtk-openwrt/arm-trusted-firmware.git
16-
PKG_SOURCE_DATE:=2025-07-11
17-
PKG_SOURCE_VERSION:=78a0dfd927bb00ce973a1f8eb4079df0f755887a
18-
PKG_MIRROR_HASH:=72a5f3f00f9e368226bb779dc098aac6195a312b48cc22172987d494ccd135d1
16+
PKG_SOURCE_DATE:=2026-01-23
17+
PKG_SOURCE_VERSION:=e06f258664198a901ff1c7c0c87802a115179451
18+
PKG_MIRROR_HASH:=e094f5c2838f366e9b2d87e85e0c324ac3b955dd02a493adced843031cf6b517
1919

2020
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
2121

@@ -36,10 +36,10 @@ define Trusted-Firmware-A/Default
3636
BOARD_QFN:=
3737
DRAM_USE_COMB:=
3838
RAM_BOOT_UART_DL:=
39+
USE_SPI2:=
3940
USE_UBI:=
4041
FIP_OFFSET:=
4142
FIP_SIZE:=
42-
SPIM_CTRL:=
4343
endef
4444

4545
define Trusted-Firmware-A/mt7622-nor-1ddr
@@ -464,7 +464,6 @@ define Trusted-Firmware-A/mt7987-spim-nand0
464464
BOOT_DEVICE:=spim-nand
465465
BUILD_SUBTARGET:=filogic
466466
PLAT:=mt7987
467-
SPIM_CTRL:=0
468467
endef
469468

470469
define Trusted-Firmware-A/mt7987-spim-nand0-ubi-comb
@@ -473,16 +472,15 @@ define Trusted-Firmware-A/mt7987-spim-nand0-ubi-comb
473472
BUILD_SUBTARGET:=filogic
474473
PLAT:=mt7987
475474
USE_UBI:=1
476-
SPIM_CTRL:=0
477475
endef
478476

479477
define Trusted-Firmware-A/mt7987-spim-nand2-ubi-comb
480478
NAME:=MediaTek MT7987 (SPI-NAND via SPIM, UBI)
481479
BOOT_DEVICE:=spim-nand
482480
BUILD_SUBTARGET:=filogic
483481
PLAT:=mt7987
482+
USE_SPI2:=1
484483
USE_UBI:=1
485-
SPIM_CTRL:=2
486484
endef
487485

488486
define Trusted-Firmware-A/mt7987-ram-comb
@@ -787,7 +785,7 @@ TFA_MAKE_FLAGS += \
787785
$(if $(USE_UBI),UBI=1 $(if $(findstring mt7986,$(PLAT)),OVERRIDE_UBI_START_ADDR=0x200000)) \
788786
$(if $(FIP_OFFSET),OVERRIDE_FIP_BASE=$(FIP_OFFSET)) \
789787
$(if $(FIP_SIZE),OVERRIDE_FIP_SIZE=$(FIP_SIZE)) \
790-
$(if $(SPIM_CTRL),SPIM_CTRL=$(SPIM_CTRL)) \
788+
$(if $(USE_SPI2),SPIM_NAND_PREFER_SPI2=1) \
791789
$(if $(RAM_BOOT_UART_DL),bl2,all)
792790

793791
define Package/trusted-firmware-a-ram/install

package/boot/arm-trusted-firmware-mediatek/patches/0005-mt7987-make-SPI-controller-configurable.patch

Lines changed: 7 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -16,113 +16,29 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
1616
5 files changed, 53 insertions(+), 3 deletions(-)
1717
create mode 100644 plat/mediatek/mt7987/Config.in
1818

19-
--- a/plat/mediatek/apsoc_common/Config.in
20-
+++ b/plat/mediatek/apsoc_common/Config.in
21-
@@ -783,6 +783,7 @@ config ENABLE_BL31_RUNTIME_LOG
22-
default 1
23-
depends on _ENABLE_BL31_RUNTIME_LOG
24-
25-
+source "plat/mediatek/mt7987/Config.in"
26-
source "plat/mediatek/mt7988/Config.in"
27-
28-
endmenu # Platform configurations
29-
--- /dev/null
30-
+++ b/plat/mediatek/mt7987/Config.in
31-
@@ -0,0 +1,29 @@
32-
+# SPDX-License-Identifier: BSD-3-Clause
33-
+#
34-
+# Copyright (c) 2025 Daniel Golle <daniel@makrotopia.org>
35-
+#
36-
+# MT7987 platform-specific configurations
37-
+#
38-
+
39-
+if _PLAT_MT7987
40-
+
41-
+choice
42-
+ prompt "SPI controller"
43-
+ depends on (_BOOT_DEVICE_SPIM_NAND || _BOOT_DEVICE_SPI_NOR)
44-
+ default _SPIM_CTRL_0 if _BOOT_DEVICE_SPIM_NAND
45-
+ default _SPIM_CTRL_2 if _BOOT_DEVICE_SPI_NOR
46-
+
47-
+ config _SPIM_CTRL_0
48-
+ bool "0"
49-
+
50-
+ config _SPIM_CTRL_2
51-
+ bool "2"
52-
+
53-
+endchoice
54-
+
55-
+config SPIM_CTRL
56-
+ int
57-
+ default 0 if _SPIM_CTRL_0
58-
+ default 2 if _SPIM_CTRL_2
59-
+
60-
+endif # _PLAT_MT7987
6119
--- a/plat/mediatek/mt7987/bl2/bl2.mk
6220
+++ b/plat/mediatek/mt7987/bl2/bl2.mk
6321
@@ -91,7 +91,11 @@ endif # END OF BOOT_DEVICE = ram
6422
ifeq ($(BOOT_DEVICE),nor)
6523
$(eval $(call BL2_BOOT_NOR))
6624
BL2_SOURCES += $(MTK_PLAT_SOC)/bl2/bl2_dev_spi_nor.c
67-
+ifeq ($(SPIM_CTRL),0)
68-
+DTS_NAME := mt7987-spi0
69-
+else
25+
+ifeq ($(SPIM_NAND_PREFER_SPI2),1)
7026
DTS_NAME := mt7987-spi2
27+
+else
28+
+DTS_NAME := mt7987-spi0
7129
+endif
7230
endif # END OF BOOTDEVICE = nor
7331

7432
ifeq ($(BOOT_DEVICE),emmc)
75-
@@ -112,10 +116,18 @@ ifeq ($(BOOT_DEVICE),spim-nand)
76-
$(eval $(call BL2_BOOT_SPI_NAND,0,0))
77-
BL2_SOURCES += $(MTK_PLAT_SOC)/bl2/bl2_dev_spi_nand.c
33+
@@ -118,7 +122,11 @@ ifeq ($(SPIM_NAND_NO_RETRY),1)
34+
BL2_CPPFLAGS += -DSPIM_NAND_NO_RETRY
35+
endif # END OF SPIM_NAND_NO_RETRY
7836
NAND_TYPE ?= spim:2k+64
79-
+ifeq ($(SPIM_CTRL),2)
37+
+ifeq ($(SPIM_NAND_PREFER_SPI2),1)
8038
+DTS_NAME := mt7987-spi2
8139
+else
8240
DTS_NAME := mt7987-spi0
8341
+endif
8442
$(eval $(call BL2_BOOT_NAND_TYPE_CHECK,$(NAND_TYPE),spim:2k+64 spim:2k+128 spim:4k+256))
8543
endif # END OF BOOTDEVICE = spim-nand
8644

87-
+ifneq ($(SPIM_CTRL),)
88-
+BL2_CPPFLAGS += -DSPIM_CTRL=$(SPIM_CTRL)
89-
+endif
90-
+
91-
ifeq ($(BROM_HEADER_TYPE),)
92-
$(error BOOT_DEVICE has invalid value. Please re-check.)
93-
endif
94-
--- a/plat/mediatek/mt7987/bl2/bl2_dev_spi_nand.c
95-
+++ b/plat/mediatek/mt7987/bl2/bl2_dev_spi_nand.c
96-
@@ -12,10 +12,18 @@
97-
98-
#define MTK_QSPI_SRC_CLK CB_MPLL_D2
99-
100-
+#if SPIM_CTRL == 0
101-
+#define SELECTED_SPIM SPIM0
102-
+#elif SPIM_CTRL == 2
103-
+#define SELECTED_SPIM SPIM2
104-
+#else
105-
+#error "Invalid SPI controller selection"
106-
+#endif
107-
+
108-
uint32_t mtk_plat_get_qspi_src_clk(void)
109-
{
110-
/* config GPIO pinmux to spi mode */
111-
- mtk_spi_gpio_init(SPIM0);
112-
+ mtk_spi_gpio_init(SELECTED_SPIM);
113-
114-
/* select 208M clk */
115-
mtk_spi_source_clock_select(MTK_QSPI_SRC_CLK);
116-
--- a/plat/mediatek/mt7987/platform.mk
117-
+++ b/plat/mediatek/mt7987/platform.mk
118-
@@ -56,8 +56,8 @@ include make_helpers/dep.mk
119-
120-
$(call GEN_DEP_RULES,bl2,emicfg bl2_boot_ram bl2_boot_nand_nmbm bl2_dev_mmc bl2_plat_init bl2_plat_setup mt7987_gpio dtb)
121-
$(call MAKE_DEP,bl2,emicfg,DDR4_4BG_MODE DRAM_DEBUG_LOG DDR3_FREQ_2133 DDR3_FREQ_1866 DDR4_FREQ_3200 DDR4_FREQ_2666)
122-
-$(call MAKE_DEP,bl2,bl2_plat_init,BL2_COMPRESS)
123-
-$(call MAKE_DEP,bl2,bl2_plat_setup,BOOT_DEVICE TRUSTED_BOARD_BOOT BL32_TZRAM_BASE BL32_TZRAM_SIZE BL32_LOAD_OFFSET)
124-
+$(call MAKE_DEP,bl2,bl2_plat_init,BL2_COMPRESS SPIM_CTRL)
125-
+$(call MAKE_DEP,bl2,bl2_plat_setup,BOOT_DEVICE TRUSTED_BOARD_BOOT BL32_TZRAM_BASE BL32_TZRAM_SIZE BL32_LOAD_OFFSET SPIM_CTRL)
126-
$(call MAKE_DEP,bl2,bl2_dev_mmc,BOOT_DEVICE)
127-
$(call MAKE_DEP,bl2,bl2_boot_ram,RAM_BOOT_DEBUGGER_HOOK RAM_BOOT_UART_DL)
128-
$(call MAKE_DEP,bl2,bl2_boot_nand_nmbm,NMBM_MAX_RATIO NMBM_MAX_RESERVED_BLOCKS NMBM_DEFAULT_LOG_LEVEL)

package/boot/arm-trusted-firmware-mediatek/patches/0007-hack-mt7987-bl2-move-FIP-offset-to-0x100000.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
1616

1717
--- a/plat/mediatek/mt7987/bl2/bl2_dev_spi_nor.c
1818
+++ b/plat/mediatek/mt7987/bl2/bl2_dev_spi_nor.c
19-
@@ -7,7 +7,7 @@
20-
#include <stdint.h>
19+
@@ -8,7 +8,7 @@
2120
#include <boot_spi.h>
21+
#include <mtk_spi.h>
2222

2323
-#define FIP_BASE 0x250000
2424
+#define FIP_BASE 0x100000

0 commit comments

Comments
 (0)