For UART serial boot, the console need to be deactivated to avoid issue
with tools STM32CubeProgrammer.

This patch adds also the missing dependency for CMD_STM32PROG_SERIAL,
to allow the silent and disable console. This avoid to add is on
board level for STM32MP15 (with TARGET_ST_STM32MP15X or
TARGET_ST_STM32MP13X)

Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chot...@foss.st.com>
---

 arch/arm/mach-stm32mp/cmd_stm32prog/Kconfig |  2 ++
 arch/arm/mach-stm32mp/stm32mp2/cpu.c        | 13 +++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/Kconfig 
b/arch/arm/mach-stm32mp/cmd_stm32prog/Kconfig
index 589276282e4..490097e98be 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/Kconfig
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/Kconfig
@@ -27,6 +27,8 @@ config CMD_STM32PROG_USB
 config CMD_STM32PROG_SERIAL
        bool "support stm32prog over UART"
        depends on CMD_STM32PROG
+       imply DISABLE_CONSOLE
+       imply SILENT_CONSOLE
        default y
        help
                activate the command "stm32prog serial" for STM32MP soc family
diff --git a/arch/arm/mach-stm32mp/stm32mp2/cpu.c 
b/arch/arm/mach-stm32mp/stm32mp2/cpu.c
index 9548b27cfa7..c3b87d7f981 100644
--- a/arch/arm/mach-stm32mp/stm32mp2/cpu.c
+++ b/arch/arm/mach-stm32mp/stm32mp2/cpu.c
@@ -55,6 +55,19 @@ int arch_cpu_init(void)
        return 0;
 }
 
+int mach_cpu_init(void)
+{
+       u32 boot_mode;
+
+       boot_mode = get_bootmode();
+
+       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;
+
+       return 0;
+}
+
 void enable_caches(void)
 {
        /* deactivate the data cache, early enabled in arch_cpu_init() */
-- 
2.25.1

Reply via email to