On 1/30/25 12:57, Patrice Chotard wrote:
> Since commit 948da7773e34 ("arm: Add new config option ARCH_VERY_EARLY_INIT")
> debug_uart_init() is called respectively in crt0.S and crt0_64.S.
> That means that _debug_uart_init() is called for all STM32MP platforms
> even for those which doesn't support SPL_BUILD.
> 
> So restrict _debug_uart_init() execution for platforms which can have
> SPL_BUILD enabled (STM32MP1 platform only).
> 
> It's more needed to call debug_uart_init() in stm32mp1/cpu.c.
> 
> Signed-off-by: Patrice Chotard <patrice.chot...@foss.st.com>
> ---
> 
>  arch/arm/mach-stm32mp/stm32mp1/cpu.c |  2 --
>  drivers/serial/serial_stm32.c        | 18 ++++++++++++------
>  2 files changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/mach-stm32mp/stm32mp1/cpu.c 
> b/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> index cb1b84c9af9..bc410128479 100644
> --- a/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> +++ b/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> @@ -138,8 +138,6 @@ int mach_cpu_init(void)
>       if (IS_ENABLED(CONFIG_CMD_STM32PROG_SERIAL) &&
>           (boot_mode & TAMP_BOOT_DEVICE_MASK) == BOOT_SERIAL_UART)
>               gd->flags |= GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE;
> -     else if (IS_ENABLED(CONFIG_DEBUG_UART) && IS_ENABLED(CONFIG_XPL_BUILD))
> -             debug_uart_init();
>  
>       return 0;
>  }
> diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c
> index 1ee58142b3f..1675a9cb9d1 100644
> --- a/drivers/serial/serial_stm32.c
> +++ b/drivers/serial/serial_stm32.c
> @@ -299,13 +299,19 @@ static inline struct stm32_uart_info 
> *_debug_uart_info(void)
>  
>  static inline void _debug_uart_init(void)
>  {
> -     void __iomem *base = (void __iomem *)CONFIG_VAL(DEBUG_UART_BASE);
> -     struct stm32_uart_info *uart_info = _debug_uart_info();
> +     void __maybe_unused __iomem *base = (void __iomem 
> *)CONFIG_VAL(DEBUG_UART_BASE);
> +     struct stm32_uart_info *uart_info __maybe_unused = _debug_uart_info();
>  
> -     _stm32_serial_init(base, uart_info);
> -     _stm32_serial_setbrg(base, uart_info,
> -                          CONFIG_DEBUG_UART_CLOCK,
> -                          CONFIG_BAUDRATE);
> +     /*
> +      * debug_uart_init() is only usable when SPL_BUILD is enabled
> +      * (STM32MP1 case only)
> +      */
> +     if (IS_ENABLED(CONFIG_DEBUG_UART) && IS_ENABLED(CONFIG_SPL_BUILD)) {
> +             _stm32_serial_init(base, uart_info);
> +             _stm32_serial_setbrg(base, uart_info,
> +                                  CONFIG_DEBUG_UART_CLOCK,
> +                                  CONFIG_BAUDRATE);
> +     }
>  }
>  
>  static inline void _debug_uart_putc(int c)
Applied to u-boot-stm32/next

Thanks
Patrice

Reply via email to