* [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support
@ 2026-07-30 14:18 Carlo Caione
2026-07-30 14:18 ` [PATCH v3 1/6] arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL Carlo Caione
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
The Genio 510 and Genio 700 boot chains use a platform DDR loader built
separately from U-Boot to initialize DRAM before entering U-Boot SPL. Add
the shared SPL devicetree and configuration needed to initialize the debug
UART, watchdog, pinctrl and eMMC, then load a conventional FIT from the
bootloaders GPT partition.
Add an opt-in binman description that generates the images consumed by
the MediaTek flashing flow:
mtk-boot.bin
MediaTek BootROM wrapper containing the platform DDR loader and SPL
mtk-boot-payload.bin
Raw DDR-loader and SPL payload for external MediaTek signing tools
bootloaders.img
FIT containing BL31, OP-TEE, U-Boot proper, and its control DT
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
Changes in v3:
- Add Genio 510 support using the shared MT8188-family SPL configuration,
pre-RAM devicetree annotations and binman layout.
- Make complete image packaging opt-in through CONFIG_MTK_BOOT_IMAGES.
- Keep the binman image description in a separate optional include.
- Leave SPL binman symbols disabled by default on MT8188.
- Add optional RSA-3072 signing for the bootloader FIT.
- Emit the raw BootROM payload required by external MediaTek signing tools.
- Document component-only, unsigned, and signed build procedures.
- Link to v2: https://patch.msgid.link/20260722-ccaione-upstream-mt8390-spl-v2-0-7aa005345711@baylibre.com
Changes in v2:
- Clarify that the platform DDR loader is built separately from U-Boot.
- Fix the SPL copy-window wording in patch 2.
- Keep the SPL annotations board-scoped and drop the unused pericfg_ao tag.
- Normalize the firmware-stage names in the board documentation.
- Simplify the documented build commands.
- Remove the redundant MediaTek documentation maintainer pattern.
- Add links to Genio Tools and prebuilt images.
- Link to v1: https://patch.msgid.link/20260718-ccaione-upstream-mt8390-spl-v1-0-1256b6dfda3f@baylibre.com
---
Carlo Caione (6):
arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL
configs: mt8188: enable eMMC FIT boot from SPL
arm: mediatek: build Genio 510 and 700 boot images with binman
arm: dts: mediatek: support signed Genio 510 and 700 bootloader FIT
arm: dts: mediatek: emit the Genio 510 and 700 BootROM payload
doc: board: mediatek: document Genio 510 and 700 SPL boot
arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi | 9 +-
arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi | 9 +-
arch/arm/dts/mt8390-genio-common-binman.dtsi | 155 +++++++++++++++
arch/arm/dts/mt8390-genio-common-u-boot.dtsi | 94 ++++++++++
arch/arm/mach-mediatek/Kconfig | 8 +
board/mediatek/MAINTAINERS | 3 +
common/spl/Kconfig | 1 +
configs/mt8188.config | 27 +++
doc/board/mediatek/index.rst | 1 +
doc/board/mediatek/mt8188-genio-evk.rst | 260 ++++++++++++++++++++++++++
10 files changed, 565 insertions(+), 2 deletions(-)
---
base-commit: bf75f80082a194a95eb2aef039a746c5765ba8d1
change-id: 20260717-ccaione-upstream-mt8390-spl-7f64ca12dfbd
Best regards,
--
Carlo Caione <ccaione@baylibre.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/6] arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-07-30 14:18 ` [PATCH v3 2/6] configs: mt8188: enable eMMC FIT boot from SPL Carlo Caione
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
The Genio 510 and Genio 700 boot flows enter U-Boot SPL after an
external DDR loader has initialized DRAM. SPL then needs the debug UART
and eMMC controller, together with their clock, syscon, pinctrl and
watchdog providers, to load the firmware FIT.
Both boards share this MT8188-family dependency chain, so keep the
pre-RAM annotations in a common include used by their board-specific
U-Boot devicetrees.
Signed-off-by: Julien Masson <jmasson@baylibre.com>
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi | 2 +-
arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi | 2 +-
arch/arm/dts/mt8390-genio-common-u-boot.dtsi | 94 +++++++++++++++++++++++++++
board/mediatek/MAINTAINERS | 1 +
4 files changed, 97 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi b/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
index 586d15bf72e..1a5f45cba6b 100644
--- a/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
+++ b/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
@@ -4,4 +4,4 @@
* Author: Julien Stephan <jstephan@baylibre.com>
*/
-#include "mt8188-u-boot.dtsi"
+#include "mt8390-genio-common-u-boot.dtsi"
diff --git a/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi b/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
index 586d15bf72e..1a5f45cba6b 100644
--- a/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
+++ b/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
@@ -4,4 +4,4 @@
* Author: Julien Stephan <jstephan@baylibre.com>
*/
-#include "mt8188-u-boot.dtsi"
+#include "mt8390-genio-common-u-boot.dtsi"
diff --git a/arch/arm/dts/mt8390-genio-common-u-boot.dtsi b/arch/arm/dts/mt8390-genio-common-u-boot.dtsi
new file mode 100644
index 00000000000..87ebc64e6f6
--- /dev/null
+++ b/arch/arm/dts/mt8390-genio-common-u-boot.dtsi
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 BayLibre, SAS.
+ * Author: Julien Stephan <jstephan@baylibre.com>
+ * Author: Carlo Caione <ccaione@baylibre.com>
+ */
+
+#include "mt8188-u-boot.dtsi"
+
+&clk26m {
+ bootph-pre-ram;
+};
+
+&gic {
+ bootph-pre-ram;
+};
+
+&topckgen {
+ bootph-pre-ram;
+};
+
+&infracfg_ao {
+ bootph-pre-ram;
+};
+
+&pio {
+ bootph-pre-ram;
+};
+
+&watchdog {
+ bootph-pre-ram;
+};
+
+&apmixedsys {
+ bootph-pre-ram;
+};
+
+&uart0 {
+ bootph-pre-ram;
+};
+
+&mmc0 {
+ bootph-pre-ram;
+};
+
+/ {
+ memory@40000000 {
+ bootph-pre-ram;
+ };
+};
+
+&mmc0_default_pins {
+ bootph-pre-ram;
+
+ pins-clk {
+ bootph-pre-ram;
+ };
+
+ pins-cmd-dat {
+ bootph-pre-ram;
+ };
+
+ pins-rst {
+ bootph-pre-ram;
+ };
+};
+
+&mmc0_uhs_pins {
+ bootph-pre-ram;
+
+ pins-clk {
+ bootph-pre-ram;
+ };
+
+ pins-cmd-dat {
+ bootph-pre-ram;
+ };
+
+ pins-ds {
+ bootph-pre-ram;
+ };
+
+ pins-rst {
+ bootph-pre-ram;
+ };
+};
+
+&uart0_pins {
+ bootph-pre-ram;
+
+ pins {
+ bootph-pre-ram;
+ };
+};
diff --git a/board/mediatek/MAINTAINERS b/board/mediatek/MAINTAINERS
index d99c6d708b2..d0d25b096e5 100644
--- a/board/mediatek/MAINTAINERS
+++ b/board/mediatek/MAINTAINERS
@@ -22,6 +22,7 @@ M: Macpaul Lin <Macpaul.Lin@mediatek.com>
M: Julien Stephan <jstephan@baylibre.com>
S: Maintained
F: arch/arm/dts/mt8188-u-boot.dtsi
+F: arch/arm/dts/mt8390-genio-common-u-boot.dtsi
F: arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
F: arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
F: configs/mt8188.config
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/6] configs: mt8188: enable eMMC FIT boot from SPL
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
2026-07-30 14:18 ` [PATCH v3 1/6] arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-07-30 14:18 ` [PATCH v3 3/6] arm: mediatek: build Genio 510 and 700 boot images with binman Carlo Caione
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
Enable the Genio 510 and Genio 700 SPL path entered by the external DDR
loader at 0x40000000. Bind the raw SPL to the loader's 0xaf000-byte copy
window, place BSS separately in DRAM, and retain the non-overlapping SPL
malloc region.
Use generic SPL MMC, GPT, FIT, and Arm Trusted Firmware support to load
the firmware FIT from eMMC partition 1. Keep U-Boot proper at the shared
MT8188 CONFIG_TEXT_BASE of 0x4c000000.
The MediaTek BL31 used on these boards stalls when passed the runtime
devicetree as its platform parameter. Enable SPL_ATF_NO_PLATFORM_PARAM
so SPL can still use the tree to locate OP-TEE and U-Boot while passing
NULL as the separate BL31 platform parameter.
Signed-off-by: Vitor Sato Eschholz <vsatoes@baylibre.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
configs/mt8188.config | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/configs/mt8188.config b/configs/mt8188.config
index 29e2b3db878..a84e617e30f 100644
--- a/configs/mt8188.config
+++ b/configs/mt8188.config
@@ -28,3 +28,30 @@ CONFIG_MTK_SERIAL=y
CONFIG_WDT=y
CONFIG_WDT_MTK=y
# CONFIG_RANDOM_UUID is not set
+CONFIG_SPL=y
+CONFIG_SPL_TEXT_BASE=0x40000000
+CONFIG_SPL_MAX_SIZE=0xaf000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x400bb800
+CONFIG_SPL_BSS_LIMIT=y
+CONFIG_SPL_BSS_MAX_SIZE=0x100000
+CONFIG_SPL_SYS_MALLOC=y
+CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
+CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR=0x5c000000
+CONFIG_SPL_SYS_MALLOC_SIZE=0x9000000
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+CONFIG_SPL_SERIAL=y
+# CONFIG_SPL_USE_TINY_PRINTF is not set
+CONFIG_SPL_PINCTRL=y
+CONFIG_SPL_PINCONF=y
+CONFIG_SPL_WATCHDOG=y
+CONFIG_SPL_MMC=y
+CONFIG_SPL_LIBDISK_SUPPORT=y
+CONFIG_SPL_EFI_PARTITION=y
+CONFIG_SPL_SYS_MMCSD_RAW_MODE=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=1
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_ATF=y
+CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/6] arm: mediatek: build Genio 510 and 700 boot images with binman
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
2026-07-30 14:18 ` [PATCH v3 1/6] arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL Carlo Caione
2026-07-30 14:18 ` [PATCH v3 2/6] configs: mt8188: enable eMMC FIT boot from SPL Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-07-30 14:18 ` [PATCH v3 4/6] arm: dts: mediatek: support signed Genio 510 and 700 bootloader FIT Carlo Caione
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
The complete Genio 510 and Genio 700 boot-chain images depend on
platform firmware built outside U-Boot. Keep image assembly opt-in
through CONFIG_MTK_BOOT_IMAGES so the default configurations build
U-Boot proper and SPL without requiring external blobs, while
integration builds can enable the canonical binman image layout.
mtk-boot.bin wraps an external DDR loader, padded to its fixed
0x4b000-byte ABI, followed by a CONFIG_SPL_MAX_SIZE U-Boot SPL region
in a MediaTek eMMC BootROM image. The external loader copies that
complete fixed-size SPL window, so pad the region to keep every source
byte inside the BootROM-loaded payload.
bootloaders.img is a conventional FIT containing BL31, U-Boot proper,
OP-TEE, and the U-Boot control devicetree. Both boards share this layout,
with their descriptions supplied by the board-specific U-Boot
devicetree includes.
Use the standard BL31 and TEE binman inputs and obtain ddr-loader.bin
through BINMAN_INDIRS. Disable SPL binman symbols by default on MT8188
because SPL does not consume runtime offsets for entries in mtk-boot.bin
and U-Boot proper lives in a separate storage image. SPL locates U-Boot
through the GPT FIT partition, so there are no in-image U-Boot offsets
to publish.
Signed-off-by: Vitor Sato Eschholz <vsatoes@baylibre.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi | 7 ++
arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi | 7 ++
arch/arm/dts/mt8390-genio-common-binman.dtsi | 127 ++++++++++++++++++++++++++
arch/arm/mach-mediatek/Kconfig | 8 ++
board/mediatek/MAINTAINERS | 1 +
common/spl/Kconfig | 1 +
6 files changed, 151 insertions(+)
diff --git a/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi b/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
index 1a5f45cba6b..fa03e6ac05e 100644
--- a/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
+++ b/arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
@@ -4,4 +4,11 @@
* Author: Julien Stephan <jstephan@baylibre.com>
*/
+#include <config.h>
#include "mt8390-genio-common-u-boot.dtsi"
+
+#ifdef CONFIG_MTK_BOOT_IMAGES
+#define MTK_BOOTLOADERS_DESCRIPTION "MediaTek Genio 510 bootloaders"
+#define MTK_BOOT_CHAIN_DESCRIPTION "Genio 510 boot chain"
+#include "mt8390-genio-common-binman.dtsi"
+#endif
diff --git a/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi b/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
index 1a5f45cba6b..f8e7e78a25f 100644
--- a/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
+++ b/arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
@@ -4,4 +4,11 @@
* Author: Julien Stephan <jstephan@baylibre.com>
*/
+#include <config.h>
#include "mt8390-genio-common-u-boot.dtsi"
+
+#ifdef CONFIG_MTK_BOOT_IMAGES
+#define MTK_BOOTLOADERS_DESCRIPTION "MediaTek Genio 700 bootloaders"
+#define MTK_BOOT_CHAIN_DESCRIPTION "Genio 700 boot chain"
+#include "mt8390-genio-common-binman.dtsi"
+#endif
diff --git a/arch/arm/dts/mt8390-genio-common-binman.dtsi b/arch/arm/dts/mt8390-genio-common-binman.dtsi
new file mode 100644
index 00000000000..c16282027c6
--- /dev/null
+++ b/arch/arm/dts/mt8390-genio-common-binman.dtsi
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 BayLibre, SAS.
+ * Author: Julien Stephan <jstephan@baylibre.com>
+ * Author: Carlo Caione <ccaione@baylibre.com>
+ */
+
+/ {
+ binman: binman {
+ multiple-images;
+ };
+};
+
+&binman {
+ mtk-boot {
+ filename = "mtk-boot.bin";
+
+ mkimage {
+ args = "-T", "mtk_image",
+ "-a", "0x201000",
+ "-e", "0x201000",
+ "-n", "media=emmc;arm64=1";
+
+ section {
+ pad-byte = <0>;
+
+ /* Must match SPL_OFFSET in the external DDR loader. */
+ ddr-loader {
+ type = "blob-ext";
+ filename = "ddr-loader.bin";
+ size = <0x4b000>;
+ };
+
+ u-boot-spl {
+ size = <CONFIG_SPL_MAX_SIZE>;
+ };
+ };
+ };
+ };
+
+ bootloaders {
+ filename = "bootloaders.img";
+
+ fit {
+ description = MTK_BOOTLOADERS_DESCRIPTION;
+ #address-cells = <1>;
+
+ images {
+ uboot {
+ description = "U-Boot";
+ type = "firmware";
+ os = "u-boot";
+ arch = "arm64";
+ compression = "none";
+ load = <CONFIG_TEXT_BASE>;
+ entry = <CONFIG_TEXT_BASE>;
+
+ u-boot-nodtb {
+ };
+
+ hash {
+ algo = "sha256";
+ };
+ };
+
+ atf {
+ description = "ARM Trusted Firmware BL31";
+ type = "firmware";
+ os = "arm-trusted-firmware";
+ arch = "arm64";
+ compression = "none";
+ load = <0x54601000>;
+ entry = <0x54601000>;
+
+ atf-bl31 {
+ };
+
+ hash {
+ algo = "sha256";
+ };
+ };
+
+ optee {
+ description = "OP-TEE";
+ type = "firmware";
+ os = "tee";
+ arch = "arm64";
+ compression = "none";
+ load = <0x431fffe4>;
+ entry = <0x43200000>;
+
+ tee-os {
+ };
+
+ hash {
+ algo = "sha256";
+ };
+ };
+
+ uboot-fdt {
+ description = "U-Boot control devicetree";
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+
+ u-boot-dtb {
+ };
+
+ hash {
+ algo = "sha256";
+ };
+ };
+ };
+
+ configurations {
+ default = "conf";
+
+ conf {
+ description = MTK_BOOT_CHAIN_DESCRIPTION;
+ firmware = "atf";
+ loadables = "uboot", "optee";
+ fdt = "uboot-fdt";
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
index 5e6c50ca64d..05ba7c209bc 100644
--- a/arch/arm/mach-mediatek/Kconfig
+++ b/arch/arm/mach-mediatek/Kconfig
@@ -210,6 +210,14 @@ config MTK_BROM_HEADER_INFO
default "media=emmc" if TARGET_MT8516 || TARGET_MT8365 || TARGET_MT8183 || TARGET_MT8188 || TARGET_MT8189 || TARGET_MT8195
default "lk=1" if TARGET_MT7623
+config MTK_BOOT_IMAGES
+ bool "Build MediaTek firmware images"
+ depends on TARGET_MT8188 && SPL
+ select BINMAN
+ help
+ Enable binman to assemble the MediaTek BootROM image and firmware
+ FIT from U-Boot and external platform firmware components.
+
config MTK_TZ_MOVABLE
select ARCH_MISC_INIT
select OF_SYSTEM_SETUP
diff --git a/board/mediatek/MAINTAINERS b/board/mediatek/MAINTAINERS
index d0d25b096e5..83662079068 100644
--- a/board/mediatek/MAINTAINERS
+++ b/board/mediatek/MAINTAINERS
@@ -24,6 +24,7 @@ S: Maintained
F: arch/arm/dts/mt8188-u-boot.dtsi
F: arch/arm/dts/mt8390-genio-common-u-boot.dtsi
F: arch/arm/dts/mt8370-genio-510-evk-u-boot.dtsi
+F: arch/arm/dts/mt8390-genio-common-binman.dtsi
F: arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
F: configs/mt8188.config
F: configs/mt8370_genio_510_evk_defconfig
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 0618f42c941..e5d0aade7fc 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -194,6 +194,7 @@ config SPL_SHOW_ERRORS
config SPL_BINMAN_SYMBOLS
bool "Declare binman symbols in SPL"
depends on SPL_FRAMEWORK && BINMAN
+ default n if TARGET_MT8188
default y
help
This enables use of symbols in SPL which refer to other entries in
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 4/6] arm: dts: mediatek: support signed Genio 510 and 700 bootloader FIT
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
` (2 preceding siblings ...)
2026-07-30 14:18 ` [PATCH v3 3/6] arm: mediatek: build Genio 510 and 700 boot images with binman Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-07-30 14:18 ` [PATCH v3 5/6] arm: dts: mediatek: emit the Genio 510 and 700 BootROM payload Carlo Caione
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
The unsigned bootloader FIT only provides hashes, so SPL cannot establish
a chain of trust before loading BL31, OP-TEE and U-Boot.
When SPL FIT signature verification is enabled, sign the complete
configuration and require its public key in the SPL control devicetree.
The configuration signature covers the firmware, all loadables and
U-Boot's control devicetree.
Use binman's u-boot-spl-pubkey-dtb entry to inject the key while
preserving the fixed SPL region expected by the external DDR loader.
Unsigned builds keep using the existing image layout.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
arch/arm/dts/mt8390-genio-common-binman.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm/dts/mt8390-genio-common-binman.dtsi b/arch/arm/dts/mt8390-genio-common-binman.dtsi
index c16282027c6..1fa5502c17e 100644
--- a/arch/arm/dts/mt8390-genio-common-binman.dtsi
+++ b/arch/arm/dts/mt8390-genio-common-binman.dtsi
@@ -31,9 +31,25 @@
size = <0x4b000>;
};
+#ifdef CONFIG_SPL_FIT_SIGNATURE
u-boot-spl {
+ type = "section";
size = <CONFIG_SPL_MAX_SIZE>;
+
+ u-boot-spl-nodtb {
+ };
+
+ u-boot-spl-pubkey-dtb {
+ algo = "sha256,rsa3072";
+ required = "conf";
+ key-name-hint = "bootloaders";
+ };
};
+#else
+ u-boot-spl {
+ size = <CONFIG_SPL_MAX_SIZE>;
+ };
+#endif
};
};
};
@@ -44,6 +60,9 @@
fit {
description = MTK_BOOTLOADERS_DESCRIPTION;
#address-cells = <1>;
+#ifdef CONFIG_SPL_FIT_SIGNATURE
+ fit,sign;
+#endif
images {
uboot {
@@ -120,6 +139,14 @@
firmware = "atf";
loadables = "uboot", "optee";
fdt = "uboot-fdt";
+#ifdef CONFIG_SPL_FIT_SIGNATURE
+
+ signature {
+ algo = "sha256,rsa3072";
+ key-name-hint = "bootloaders";
+ sign-images = "firmware", "loadables", "fdt";
+ };
+#endif
};
};
};
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 5/6] arm: dts: mediatek: emit the Genio 510 and 700 BootROM payload
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
` (3 preceding siblings ...)
2026-07-30 14:18 ` [PATCH v3 4/6] arm: dts: mediatek: support signed Genio 510 and 700 bootloader FIT Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-07-30 14:18 ` [PATCH v3 6/6] doc: board: mediatek: document Genio 510 and 700 SPL boot Carlo Caione
2026-08-13 8:03 ` [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
MediaTek secure-boot tooling signs the raw DDR-loader and SPL payload
before adding the BootROM headers. Signing mtk-boot.bin would instead
sign an image that already carries the unsigned headers.
Have binman emit the existing payload section as mtk-boot-payload.bin.
This keeps the fixed DDR-loader and SPL layout in one description and
does not change mtk-boot.bin.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
arch/arm/dts/mt8390-genio-common-binman.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/dts/mt8390-genio-common-binman.dtsi b/arch/arm/dts/mt8390-genio-common-binman.dtsi
index 1fa5502c17e..b9ff1214245 100644
--- a/arch/arm/dts/mt8390-genio-common-binman.dtsi
+++ b/arch/arm/dts/mt8390-genio-common-binman.dtsi
@@ -22,6 +22,7 @@
"-n", "media=emmc;arm64=1";
section {
+ filename = "mtk-boot-payload.bin";
pad-byte = <0>;
/* Must match SPL_OFFSET in the external DDR loader. */
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 6/6] doc: board: mediatek: document Genio 510 and 700 SPL boot
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
` (4 preceding siblings ...)
2026-07-30 14:18 ` [PATCH v3 5/6] arm: dts: mediatek: emit the Genio 510 and 700 BootROM payload Carlo Caione
@ 2026-07-30 14:18 ` Carlo Caione
2026-08-13 8:03 ` [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-07-30 14:18 UTC (permalink / raw)
To: GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Carlo Caione,
Vitor Sato Eschholz, Johan Jonker, Bastien Curutchet,
Neil Armstrong, Alexey Charkov, Julien Masson, Suhrid Subramaniam,
Arnaud Ferraris, Pablo Sun (孫毓翔)
Document the common Genio 510 and Genio 700 eMMC boot chain,
board-specific external firmware prerequisites, binman build invocation
and generated images.
Also describe FIT signing, storage mapping and installation with Genio
Tools.
Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
board/mediatek/MAINTAINERS | 1 +
doc/board/mediatek/index.rst | 1 +
doc/board/mediatek/mt8188-genio-evk.rst | 260 ++++++++++++++++++++++++++++++++
3 files changed, 262 insertions(+)
diff --git a/board/mediatek/MAINTAINERS b/board/mediatek/MAINTAINERS
index 83662079068..75b60d22a2a 100644
--- a/board/mediatek/MAINTAINERS
+++ b/board/mediatek/MAINTAINERS
@@ -29,6 +29,7 @@ F: arch/arm/dts/mt8390-genio-700-evk-u-boot.dtsi
F: configs/mt8188.config
F: configs/mt8370_genio_510_evk_defconfig
F: configs/mt8390_genio_700_evk_defconfig
+F: doc/board/mediatek/mt8188-genio-evk.rst
MT8195/MT8395
M: Macpaul Lin <Macpaul.Lin@mediatek.com>
diff --git a/doc/board/mediatek/index.rst b/doc/board/mediatek/index.rst
index c55d5aeb5c4..7ca1bd9fde2 100644
--- a/doc/board/mediatek/index.rst
+++ b/doc/board/mediatek/index.rst
@@ -7,3 +7,4 @@ Mediatek
:maxdepth: 2
mt7621
+ mt8188-genio-evk
diff --git a/doc/board/mediatek/mt8188-genio-evk.rst b/doc/board/mediatek/mt8188-genio-evk.rst
new file mode 100644
index 00000000000..17be9d11552
--- /dev/null
+++ b/doc/board/mediatek/mt8188-genio-evk.rst
@@ -0,0 +1,260 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. Copyright (C) 2026 Baylibre SAS
+
+MediaTek Genio 510 and Genio 700 EVKs
+======================================
+
+The Genio 510 and Genio 700 EVKs use the same MT8188-family boot flow:
+
+================ ====== ====================================
+Board SoC Defconfig
+================ ====== ====================================
+Genio 510 EVK MT8370 ``mt8370_genio_510_evk_defconfig``
+Genio 700 EVK MT8390 ``mt8390_genio_700_evk_defconfig``
+================ ====== ====================================
+
+The configurations share their SPL addresses, size limits, drivers and
+firmware-image layout. Each board retains its own control devicetree, DRAM
+size and external platform firmware.
+
+Boot chain
+----------
+
+The normal eMMC boot chain is::
+
+ BootROM
+ -> platform DDR loader
+ -> U-Boot SPL
+ -> Arm Trusted Firmware-A (BL31)
+ -> OP-TEE (BL32)
+ -> U-Boot proper (BL33)
+
+The BootROM loads a MediaTek image from the eMMC boot0 hardware partition.
+This image contains a platform DDR loader followed by U-Boot SPL. The DDR
+loader initializes DRAM, copies the fixed ``CONFIG_SPL_MAX_SIZE`` byte SPL
+region to ``CONFIG_SPL_TEXT_BASE`` and enters SPL at EL3 with exceptions
+masked.
+
+SPL reads a FIT image from partition 1 of the eMMC user area. The FIT contains
+Arm Trusted Firmware-A (BL31), OP-TEE (BL32), U-Boot proper (BL33) and the
+U-Boot control devicetree. SPL uses the standard FIT and Arm Trusted Firmware
+support to hand off to BL31.
+
+The DDR loader is a platform firmware component built separately from U-Boot
+and supplied to binman as an external blob.
+
+DDR-loader handoff contract
+---------------------------
+
+The DDR loader and U-Boot SPL have no parameter-block or firmware-call
+interface. Their contract consists of a fixed image layout, initialized DRAM
+and the execution state at the SPL entry point. The BootROM loads the eMMC
+boot0 payload at the DDR loader's ``BL2_BASE`` (``0x00201000``)::
+
+ offset 0x00000 +-------------------------------------------+
+ | DDR loader |
+ | padded to SPL_OFFSET: 0x4b000 bytes |
+ offset 0x4b000 +-------------------------------------------+
+ | U-Boot SPL |
+ | CONFIG_SPL_MAX_SIZE: 0xaf000 bytes |
+ offset 0xfa000 +-------------------------------------------+
+
+The DDR loader then performs the following handoff::
+
+ initialize and train DRAM
+
+ copy:
+ source = BL2_BASE + SPL_OFFSET
+ = 0x00201000 + 0x4b000
+ destination = SPL_ADDR
+ = CONFIG_SPL_TEXT_BASE (0x40000000)
+ size = SPL_SIZE
+ = CONFIG_SPL_MAX_SIZE (0xaf000)
+
+ enter:
+ PC = CONFIG_SPL_TEXT_BASE (0x40000000)
+ state = AArch64 EL3h
+ exceptions = masked
+ x0..x7 = 0
+
+The loader must copy the complete fixed-size SPL window, make the copied image
+coherent, leave the MMU and caches disabled and enter SPL with no live
+dependency on its own runtime state. SPL does not consume DRAM geometry, a
+devicetree or boot-source information from registers.
+
+SPL obtains platform information from its embedded control devicetree and
+initializes the console, clocks, pinctrl, watchdog and eMMC through U-Boot
+drivers. Its BSS starts at ``CONFIG_SPL_BSS_START_ADDR`` (``0x400bb800``),
+outside the copied SPL window, and is initialized by SPL itself.
+
+There is no runtime negotiation of these values. A replacement DDR loader is
+compatible only if it initializes the selected board's DRAM and follows the
+same image-layout and entry-state contract. In particular, its ``BL2_BASE``,
+``SPL_OFFSET``, ``SPL_SIZE`` and ``SPL_ADDR`` build values must match the
+corresponding binman layout and U-Boot configuration.
+
+Firmware image prerequisites
+----------------------------
+
+The following external binaries are required to assemble the complete
+firmware images:
+
+``ddr-loader.bin``
+ The MediaTek DDR loader built for the target board. Build it with
+ ``SPL_OFFSET=0x4b000``, ``SPL_SIZE`` equal to ``CONFIG_SPL_MAX_SIZE`` and an
+ SPL destination and entry address matching ``CONFIG_SPL_TEXT_BASE``. The
+ input may be shorter than ``0x4b000`` bytes; binman pads it with zeroes to
+ the offset reserved before SPL.
+
+``BL31``
+ The U-Boot build variable naming the Arm Trusted Firmware-A BL31 binary
+ built for the MT8188 platform. It is loaded and entered at ``0x54601000``.
+
+``TEE``
+ The U-Boot build variable naming the OP-TEE binary. A standard OP-TEE v1
+ ``tee.bin`` image is supported. The FIT loads it at ``0x431fffe4`` and
+ enters it at ``0x43200000``.
+
+These binaries must match the selected board, its memory layout and its
+firmware security policy. In particular, a common image layout does not make
+DDR-loader or OP-TEE binaries interchangeable between the two boards. Place
+``ddr-loader.bin`` in a directory which can be passed to binman with
+``BINMAN_INDIRS``.
+
+Building
+--------
+
+Select the defconfig for the target board. For example, for Genio 700::
+
+ $ export CROSS_COMPILE=aarch64-linux-gnu-
+ $ export KBUILD_OUTPUT=build
+ $ make mt8390_genio_700_evk_defconfig
+ $ make
+
+Use ``mt8370_genio_510_evk_defconfig`` instead for Genio 510.
+
+The default configuration builds U-Boot proper and SPL without requiring
+external firmware.
+
+This produces ``build/u-boot.bin`` and ``build/spl/u-boot-spl.bin`` without
+building ``mtk-boot.bin`` or ``bootloaders.img``. The DDR loader and BL31 are
+not needed in this case.
+
+Complete firmware images
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Enable ``CONFIG_MTK_BOOT_IMAGES`` to assemble the complete firmware images.
+For example, with the DDR loader in
+``/path/to/firmware/ddr-loader.bin``::
+
+ $ export BL31=/path/to/bl31.bin
+ $ export TEE=/path/to/tee.bin
+ $ make mt8390_genio_700_evk_defconfig
+ $ scripts/config --file "${KBUILD_OUTPUT}/.config" \
+ --enable MTK_BOOT_IMAGES
+ $ make olddefconfig
+ $ make BINMAN_INDIRS=/path/to/firmware
+
+``TEE`` must be set for both configuration and compilation. U-Boot uses its
+presence during configuration to enable the support needed to preserve the
+OP-TEE reserved-memory nodes in the devicetree passed to the operating system.
+Do not deploy images if binman reports that it used fake or missing external
+blobs.
+
+Binman produces two deployable images and one intermediate payload in the
+build directory:
+
+``mtk-boot.bin``
+ A MediaTek eMMC image with load and entry address ``0x201000``. It contains
+ the DDR loader, padded to ``0x4b000`` bytes, followed by U-Boot SPL padded
+ to ``CONFIG_SPL_MAX_SIZE``. The fixed regions make every byte copied by the
+ external loader part of the BootROM-loaded image.
+
+``mtk-boot-payload.bin``
+ The raw DDR-loader and SPL payload contained in ``mtk-boot.bin``, without
+ the MediaTek BootROM header. This is an intermediate input for external
+ MediaTek secure-boot tooling and must not be flashed directly.
+
+``bootloaders.img``
+ A FIT image containing BL31, U-Boot proper, OP-TEE and the U-Boot control
+ devicetree. Each component has a SHA-256 hash.
+
+Binman also creates ``mtk-boot.map`` and ``bootloaders.map``. These show the
+offset and size of every component. The FIT can be inspected with::
+
+ $ dumpimage -l build/bootloaders.img
+
+Signed bootloader FIT
+~~~~~~~~~~~~~~~~~~~~~
+
+The default ``bootloaders.img`` contains hashes but is not authenticated.
+Enable ``CONFIG_SPL_FIT_SIGNATURE`` and its RSA/SHA-256 dependencies to sign
+the FIT configuration and require verification by SPL. Binman expects an
+RSA-3072 private key and certificate named ``bootloaders.key`` and
+``bootloaders.crt`` in one of the directories passed through
+``BINMAN_INDIRS``.
+
+For example, after enabling ``CONFIG_MTK_BOOT_IMAGES`` as above::
+
+ $ scripts/config --file "${KBUILD_OUTPUT}/.config" \
+ --enable FIT_SIGNATURE \
+ --enable RSA \
+ --enable RSA_VERIFY \
+ --enable SHA256 \
+ --enable SPL_FIT_SIGNATURE \
+ --enable SPL_RSA \
+ --enable SPL_RSA_VERIFY \
+ --enable SPL_SHA256
+ $ make olddefconfig
+ $ make BINMAN_INDIRS=/path/to/firmware-and-keys
+
+The configuration signature covers BL31, U-Boot proper, OP-TEE and the U-Boot
+control devicetree. Binman injects the corresponding public key into the SPL
+control devicetree and marks it as required for FIT configurations.
+
+This signs the firmware FIT loaded by SPL, not the BootROM payload. To build a
+BootROM-authenticated image, pass ``mtk-boot-payload.bin`` to the platform
+secure-boot tooling and let that tooling create the final MediaTek wrapper.
+Key provisioning, rollback protection and BootROM authentication policy are
+outside U-Boot.
+
+Installing
+----------
+
+Use the board provisioning tools to place the images as follows:
+
+=================== ================================================
+Image Destination
+=================== ================================================
+``mtk-boot.bin`` Start of the eMMC boot0 hardware partition
+``bootloaders.img`` GPT partition 1 in the eMMC user area
+=================== ================================================
+
+The standard Genio 510 and Genio 700 partition layouts name GPT partition 1
+``bootloaders``. SPL selects the partition by number through
+``CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION``; it does not locate it by name.
+
+Writing an invalid image to eMMC boot0 can make the board unbootable. Preserve
+the platform recovery path and any backup bootloader partition while testing.
+Selection of a backup partition is not implemented by this SPL configuration.
+
+Using Genio Tools
+~~~~~~~~~~~~~~~~~
+
+Install `Genio Tools
+<https://genio.mediatek.com/doc/iot-yocto/latest/tools/genio-tools.html>`_ and
+obtain a `prebuilt Genio image
+<https://genio.mediatek.com/doc/iot-yocto/latest/sw/yocto/download.html>`_.
+The image must be compatible with the target board. ``genio-flash`` needs its
+extracted directory for partition metadata and the download bootstrap. To
+update only the primary boot chain while retaining the backup bootloader
+partition, run::
+
+ $ genio-flash -P /path/to/genio-image \
+ mmc0boot0:/absolute/path/to/build/mtk-boot.bin \
+ bootloaders:/absolute/path/to/build/bootloaders.img
+
+Genio Tools uses the default bootstrap from the image directory. Keep
+``bootloaders_b`` unchanged until the new images have been tested. Add
+``--dry-run`` to check the selected files and partitions without accessing the
+board.
--
2.55.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
` (5 preceding siblings ...)
2026-07-30 14:18 ` [PATCH v3 6/6] doc: board: mediatek: document Genio 510 and 700 SPL boot Carlo Caione
@ 2026-08-13 8:03 ` Carlo Caione
6 siblings, 0 replies; 8+ messages in thread
From: Carlo Caione @ 2026-08-13 8:03 UTC (permalink / raw)
To: Carlo Caione, GSS_MTK_Uboot_upstream, u-boot
Cc: Julien Masson, Quentin Schulz, Marek Vasut, Ryder Lee, Weijie Gao,
Chunfeng Yun, Igor Belwon, David Lechner, Julien Stephan,
Macpaul Lin, Tom Rini, Ilias Apalodimas, Vitor Sato Eschholz,
Johan Jonker, Bastien Curutchet, Neil Armstrong, Alexey Charkov,
Suhrid Subramaniam, Arnaud Ferraris,
Pablo Sun (孫毓翔)
On Thu Jul 30, 2026 at 4:18 PM CEST, Carlo Caione wrote:
> The Genio 510 and Genio 700 boot chains use a platform DDR loader built
> separately from U-Boot to initialize DRAM before entering U-Boot SPL. Add
> the shared SPL devicetree and configuration needed to initialize the debug
> UART, watchdog, pinctrl and eMMC, then load a conventional FIT from the
> bootloaders GPT partition.
Please do NOT review this, I'm going to submit V4 soon with several
fixes.
Thanks,
--
Carlo Caione
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-08-13 8:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-30 14:18 [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
2026-07-30 14:18 ` [PATCH v3 1/6] arm: dts: mediatek: prepare Genio 510 and 700 devices for SPL Carlo Caione
2026-07-30 14:18 ` [PATCH v3 2/6] configs: mt8188: enable eMMC FIT boot from SPL Carlo Caione
2026-07-30 14:18 ` [PATCH v3 3/6] arm: mediatek: build Genio 510 and 700 boot images with binman Carlo Caione
2026-07-30 14:18 ` [PATCH v3 4/6] arm: dts: mediatek: support signed Genio 510 and 700 bootloader FIT Carlo Caione
2026-07-30 14:18 ` [PATCH v3 5/6] arm: dts: mediatek: emit the Genio 510 and 700 BootROM payload Carlo Caione
2026-07-30 14:18 ` [PATCH v3 6/6] doc: board: mediatek: document Genio 510 and 700 SPL boot Carlo Caione
2026-08-13 8:03 ` [PATCH v3 0/6] Add Genio 510 and Genio 700 SPL boot support Carlo Caione
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.