Message ID | 20210726111931.v3.1.I75c3a4359a6e42c20360fb1774a2e371a08a6270@changeid |
---|---|
State | Accepted |
Commit | 6de57b41ddeddf6a01a61ea14614a90aba0bcd92 |
Delegated to: | Patrice Chotard |
Headers | show |
Series | stm32mp1: handle TF-A boot with FIP | expand |
Hi Patrick On 7/26/21 11:21 AM, Patrick Delaunay wrote: > 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> > --- > > (no changes since v1) > > 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 0e59931679..b9e623bc3c 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 2faf5c81b4..70bd4d1ed5 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 a58ea91d3e..6a8ccb1f3d 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 > Applied to u-boot-stm/master Thanks Patrice
diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig index 0e59931679..b9e623bc3c 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 2faf5c81b4..70bd4d1ed5 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 a58ea91d3e..6a8ccb1f3d 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