You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
258 lines
8.7 KiB
258 lines
8.7 KiB
From 48167d4a55890a783cc8b1590bc8071253ae4b83 Mon Sep 17 00:00:00 2001
|
|
From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
|
|
Date: Mon, 14 Apr 2014 16:47:34 +0300
|
|
Subject: [PATCH 097/182] ARM: debug: qcom: make UART address selection
|
|
configuration option
|
|
|
|
Separate Qualcomm low-level debugging UART to two options.
|
|
|
|
DEBUG_MSM_UART is used in earlier non-multi platform arches,
|
|
like MSM7X00A, QSD8X50 and MSM7X30.
|
|
|
|
DEBUG_QCOM_UARTDM is used in multi-plafrom arches and have
|
|
embedded data mover.
|
|
|
|
Make DEBUG_UART_PHYS and DEBUG_UART_BASE user adjustable by
|
|
Kconfig menu.
|
|
|
|
Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
|
|
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
|
|
Tested-by: Stephen Boyd <sboyd@codeaurora.org>
|
|
Signed-off-by: Kumar Gala <galak@codeaurora.org>
|
|
---
|
|
arch/arm/Kconfig.debug | 81 +++++++++++++++++-------------------------
|
|
arch/arm/include/debug/msm.S | 46 +++---------------------
|
|
arch/arm/mach-msm/Kconfig | 3 --
|
|
3 files changed, 38 insertions(+), 92 deletions(-)
|
|
|
|
--- a/arch/arm/Kconfig.debug
|
|
+++ b/arch/arm/Kconfig.debug
|
|
@@ -353,56 +353,39 @@ choice
|
|
Say Y here if you want kernel low-level debugging support
|
|
on MMP UART3.
|
|
|
|
- config DEBUG_MSM_UART1
|
|
- bool "Kernel low-level debugging messages via MSM UART1"
|
|
- depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
|
|
- select DEBUG_MSM_UART
|
|
+ config DEBUG_MSM_UART
|
|
+ bool "Kernel low-level debugging messages via MSM UART"
|
|
+ depends on ARCH_MSM
|
|
help
|
|
Say Y here if you want the debug print routines to direct
|
|
- their output to the first serial port on MSM devices.
|
|
+ their output to the serial port on MSM devices.
|
|
|
|
- config DEBUG_MSM_UART2
|
|
- bool "Kernel low-level debugging messages via MSM UART2"
|
|
- depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
|
|
- select DEBUG_MSM_UART
|
|
- help
|
|
- Say Y here if you want the debug print routines to direct
|
|
- their output to the second serial port on MSM devices.
|
|
+ ARCH DEBUG_UART_PHYS DEBUG_UART_BASE #
|
|
+ MSM7X00A, QSD8X50 0xa9a00000 0xe1000000 UART1
|
|
+ MSM7X00A, QSD8X50 0xa9b00000 0xe1000000 UART2
|
|
+ MSM7X00A, QSD8X50 0xa9c00000 0xe1000000 UART3
|
|
|
|
- config DEBUG_MSM_UART3
|
|
- bool "Kernel low-level debugging messages via MSM UART3"
|
|
- depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
|
|
- select DEBUG_MSM_UART
|
|
- help
|
|
- Say Y here if you want the debug print routines to direct
|
|
- their output to the third serial port on MSM devices.
|
|
+ MSM7X30 0xaca00000 0xe1000000 UART1
|
|
+ MSM7X30 0xacb00000 0xe1000000 UART2
|
|
+ MSM7X30 0xacc00000 0xe1000000 UART3
|
|
|
|
- config DEBUG_MSM8660_UART
|
|
- bool "Kernel low-level debugging messages via MSM 8660 UART"
|
|
- depends on ARCH_MSM8X60
|
|
- select MSM_HAS_DEBUG_UART_HS
|
|
- select DEBUG_MSM_UART
|
|
- help
|
|
- Say Y here if you want the debug print routines to direct
|
|
- their output to the serial port on MSM 8660 devices.
|
|
+ Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
|
|
+ options based on your needs.
|
|
|
|
- config DEBUG_MSM8960_UART
|
|
- bool "Kernel low-level debugging messages via MSM 8960 UART"
|
|
- depends on ARCH_MSM8960
|
|
- select MSM_HAS_DEBUG_UART_HS
|
|
- select DEBUG_MSM_UART
|
|
+ config DEBUG_QCOM_UARTDM
|
|
+ bool "Kernel low-level debugging messages via QCOM UARTDM"
|
|
+ depends on ARCH_QCOM
|
|
help
|
|
Say Y here if you want the debug print routines to direct
|
|
- their output to the serial port on MSM 8960 devices.
|
|
+ their output to the serial port on Qualcomm devices.
|
|
|
|
- config DEBUG_MSM8974_UART
|
|
- bool "Kernel low-level debugging messages via MSM 8974 UART"
|
|
- depends on ARCH_MSM8974
|
|
- select MSM_HAS_DEBUG_UART_HS
|
|
- select DEBUG_MSM_UART
|
|
- help
|
|
- Say Y here if you want the debug print routines to direct
|
|
- their output to the serial port on MSM 8974 devices.
|
|
+ ARCH DEBUG_UART_PHYS DEBUG_UART_BASE
|
|
+ MSM8X60 0x19c40000 0xf0040000
|
|
+ MSM8960 0x16440000 0xf0040000
|
|
+ MSM8974 0xf991e000 0xfa71e000
|
|
+
|
|
+ Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
|
|
+ options based on your needs.
|
|
|
|
config DEBUG_MVEBU_UART
|
|
bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)"
|
|
@@ -954,10 +937,6 @@ config DEBUG_STI_UART
|
|
bool
|
|
depends on ARCH_STI
|
|
|
|
-config DEBUG_MSM_UART
|
|
- bool
|
|
- depends on ARCH_MSM || ARCH_QCOM
|
|
-
|
|
config DEBUG_LL_INCLUDE
|
|
string
|
|
default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
|
@@ -975,7 +954,7 @@ config DEBUG_LL_INCLUDE
|
|
DEBUG_IMX53_UART ||\
|
|
DEBUG_IMX6Q_UART || \
|
|
DEBUG_IMX6SL_UART
|
|
- default "debug/msm.S" if DEBUG_MSM_UART
|
|
+ default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
|
|
default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
|
|
default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
|
|
default "debug/sti.S" if DEBUG_STI_UART
|
|
@@ -1039,6 +1018,7 @@ config DEBUG_UART_PHYS
|
|
default 0x80074000 if DEBUG_IMX28_UART
|
|
default 0x808c0000 if ARCH_EP93XX
|
|
default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
|
|
+ default 0xa9a00000 if DEBUG_MSM_UART
|
|
default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
|
|
default 0xc0013000 if DEBUG_U300_UART
|
|
default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
|
|
@@ -1054,6 +1034,7 @@ config DEBUG_UART_PHYS
|
|
ARCH_ORION5X
|
|
default 0xf7fc9000 if DEBUG_BERLIN_UART
|
|
default 0xf8b00000 if DEBUG_HI3716_UART
|
|
+ default 0xf991e000 if DEBUG_QCOM_UARTDM
|
|
default 0xfcb00000 if DEBUG_HI3620_UART
|
|
default 0xfe800000 if ARCH_IOP32X
|
|
default 0xffc02000 if DEBUG_SOCFPGA_UART
|
|
@@ -1062,11 +1043,13 @@ config DEBUG_UART_PHYS
|
|
default 0xfffff700 if ARCH_IOP33X
|
|
depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
|
|
DEBUG_LL_UART_EFM32 || \
|
|
- DEBUG_UART_8250 || DEBUG_UART_PL01X
|
|
+ DEBUG_UART_8250 || DEBUG_UART_PL01X || \
|
|
+ DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
|
|
|
|
config DEBUG_UART_VIRT
|
|
hex "Virtual base address of debug UART"
|
|
default 0xe0010fe0 if ARCH_RPC
|
|
+ default 0xe1000000 if DEBUG_MSM_UART
|
|
default 0xf0000be0 if ARCH_EBSA110
|
|
default 0xf0009000 if DEBUG_CNS3XXX
|
|
default 0xf01fb000 if DEBUG_NOMADIK_UART
|
|
@@ -1081,6 +1064,7 @@ config DEBUG_UART_VIRT
|
|
default 0xf7fc9000 if DEBUG_BERLIN_UART
|
|
default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
|
|
default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
|
|
+ default 0xfa71e000 if DEBUG_QCOM_UARTDM
|
|
default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
|
|
default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
|
|
default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
|
|
@@ -1120,7 +1104,8 @@ config DEBUG_UART_VIRT
|
|
default 0xff003000 if DEBUG_U300_UART
|
|
default DEBUG_UART_PHYS if !MMU
|
|
depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
|
|
- DEBUG_UART_8250 || DEBUG_UART_PL01X
|
|
+ DEBUG_UART_8250 || DEBUG_UART_PL01X || \
|
|
+ DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
|
|
|
|
config DEBUG_UART_8250_SHIFT
|
|
int "Register offset shift for the 8250 debug UART"
|
|
--- a/arch/arm/include/debug/msm.S
|
|
+++ b/arch/arm/include/debug/msm.S
|
|
@@ -15,51 +15,15 @@
|
|
*
|
|
*/
|
|
|
|
-#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_QSD8X50)
|
|
-#define MSM_UART1_PHYS 0xA9A00000
|
|
-#define MSM_UART2_PHYS 0xA9B00000
|
|
-#define MSM_UART3_PHYS 0xA9C00000
|
|
-#elif defined(CONFIG_ARCH_MSM7X30)
|
|
-#define MSM_UART1_PHYS 0xACA00000
|
|
-#define MSM_UART2_PHYS 0xACB00000
|
|
-#define MSM_UART3_PHYS 0xACC00000
|
|
-#endif
|
|
-
|
|
-#if defined(CONFIG_DEBUG_MSM_UART1)
|
|
-#define MSM_DEBUG_UART_BASE 0xE1000000
|
|
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
|
|
-#elif defined(CONFIG_DEBUG_MSM_UART2)
|
|
-#define MSM_DEBUG_UART_BASE 0xE1000000
|
|
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
|
|
-#elif defined(CONFIG_DEBUG_MSM_UART3)
|
|
-#define MSM_DEBUG_UART_BASE 0xE1000000
|
|
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
|
|
-#endif
|
|
-
|
|
-#ifdef CONFIG_DEBUG_MSM8660_UART
|
|
-#define MSM_DEBUG_UART_BASE 0xF0040000
|
|
-#define MSM_DEBUG_UART_PHYS 0x19C40000
|
|
-#endif
|
|
-
|
|
-#ifdef CONFIG_DEBUG_MSM8960_UART
|
|
-#define MSM_DEBUG_UART_BASE 0xF0040000
|
|
-#define MSM_DEBUG_UART_PHYS 0x16440000
|
|
-#endif
|
|
-
|
|
-#ifdef CONFIG_DEBUG_MSM8974_UART
|
|
-#define MSM_DEBUG_UART_BASE 0xFA71E000
|
|
-#define MSM_DEBUG_UART_PHYS 0xF991E000
|
|
-#endif
|
|
-
|
|
.macro addruart, rp, rv, tmp
|
|
-#ifdef MSM_DEBUG_UART_PHYS
|
|
- ldr \rp, =MSM_DEBUG_UART_PHYS
|
|
- ldr \rv, =MSM_DEBUG_UART_BASE
|
|
+#ifdef CONFIG_DEBUG_UART_PHYS
|
|
+ ldr \rp, =CONFIG_DEBUG_UART_PHYS
|
|
+ ldr \rv, =CONFIG_DEBUG_UART_VIRT
|
|
#endif
|
|
.endm
|
|
|
|
.macro senduart, rd, rx
|
|
-#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
|
|
+#ifdef CONFIG_DEBUG_QCOM_UARTDM
|
|
@ Write the 1 character to UARTDM_TF
|
|
str \rd, [\rx, #0x70]
|
|
#else
|
|
@@ -68,7 +32,7 @@
|
|
.endm
|
|
|
|
.macro waituart, rd, rx
|
|
-#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
|
|
+#ifdef CONFIG_DEBUG_QCOM_UARTDM
|
|
@ check for TX_EMT in UARTDM_SR
|
|
ldr \rd, [\rx, #0x08]
|
|
tst \rd, #0x08
|
|
--- a/arch/arm/mach-msm/Kconfig
|
|
+++ b/arch/arm/mach-msm/Kconfig
|
|
@@ -42,9 +42,6 @@ config ARCH_QSD8X50
|
|
|
|
endchoice
|
|
|
|
-config MSM_HAS_DEBUG_UART_HS
|
|
- bool
|
|
-
|
|
config MSM_SOC_REV_A
|
|
bool
|
|
|
|
|