OSDN Git Service

ARM: debug: stm32: add UART early console configuration for STM32F4
authorErwan Le Ray <erwan.leray@st.com>
Mon, 3 Feb 2020 14:04:22 +0000 (15:04 +0100)
committerAlexandre Torgue <alexandre.torgue@st.com>
Fri, 13 Mar 2020 16:05:07 +0000 (17:05 +0100)
Early console is hardcoded on USART1 in current implementation.
With this patch, default UART instance is USART1, but other UART instances
can be configured by setting physical and virtual base addresses in
menuconfig.

Signed-off-by: Erwan Le Ray <erwan.leray@st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
arch/arm/Kconfig.debug
arch/arm/include/debug/stm32.S

index b70d7de..51445c8 100644 (file)
@@ -1201,12 +1201,13 @@ choice
 
        config STM32F4_DEBUG_UART
                bool "Use STM32F4 UART for low-level debug"
-               depends on ARCH_STM32
+               depends on MACH_STM32F429 || MACH_STM32F469
                select DEBUG_STM32_UART
                help
                  Say Y here if you want kernel low-level debugging support
                  on STM32F4 based platforms, which default UART is wired on
-                 USART1.
+                 USART1, but another UART instance can be selected by modifying
+                 CONFIG_DEBUG_UART_PHYS.
 
                  If unsure, say N.
 
@@ -1619,6 +1620,7 @@ config DEBUG_UART_PHYS
        default 0x3e000000 if DEBUG_BCM_KONA_UART
        default 0x3f201000 if DEBUG_BCM2836
        default 0x4000e400 if DEBUG_LL_UART_EFM32
+       default 0x40011000 if STM32F4_DEBUG_UART
        default 0x40028000 if DEBUG_AT91_SAMV7_USART1
        default 0x40081000 if DEBUG_LPC18XX_UART0
        default 0x40090000 if DEBUG_LPC32XX
@@ -1713,7 +1715,7 @@ config DEBUG_UART_PHYS
                DEBUG_S3C64XX_UART || \
                DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
                DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0 || \
-               DEBUG_AT91_UART
+               DEBUG_AT91_UART || DEBUG_STM32_UART
 
 config DEBUG_UART_VIRT
        hex "Virtual base address of debug UART"
@@ -1823,7 +1825,7 @@ config DEBUG_UART_VIRT
                DEBUG_S3C64XX_UART || \
                DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
                DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0 || \
-               DEBUG_AT91_UART
+               DEBUG_AT91_UART || DEBUG_STM32_UART
 
 config DEBUG_UART_8250_SHIFT
        int "Register offset shift for the 8250 debug UART"
index 1abb32f..b0c7034 100644 (file)
@@ -4,8 +4,6 @@
  * Author:   Gerald Baeza <gerald.baeza@st.com> for STMicroelectronics.
  */
 
-#define STM32_UART_BASE                        0x40011000      /* USART1 */
-
 #ifdef CONFIG_STM32F4_DEBUG_UART
 #define STM32_USART_SR_OFF             0x00
 #define STM32_USART_TDR_OFF            0x04
@@ -20,8 +18,8 @@
 #define STM32_USART_TXE                        (1 << 7)        /* Tx data reg empty */
 
 .macro addruart, rp, rv, tmp
-       ldr     \rp,      =STM32_UART_BASE      @ physical base
-       ldr     \rv,      =STM32_UART_BASE      @ virt base /* NoMMU */
+       ldr     \rp, =CONFIG_DEBUG_UART_PHYS @ physical base
+       ldr     \rv, =CONFIG_DEBUG_UART_VIRT @ virt base
 .endm
 
 .macro  senduart,rd,rx