[PATCH] arm: stm32mp1: force boot_device variable for invalid TAMP register value

Patrice CHOTARD patrice.chotard at foss.st.com
Fri Jul 9 11:49:23 CEST 2021


Hi Patrick

On 7/8/21 10:53 AM, Patrick Delaunay wrote:
> When the TAMP register 20 have an invalid value (0x0 for example after
> TAMPER error) the "boot_device" U-Boot env variable have no value and
> no error is displayed in U-Boot log.
> 
> The STM32MP boot command bootcmd_stm32mp failed with strange trace:
>   "Boot over !"
> 
> and the next command in bootcmd_stm32mp failed with few indication:
>   if test ${boot_device} = serial || test ${boot_device} = usb;
> 	then stm32prog ${boot_device} ${boot_instance};
> 
> As it is difficult to investigate, the current patch avoids this issue:
> - change the debug message to error: "unexpected boot mode" is displayed
> - display trace "Boot over invalid!" in bootcmd_stm32mp
> - execute "run distro_bootcmd" to try all the possible target
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
> 
>  arch/arm/mach-stm32mp/cpu.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-stm32mp/cpu.c b/arch/arm/mach-stm32mp/cpu.c
> index 592bfd413d..5ea1ddc497 100644
> --- a/arch/arm/mach-stm32mp/cpu.c
> +++ b/arch/arm/mach-stm32mp/cpu.c
> @@ -542,7 +542,9 @@ static void setup_boot_mode(void)
>  		env_set("boot_instance", "0");
>  		break;
>  	default:
> -		log_debug("unexpected boot mode = %x\n", boot_mode);
> +		env_set("boot_device", "invalid");
> +		env_set("boot_instance", "");
> +		log_err("unexpected boot mode = %x\n", boot_mode);
>  		break;
>  	}
>  
> 
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice


More information about the U-Boot mailing list