[Uboot-stm32] [PATCH] arm: stm32mp: move dbgmcu_init call when DT is ready

Patrice CHOTARD patrice.chotard at st.com
Tue Jul 28 17:25:51 CEST 2020


On 7/28/20 3:53 PM, Patrice CHOTARD wrote:
> On 7/24/20 11:13 AM, Patrick Delaunay wrote:
>> As the dbgmcu_init use the function bsec_dbgswenable which is based
>> on the DM and DT, its call can't be done before the spl is initialized
>> (driver model, DT and malloc) in board_init_f::spl_early_init().
>>
>> This function call is moved later in spl_board_init().
>>
>> Fixes: bd3f60d29c24 ("arm: stm32mp: protect DBGMCU_IDC access with BSEC")
>>
>> Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
>> ---
>>
>>  arch/arm/mach-stm32mp/Kconfig |  1 +
>>  arch/arm/mach-stm32mp/cpu.c   | 12 ++++++++----
>>  2 files changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig
>> index 4003c2e38b..478fd2f17d 100644
>> --- a/arch/arm/mach-stm32mp/Kconfig
>> +++ b/arch/arm/mach-stm32mp/Kconfig
>> @@ -1,6 +1,7 @@
>>  if ARCH_STM32MP
>>  
>>  config SPL
>> +	select SPL_BOARD_INIT
>>  	select SPL_CLK
>>  	select SPL_DM
>>  	select SPL_DM_SEQ_ALIAS
>> diff --git a/arch/arm/mach-stm32mp/cpu.c b/arch/arm/mach-stm32mp/cpu.c
>> index 382067190c..56092c8bf6 100644
>> --- a/arch/arm/mach-stm32mp/cpu.c
>> +++ b/arch/arm/mach-stm32mp/cpu.c
>> @@ -154,15 +154,20 @@ static void security_init(void)
>>   */
>>  static void dbgmcu_init(void)
>>  {
>> -	setbits_le32(RCC_DBGCFGR, RCC_DBGCFGR_DBGCKEN);
>> -
>>  	/*
>>  	 * Freeze IWDG2 if Cortex-A7 is in debug mode
>>  	 * done in TF-A for TRUSTED boot and
>>  	 * DBGMCU access is controlled by BSEC_DENABLE.DBGSWENABLE
>>  	*/
>> -	if (!IS_ENABLED(CONFIG_TFABOOT) && bsec_dbgswenable())
>> +	if (!IS_ENABLED(CONFIG_TFABOOT) && bsec_dbgswenable()) {
>> +		setbits_le32(RCC_DBGCFGR, RCC_DBGCFGR_DBGCKEN);
>>  		setbits_le32(DBGMCU_APB4FZ1, DBGMCU_APB4FZ1_IWDG2);
>> +	}
>> +}
>> +
>> +void spl_board_init(void)
>> +{
>> +	dbgmcu_init();
>>  }
>>  #endif /* !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD) */
>>  
>> @@ -241,7 +246,6 @@ int arch_cpu_init(void)
>>  	timer_init();
>>  
>>  #if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
>> -	dbgmcu_init();
>>  #ifndef CONFIG_TFABOOT
>>  	security_init();
>>  	update_bootmode();
> Reviewed-by: Patrice Chotard <patrice.chotard at st.com>
>
> Thanks
>
> Patrice
> _______________________________________________
> Uboot-stm32 mailing list
> Uboot-stm32 at st-md-mailman.stormreply.com
> https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32

Applied to u-boot-stm/master

Thanks

Patrice


More information about the U-Boot mailing list