Message ID | 20210826214209.254461-6-mr.nuke.me@gmail.com |
---|---|
State | Superseded |
Delegated to: | Patrice Chotard |
Headers | show |
Series | stm32mp1: Support falcon mode with OP-TEE payloads | expand |
Hi On 8/26/21 11:42 PM, Alexandru Gagniuc wrote: > stm32mp_bsec_probe() was skipped for TFABOOT and SPL_BUILD. The idea > of skipping probe() is that we can't access BSEC from the normal > world. This is true with TFABOOT. However, in SPL, we are in the > secure world, so skipping probe is incorrect. In fact, SPL is not > even built when TFABOOT is selected. > > Thus, only skip probe with TFABOOT, but not SPL_BUILD. > > Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> > --- > arch/arm/mach-stm32mp/bsec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/mach-stm32mp/bsec.c b/arch/arm/mach-stm32mp/bsec.c > index fe39bd80cf..a02d19c1b9 100644 > --- a/arch/arm/mach-stm32mp/bsec.c > +++ b/arch/arm/mach-stm32mp/bsec.c > @@ -506,7 +506,7 @@ static int stm32mp_bsec_probe(struct udevice *dev) > * only executed in U-Boot proper when TF-A is not used > */ > > - if (!IS_ENABLED(CONFIG_TFABOOT) && !IS_ENABLED(CONFIG_SPL_BUILD)) { > + if (!IS_ENABLED(CONFIG_TFABOOT)) { > plat = dev_get_plat(dev); > > for (otp = 57; otp <= BSEC_OTP_MAX_VALUE; otp++) in this part the dirver don't skip the BSEC probe (still return 0) BUT the BSEC driver skip only the shadow of the OTP => this initialisation is necessary only one time to save time a/ for TF-A boot it is done in TF-A b/ for basic boot (SPL + U-Boot) is only done in U-Boot proper (because is not mandatory in SPL and the U-Boot execution was faster - before the data cache activation in SPL) With this patch the copy of the OTP in shadow memory is done 2 times 1/ in SPL (BSEC probe) = with CONFIG_SPL_BUILD 2/ in U-Boot (BSEC probe) see comment: /* * update unlocked shadow for OTP cleared by the rom code * only executed in U-Boot proper when TF-A is not used */ but for falcon mode, as the Linux driver expected the OTP are shadowed, the operation need to be done in SPL and in U-Boot proper I propose /* * update unlocked shadow for OTP cleared by the rom code - * only executed in U-Boot proper when TF-A is not used + * only executed in U-Boot SPL, it is done in TF-A when used */ - if (!IS_ENABLED(CONFIG_TFABOOT) && !IS_ENABLED(CONFIG_SPL_BUILD)) { + if (IS_ENABLED(CONFIG_SPL_BUILD)) { Regards Patrick
diff --git a/arch/arm/mach-stm32mp/bsec.c b/arch/arm/mach-stm32mp/bsec.c index fe39bd80cf..a02d19c1b9 100644 --- a/arch/arm/mach-stm32mp/bsec.c +++ b/arch/arm/mach-stm32mp/bsec.c @@ -506,7 +506,7 @@ static int stm32mp_bsec_probe(struct udevice *dev) * only executed in U-Boot proper when TF-A is not used */ - if (!IS_ENABLED(CONFIG_TFABOOT) && !IS_ENABLED(CONFIG_SPL_BUILD)) { + if (!IS_ENABLED(CONFIG_TFABOOT)) { plat = dev_get_plat(dev); for (otp = 57; otp <= BSEC_OTP_MAX_VALUE; otp++)
stm32mp_bsec_probe() was skipped for TFABOOT and SPL_BUILD. The idea of skipping probe() is that we can't access BSEC from the normal world. This is true with TFABOOT. However, in SPL, we are in the secure world, so skipping probe is incorrect. In fact, SPL is not even built when TFABOOT is selected. Thus, only skip probe with TFABOOT, but not SPL_BUILD. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> --- arch/arm/mach-stm32mp/bsec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)