From 6de57b41ddeddf6a01a61ea14614a90aba0bcd92 Mon Sep 17 00:00:00 2001 From: Patrick Delaunay Date: Mon, 26 Jul 2021 11:21:34 +0200 Subject: [PATCH] arm: stm32mp: add config for STM32IMAGE support By default for trusted boot with TF-A, U-Boot (u-boot-nodtb) is located in FIP container with its device tree and with the secure monitor (provided by TF-A or OP-TEE). The FIP file is loaded by TF-A BL2 and each components is extracted at the final location. This patch add CONFIG_STM32MP15x_STM32IMAGE to request the STM32 image generation for SOC STM32MP15x when FIP container is not used (u-boot.stm32 is loaded by TF-A as done previously to keep the backward compatibility). Signed-off-by: Patrick Delaunay Reviewed-by: Patrice Chotard --- arch/arm/mach-stm32mp/Kconfig | 7 +++++++ arch/arm/mach-stm32mp/config.mk | 2 +- board/st/stm32mp1/stm32mp1.c | 10 +++++++--- configs/stm32mp15_trusted_defconfig | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig index ace07fd70f..8324fa828a 100644 --- a/arch/arm/mach-stm32mp/Kconfig +++ b/arch/arm/mach-stm32mp/Kconfig @@ -56,6 +56,13 @@ config STM32MP15x dual core A7 for STM32MP157/3, monocore for STM32MP151 target all the STMicroelectronics board with SOC STM32MP1 family +config STM32MP15x_STM32IMAGE + bool "Support STM32 image for generated U-Boot image" + depends on STM32MP15x && TFABOOT + help + Support of STM32 image generation for SOC STM32MP15x + for TF-A boot when FIP container is not used + choice prompt "STM32MP15x board select" optional diff --git a/arch/arm/mach-stm32mp/config.mk b/arch/arm/mach-stm32mp/config.mk index c30bf482f7..f7f5b77c41 100644 --- a/arch/arm/mach-stm32mp/config.mk +++ b/arch/arm/mach-stm32mp/config.mk @@ -4,7 +4,7 @@ # ifndef CONFIG_SPL -INPUTS-y += u-boot.stm32 +INPUTS-$(CONFIG_STM32MP15x_STM32IMAGE) += u-boot.stm32 else ifdef CONFIG_SPL_BUILD INPUTS-y += u-boot-spl.stm32 diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c index 59fb6e548c..032f08d795 100644 --- a/board/st/stm32mp1/stm32mp1.c +++ b/board/st/stm32mp1/stm32mp1.c @@ -105,10 +105,14 @@ int checkboard(void) const char *fdt_compat; int fdt_compat_len; - if (IS_ENABLED(CONFIG_TFABOOT)) - mode = "trusted"; - else + if (IS_ENABLED(CONFIG_TFABOOT)) { + if (IS_ENABLED(CONFIG_STM32MP15x_STM32IMAGE)) + mode = "trusted - stm32image"; + else + mode = "trusted"; + } else { mode = "basic"; + } fdt_compat = fdt_getprop(gd->fdt_blob, 0, "compatible", &fdt_compat_len); diff --git a/configs/stm32mp15_trusted_defconfig b/configs/stm32mp15_trusted_defconfig index 1671cb24f5..2e2f0c76ca 100644 --- a/configs/stm32mp15_trusted_defconfig +++ b/configs/stm32mp15_trusted_defconfig @@ -7,6 +7,7 @@ CONFIG_SYS_MEMTEST_END=0xc4000000 CONFIG_ENV_OFFSET=0x280000 CONFIG_ENV_SECT_SIZE=0x40000 CONFIG_DEFAULT_DEVICE_TREE="stm32mp157c-ev1" +CONFIG_STM32MP15x_STM32IMAGE=y CONFIG_TARGET_ST_STM32MP15x=y CONFIG_CMD_STM32KEY=y CONFIG_CMD_STM32PROG=y -- 2.39.5