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