arm: stm32mp: add config for STM32IMAGE support
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Mon, 26 Jul 2021 09:21:34 +0000 (11:21 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Mon, 16 Aug 2021 07:34:27 +0000 (09:34 +0200)
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 <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/mach-stm32mp/Kconfig
arch/arm/mach-stm32mp/config.mk
board/st/stm32mp1/stm32mp1.c
configs/stm32mp15_trusted_defconfig

index ace07fd..8324fa8 100644 (file)
@@ -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
index c30bf48..f7f5b77 100644 (file)
@@ -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
index 59fb6e5..032f08d 100644 (file)
@@ -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);
index 1671cb2..2e2f0c7 100644 (file)
@@ -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