summaryrefslogtreecommitdiff
path: root/target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch')
-rw-r--r--target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch267
1 files changed, 267 insertions, 0 deletions
diff --git a/target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch b/target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch
new file mode 100644
index 0000000..2f9cad7
--- /dev/null
+++ b/target/linux/ipq806x/patches/0097-ARM-debug-qcom-make-UART-address-selection-configura.patch
@@ -0,0 +1,267 @@
+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(-)
+
+diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
+index 4491c7b..1a5895d 100644
+--- 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"
+diff --git a/arch/arm/include/debug/msm.S b/arch/arm/include/debug/msm.S
+index 9d653d4..9ef5761 100644
+--- 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
+diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
+index a7f959e..9b26976 100644
+--- 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
+
+--
+1.7.10.4
+