Commit 2d5c31a0 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'stm32-soc-for-v5.7-1' of...

Merge tag 'stm32-soc-for-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/soc

STM32 SoC updates for v5.7, round 1

Highlights:
----------

 - Add early console support for all STM32 SoCs: F4/F7/H7/MP1

* tag 'stm32-soc-for-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
  ARM: debug: stm32: add UART early console support for STM32MP1
  ARM: debug: stm32: add UART early console support for STM32H7
  ARM: debug: stm32: add UART early console configuration for STM32F7
  ARM: debug: stm32: add UART early console configuration for STM32F4

Link: https://lore.kernel.org/r/4e427e37-99c9-239a-f3f8-a3bf50eb1eb2@st.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents ce5b71d3 62c1594d
Loading
Loading
Loading
Loading
+36 −6
Original line number Diff line number Diff line
@@ -1201,23 +1201,49 @@ 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.

	config STM32F7_DEBUG_UART
		bool "Use STM32F7 UART for low-level debug"
		depends on ARCH_STM32
		depends on MACH_STM32F746 || MACH_STM32F769
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32F7 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.

	config STM32H7_DEBUG_UART
		bool "Use STM32H7 UART for low-level debug"
		depends on MACH_STM32H743
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32H7 based platforms, which default UART is wired on
		  USART1, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS.

		  If unsure, say N.

	config STM32MP1_DEBUG_UART
		bool "Use STM32MP1 UART for low-level debug"
		depends on MACH_STM32MP157
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32MP1 based platforms, wich default UART is wired on
		  UART4, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.

		  If unsure, say N.

@@ -1619,6 +1645,9 @@ config DEBUG_UART_PHYS
	default 0x3e000000 if DEBUG_BCM_KONA_UART
	default 0x3f201000 if DEBUG_BCM2836
	default 0x4000e400 if DEBUG_LL_UART_EFM32
	default 0x40010000 if STM32MP1_DEBUG_UART
	default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
				STM32H7_DEBUG_UART
	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
	default 0x40081000 if DEBUG_LPC18XX_UART0
	default 0x40090000 if DEBUG_LPC32XX
@@ -1713,7 +1742,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"
@@ -1779,6 +1808,7 @@ config DEBUG_UART_VIRT
	default 0xfcfe8600 if DEBUG_BCM63XX_UART
	default 0xfd000000 if DEBUG_SPEAR3XX || DEBUG_SPEAR13XX
	default 0xfd883000 if DEBUG_ALPINE_UART0
	default 0xfe010000 if STM32MP1_DEBUG_UART
	default 0xfe017000 if DEBUG_MMP_UART2
	default 0xfe018000 if DEBUG_MMP_UART3
	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
@@ -1823,7 +1853,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"
+4 −5
Original line number Diff line number Diff line
@@ -4,14 +4,13 @@
 * 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
#endif

#ifdef CONFIG_STM32F7_DEBUG_UART
#if defined(CONFIG_STM32F7_DEBUG_UART) || defined(CONFIG_STM32H7_DEBUG_UART) || \
	defined(CONFIG_STM32MP1_DEBUG_UART)
#define STM32_USART_SR_OFF		0x1C
#define STM32_USART_TDR_OFF		0x28
#endif
@@ -20,8 +19,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