* [PATCHv2 0/2] Update MSM DEBUG_LL support
@ 2011-10-21 4:28 ` Stephen Boyd
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: David Brown; +Cc: linux-kernel, linux-arm-msm, linux-arm-kernel
This is a reroll of the MSM DEBUG_LL patches. They incorporate
feedback from Nico and are rebased on top of rmk's debug branch.
My understanding is the debug branch is a stable branch to build
up low-level debug on.
Stephen Boyd (2):
msm: Consolidate and move DEBUG_LL to generic ARM Kconfig
msm: Support DEBUG_LL on MSM8660 and MSM8960
arch/arm/Kconfig.debug | 37 ++++++++++++++++
arch/arm/mach-msm/Kconfig | 35 +--------------
arch/arm/mach-msm/include/mach/debug-macro.S | 51 ++++++++++++++--------
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-7x30.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 ++
arch/arm/mach-msm/include/mach/msm_iomap-8x50.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 ++
arch/arm/mach-msm/include/mach/msm_iomap.h | 12 +++++
arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++----
arch/arm/mach-msm/io.c | 15 +++++-
11 files changed, 129 insertions(+), 98 deletions(-)
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHv2 0/2] Update MSM DEBUG_LL support
@ 2011-10-21 4:28 ` Stephen Boyd
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: linux-arm-kernel
This is a reroll of the MSM DEBUG_LL patches. They incorporate
feedback from Nico and are rebased on top of rmk's debug branch.
My understanding is the debug branch is a stable branch to build
up low-level debug on.
Stephen Boyd (2):
msm: Consolidate and move DEBUG_LL to generic ARM Kconfig
msm: Support DEBUG_LL on MSM8660 and MSM8960
arch/arm/Kconfig.debug | 37 ++++++++++++++++
arch/arm/mach-msm/Kconfig | 35 +--------------
arch/arm/mach-msm/include/mach/debug-macro.S | 51 ++++++++++++++--------
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-7x30.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 ++
arch/arm/mach-msm/include/mach/msm_iomap-8x50.h | 12 -----
arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 ++
arch/arm/mach-msm/include/mach/msm_iomap.h | 12 +++++
arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++----
arch/arm/mach-msm/io.c | 15 +++++-
11 files changed, 129 insertions(+), 98 deletions(-)
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHv2 1/2] msm: Consolidate and move DEBUG_LL to generic ARM Kconfig
2011-10-21 4:28 ` Stephen Boyd
(?)
@ 2011-10-21 4:28 ` Stephen Boyd
-1 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: David Brown; +Cc: linux-arm-msm, linux-kernel, linux-arm-kernel
Now that DEBUG_LL is a choice, we can move MSM's homegrown choice
menu to DEBUG_LL.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/Kconfig.debug | 21 +++++++++++++++
arch/arm/mach-msm/Kconfig | 32 -----------------------
arch/arm/mach-msm/include/mach/debug-macro.S | 19 ++-----------
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-7x30.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-8x50.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap.h | 12 ++++++++
arch/arm/mach-msm/io.c | 9 ++++--
8 files changed, 42 insertions(+), 87 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index b3dc1fa..c2db187 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -128,6 +128,27 @@ choice
Say Y here if you want the debug print routines to direct
their output to the second serial port on these devices.
+ config DEBUG_MSM_UART1
+ bool "Kernel low-level debugging messages via MSM UART1"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the first 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
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the second serial port on MSM devices.
+
+ config DEBUG_MSM_UART3
+ bool "Kernel low-level debugging messages via MSM UART3"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the third serial port on MSM devices.
+
endchoice
config EARLY_PRINTK
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ebde97f..5b07b61 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -13,7 +13,6 @@ config ARCH_MSM7X00A
select CPU_V6
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM7X30
bool "MSM7x30"
@@ -25,7 +24,6 @@ config ARCH_MSM7X30
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_QSD8X50
bool "QSD8X50"
@@ -37,7 +35,6 @@ config ARCH_QSD8X50
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM8X60
bool "MSM8X60"
@@ -73,9 +70,6 @@ config ARCH_MSM_ARM11
config ARCH_MSM_SCORPION
bool
-config HAS_MSM_DEBUG_UART_PHYS
- bool
-
config MSM_VIC
bool
@@ -152,32 +146,6 @@ config MACH_MSM8960_RUMI3
endmenu
-config MSM_DEBUG_UART
- int
- default 1 if MSM_DEBUG_UART1
- default 2 if MSM_DEBUG_UART2
- default 3 if MSM_DEBUG_UART3
-
-if HAS_MSM_DEBUG_UART_PHYS
-choice
- prompt "Debug UART"
-
- default MSM_DEBUG_UART_NONE
-
- config MSM_DEBUG_UART_NONE
- bool "None"
-
- config MSM_DEBUG_UART1
- bool "UART1"
-
- config MSM_DEBUG_UART2
- bool "UART2"
-
- config MSM_DEBUG_UART3
- bool "UART3"
-endchoice
-endif
-
config MSM_SMD_PKG3
bool
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index 646b99e..43d62c6 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -1,4 +1,4 @@
-/* arch/arm/mach-msm7200/include/mach/debug-macro.S
+/*
*
* Copyright (C) 2007 Google, Inc.
* Author: Brian Swetland <swetland@google.com>
@@ -14,15 +14,14 @@
*
*/
-
-
#include <mach/hardware.h>
#include <mach/msm_iomap.h>
-#if defined(CONFIG_HAS_MSM_DEBUG_UART_PHYS) && !defined(CONFIG_MSM_DEBUG_UART_NONE)
.macro addruart, rp, rv
+#ifdef MSM_DEBUG_UART_PHYS
ldr \rp, =MSM_DEBUG_UART_PHYS
ldr \rv, =MSM_DEBUG_UART_BASE
+#endif
.endm
.macro senduart,rd,rx
@@ -36,18 +35,6 @@
tst \rd, #0x04
beq 1001b
.endm
-#else
- .macro addruart, rp, rv
- mov \rv, #0xff000000
- orr \rv, \rv, #0x00f00000
- .endm
-
- .macro senduart,rd,rx
- .endm
-
- .macro waituart,rd,rx
- .endm
-#endif
.macro busyuart,rd,rx
.endm
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
index 94fe9fe..8af4612 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
@@ -78,18 +78,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_SDC1_PHYS 0xA0400000
#define MSM_SDC1_SIZE SZ_4K
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
index 3769444..198202c 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
@@ -89,18 +89,6 @@
#define MSM_UART3_PHYS 0xACC00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
index d67cd73..0faa894 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
@@ -83,18 +83,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h
index 4ded152..90682f4 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap.h
@@ -55,6 +55,18 @@
#include "msm_iomap-8960.h"
+#define MSM_DEBUG_UART_SIZE SZ_4K
+#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
+
/* Virtual addresses shared across all MSM targets. */
#define MSM_CSR_BASE IOMEM(0xE0001000)
#define MSM_QGIC_DIST_BASE IOMEM(0xF0000000)
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 140ddbb..0bf9502 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -46,7 +46,8 @@ static struct map_desc msm_io_desc[] __initdata = {
MSM_CHIP_DEVICE(GPIO1, MSM7X00),
MSM_CHIP_DEVICE(GPIO2, MSM7X00),
MSM_DEVICE(CLK_CTL),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
#ifdef CONFIG_ARCH_MSM7X30
@@ -83,7 +84,8 @@ static struct map_desc qsd8x50_io_desc[] __initdata = {
MSM_DEVICE(SCPLL),
MSM_DEVICE(AD5),
MSM_DEVICE(MDC),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
@@ -145,7 +147,8 @@ static struct map_desc msm7x30_io_desc[] __initdata = {
MSM_DEVICE(SAW),
MSM_DEVICE(GCC),
MSM_DEVICE(TCSR),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv2 1/2] msm: Consolidate and move DEBUG_LL to generic ARM Kconfig
@ 2011-10-21 4:28 ` Stephen Boyd
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: David Brown; +Cc: linux-kernel, linux-arm-msm, linux-arm-kernel
Now that DEBUG_LL is a choice, we can move MSM's homegrown choice
menu to DEBUG_LL.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/Kconfig.debug | 21 +++++++++++++++
arch/arm/mach-msm/Kconfig | 32 -----------------------
arch/arm/mach-msm/include/mach/debug-macro.S | 19 ++-----------
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-7x30.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-8x50.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap.h | 12 ++++++++
arch/arm/mach-msm/io.c | 9 ++++--
8 files changed, 42 insertions(+), 87 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index b3dc1fa..c2db187 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -128,6 +128,27 @@ choice
Say Y here if you want the debug print routines to direct
their output to the second serial port on these devices.
+ config DEBUG_MSM_UART1
+ bool "Kernel low-level debugging messages via MSM UART1"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the first 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
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the second serial port on MSM devices.
+
+ config DEBUG_MSM_UART3
+ bool "Kernel low-level debugging messages via MSM UART3"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the third serial port on MSM devices.
+
endchoice
config EARLY_PRINTK
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ebde97f..5b07b61 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -13,7 +13,6 @@ config ARCH_MSM7X00A
select CPU_V6
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM7X30
bool "MSM7x30"
@@ -25,7 +24,6 @@ config ARCH_MSM7X30
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_QSD8X50
bool "QSD8X50"
@@ -37,7 +35,6 @@ config ARCH_QSD8X50
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM8X60
bool "MSM8X60"
@@ -73,9 +70,6 @@ config ARCH_MSM_ARM11
config ARCH_MSM_SCORPION
bool
-config HAS_MSM_DEBUG_UART_PHYS
- bool
-
config MSM_VIC
bool
@@ -152,32 +146,6 @@ config MACH_MSM8960_RUMI3
endmenu
-config MSM_DEBUG_UART
- int
- default 1 if MSM_DEBUG_UART1
- default 2 if MSM_DEBUG_UART2
- default 3 if MSM_DEBUG_UART3
-
-if HAS_MSM_DEBUG_UART_PHYS
-choice
- prompt "Debug UART"
-
- default MSM_DEBUG_UART_NONE
-
- config MSM_DEBUG_UART_NONE
- bool "None"
-
- config MSM_DEBUG_UART1
- bool "UART1"
-
- config MSM_DEBUG_UART2
- bool "UART2"
-
- config MSM_DEBUG_UART3
- bool "UART3"
-endchoice
-endif
-
config MSM_SMD_PKG3
bool
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index 646b99e..43d62c6 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -1,4 +1,4 @@
-/* arch/arm/mach-msm7200/include/mach/debug-macro.S
+/*
*
* Copyright (C) 2007 Google, Inc.
* Author: Brian Swetland <swetland@google.com>
@@ -14,15 +14,14 @@
*
*/
-
-
#include <mach/hardware.h>
#include <mach/msm_iomap.h>
-#if defined(CONFIG_HAS_MSM_DEBUG_UART_PHYS) && !defined(CONFIG_MSM_DEBUG_UART_NONE)
.macro addruart, rp, rv
+#ifdef MSM_DEBUG_UART_PHYS
ldr \rp, =MSM_DEBUG_UART_PHYS
ldr \rv, =MSM_DEBUG_UART_BASE
+#endif
.endm
.macro senduart,rd,rx
@@ -36,18 +35,6 @@
tst \rd, #0x04
beq 1001b
.endm
-#else
- .macro addruart, rp, rv
- mov \rv, #0xff000000
- orr \rv, \rv, #0x00f00000
- .endm
-
- .macro senduart,rd,rx
- .endm
-
- .macro waituart,rd,rx
- .endm
-#endif
.macro busyuart,rd,rx
.endm
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
index 94fe9fe..8af4612 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
@@ -78,18 +78,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_SDC1_PHYS 0xA0400000
#define MSM_SDC1_SIZE SZ_4K
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
index 3769444..198202c 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
@@ -89,18 +89,6 @@
#define MSM_UART3_PHYS 0xACC00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
index d67cd73..0faa894 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
@@ -83,18 +83,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h
index 4ded152..90682f4 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap.h
@@ -55,6 +55,18 @@
#include "msm_iomap-8960.h"
+#define MSM_DEBUG_UART_SIZE SZ_4K
+#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
+
/* Virtual addresses shared across all MSM targets. */
#define MSM_CSR_BASE IOMEM(0xE0001000)
#define MSM_QGIC_DIST_BASE IOMEM(0xF0000000)
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 140ddbb..0bf9502 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -46,7 +46,8 @@ static struct map_desc msm_io_desc[] __initdata = {
MSM_CHIP_DEVICE(GPIO1, MSM7X00),
MSM_CHIP_DEVICE(GPIO2, MSM7X00),
MSM_DEVICE(CLK_CTL),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
#ifdef CONFIG_ARCH_MSM7X30
@@ -83,7 +84,8 @@ static struct map_desc qsd8x50_io_desc[] __initdata = {
MSM_DEVICE(SCPLL),
MSM_DEVICE(AD5),
MSM_DEVICE(MDC),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
@@ -145,7 +147,8 @@ static struct map_desc msm7x30_io_desc[] __initdata = {
MSM_DEVICE(SAW),
MSM_DEVICE(GCC),
MSM_DEVICE(TCSR),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv2 1/2] msm: Consolidate and move DEBUG_LL to generic ARM Kconfig
@ 2011-10-21 4:28 ` Stephen Boyd
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: linux-arm-kernel
Now that DEBUG_LL is a choice, we can move MSM's homegrown choice
menu to DEBUG_LL.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/Kconfig.debug | 21 +++++++++++++++
arch/arm/mach-msm/Kconfig | 32 -----------------------
arch/arm/mach-msm/include/mach/debug-macro.S | 19 ++-----------
arch/arm/mach-msm/include/mach/msm_iomap-7x00.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-7x30.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap-8x50.h | 12 --------
arch/arm/mach-msm/include/mach/msm_iomap.h | 12 ++++++++
arch/arm/mach-msm/io.c | 9 ++++--
8 files changed, 42 insertions(+), 87 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index b3dc1fa..c2db187 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -128,6 +128,27 @@ choice
Say Y here if you want the debug print routines to direct
their output to the second serial port on these devices.
+ config DEBUG_MSM_UART1
+ bool "Kernel low-level debugging messages via MSM UART1"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the first 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
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the second serial port on MSM devices.
+
+ config DEBUG_MSM_UART3
+ bool "Kernel low-level debugging messages via MSM UART3"
+ depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the third serial port on MSM devices.
+
endchoice
config EARLY_PRINTK
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ebde97f..5b07b61 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -13,7 +13,6 @@ config ARCH_MSM7X00A
select CPU_V6
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM7X30
bool "MSM7x30"
@@ -25,7 +24,6 @@ config ARCH_MSM7X30
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_QSD8X50
bool "QSD8X50"
@@ -37,7 +35,6 @@ config ARCH_QSD8X50
select MSM_GPIOMUX
select GPIO_MSM_V1
select MSM_PROC_COMM
- select HAS_MSM_DEBUG_UART_PHYS
config ARCH_MSM8X60
bool "MSM8X60"
@@ -73,9 +70,6 @@ config ARCH_MSM_ARM11
config ARCH_MSM_SCORPION
bool
-config HAS_MSM_DEBUG_UART_PHYS
- bool
-
config MSM_VIC
bool
@@ -152,32 +146,6 @@ config MACH_MSM8960_RUMI3
endmenu
-config MSM_DEBUG_UART
- int
- default 1 if MSM_DEBUG_UART1
- default 2 if MSM_DEBUG_UART2
- default 3 if MSM_DEBUG_UART3
-
-if HAS_MSM_DEBUG_UART_PHYS
-choice
- prompt "Debug UART"
-
- default MSM_DEBUG_UART_NONE
-
- config MSM_DEBUG_UART_NONE
- bool "None"
-
- config MSM_DEBUG_UART1
- bool "UART1"
-
- config MSM_DEBUG_UART2
- bool "UART2"
-
- config MSM_DEBUG_UART3
- bool "UART3"
-endchoice
-endif
-
config MSM_SMD_PKG3
bool
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index 646b99e..43d62c6 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -1,4 +1,4 @@
-/* arch/arm/mach-msm7200/include/mach/debug-macro.S
+/*
*
* Copyright (C) 2007 Google, Inc.
* Author: Brian Swetland <swetland@google.com>
@@ -14,15 +14,14 @@
*
*/
-
-
#include <mach/hardware.h>
#include <mach/msm_iomap.h>
-#if defined(CONFIG_HAS_MSM_DEBUG_UART_PHYS) && !defined(CONFIG_MSM_DEBUG_UART_NONE)
.macro addruart, rp, rv
+#ifdef MSM_DEBUG_UART_PHYS
ldr \rp, =MSM_DEBUG_UART_PHYS
ldr \rv, =MSM_DEBUG_UART_BASE
+#endif
.endm
.macro senduart,rd,rx
@@ -36,18 +35,6 @@
tst \rd, #0x04
beq 1001b
.endm
-#else
- .macro addruart, rp, rv
- mov \rv, #0xff000000
- orr \rv, \rv, #0x00f00000
- .endm
-
- .macro senduart,rd,rx
- .endm
-
- .macro waituart,rd,rx
- .endm
-#endif
.macro busyuart,rd,rx
.endm
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
index 94fe9fe..8af4612 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x00.h
@@ -78,18 +78,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_SDC1_PHYS 0xA0400000
#define MSM_SDC1_SIZE SZ_4K
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
index 3769444..198202c 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-7x30.h
@@ -89,18 +89,6 @@
#define MSM_UART3_PHYS 0xACC00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
index d67cd73..0faa894 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x50.h
@@ -83,18 +83,6 @@
#define MSM_UART3_PHYS 0xA9C00000
#define MSM_UART3_SIZE SZ_4K
-#ifdef CONFIG_MSM_DEBUG_UART
-#define MSM_DEBUG_UART_BASE 0xE1000000
-#if CONFIG_MSM_DEBUG_UART == 1
-#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 2
-#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
-#elif CONFIG_MSM_DEBUG_UART == 3
-#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
-#endif
-#define MSM_DEBUG_UART_SIZE SZ_4K
-#endif
-
#define MSM_MDC_BASE IOMEM(0xE0200000)
#define MSM_MDC_PHYS 0xAA500000
#define MSM_MDC_SIZE SZ_1M
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h
index 4ded152..90682f4 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap.h
@@ -55,6 +55,18 @@
#include "msm_iomap-8960.h"
+#define MSM_DEBUG_UART_SIZE SZ_4K
+#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
+
/* Virtual addresses shared across all MSM targets. */
#define MSM_CSR_BASE IOMEM(0xE0001000)
#define MSM_QGIC_DIST_BASE IOMEM(0xF0000000)
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 140ddbb..0bf9502 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -46,7 +46,8 @@ static struct map_desc msm_io_desc[] __initdata = {
MSM_CHIP_DEVICE(GPIO1, MSM7X00),
MSM_CHIP_DEVICE(GPIO2, MSM7X00),
MSM_DEVICE(CLK_CTL),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
#ifdef CONFIG_ARCH_MSM7X30
@@ -83,7 +84,8 @@ static struct map_desc qsd8x50_io_desc[] __initdata = {
MSM_DEVICE(SCPLL),
MSM_DEVICE(AD5),
MSM_DEVICE(MDC),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
@@ -145,7 +147,8 @@ static struct map_desc msm7x30_io_desc[] __initdata = {
MSM_DEVICE(SAW),
MSM_DEVICE(GCC),
MSM_DEVICE(TCSR),
-#ifdef CONFIG_MSM_DEBUG_UART
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+ defined(CONFIG_DEBUG_MSM_UART3)
MSM_DEVICE(DEBUG_UART),
#endif
{
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv2 2/2] msm: Support DEBUG_LL on MSM8660 and MSM8960
2011-10-21 4:28 ` Stephen Boyd
@ 2011-10-21 4:28 ` Stephen Boyd
-1 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: David Brown; +Cc: linux-kernel, linux-arm-msm, linux-arm-kernel, Nicolas Pitre
Add support for DEBUG_LL on the 8660 and 8960 development boards.
While we're here, cleanup the uncompress.h code a bit.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
---
arch/arm/Kconfig.debug | 16 +++++++++++
arch/arm/mach-msm/Kconfig | 3 ++
arch/arm/mach-msm/include/mach/debug-macro.S | 32 ++++++++++++++++++++--
arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 +++
arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 +++
arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++++++++-----
arch/arm/mach-msm/io.c | 6 ++++
7 files changed, 87 insertions(+), 11 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index c2db187..07d0e74 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -149,6 +149,22 @@ choice
Say Y here if you want the debug print routines to direct
their output to the third serial port on MSM devices.
+ config DEBUG_MSM8660_UART
+ bool "Kernel low-level debugging messages via MSM 8660 UART"
+ depends on ARCH_MSM8X60
+ select MSM_HAS_DEBUG_UART_HS
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the serial port on MSM 8960 devices.
+
+ config DEBUG_MSM8960_UART
+ bool "Kernel low-level debugging messages via MSM 8960 UART"
+ depends on ARCH_MSM8960
+ select MSM_HAS_DEBUG_UART_HS
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the serial port on MSM 8960 devices.
+
endchoice
config EARLY_PRINTK
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 5b07b61..000ddf0 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -60,6 +60,9 @@ config ARCH_MSM8960
endchoice
+config MSM_HAS_DEBUG_UART_HS
+ bool
+
config MSM_SOC_REV_A
bool
config ARCH_MSM_SCORPIONMP
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index 43d62c6..2a9f1df 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2007 Google, Inc.
+ * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
* Author: Brian Swetland <swetland@google.com>
*
* This software is licensed under the terms of the GNU General Public
@@ -24,17 +25,42 @@
#endif
.endm
- .macro senduart,rd,rx
+ .macro senduart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ @ Write the 1 character to UARTDM_TF
+ str \rd, [\rx, #0x70]
+#else
teq \rx, #0
strne \rd, [\rx, #0x0C]
+#endif
.endm
- .macro waituart,rd,rx
+ .macro waituart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ @ check for TX_EMT in UARTDM_SR
+ ldr \rd, [\rx, #0x08]
+ tst \rd, #0x08
+ bne 1002f
+ @ wait for TXREADY in UARTDM_ISR
+1001: ldr \rd, [\rx, #0x14]
+ tst \rd, #0x80
+ beq 1001b
+1002:
+ @ Clear TX_READY by writing to the UARTDM_CR register
+ mov \rd, #0x300
+ str \rd, [\rx, #0x10]
+ @ Write 0x1 to NCF register
+ mov \rd, #0x1
+ str \rd, [\rx, #0x40]
+ @ UARTDM reg. Read to induce delay
+ ldr \rd, [\rx, #0x08]
+#else
@ wait for TX_READY
1001: ldr \rd, [\rx, #0x08]
tst \rd, #0x04
beq 1001b
+#endif
.endm
- .macro busyuart,rd,rx
+ .macro busyuart, rd, rx
.endm
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
index 3c9d960..800b557 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
@@ -45,4 +45,9 @@
#define MSM8960_TMR0_PHYS 0x0208A000
#define MSM8960_TMR0_SIZE SZ_4K
+#ifdef CONFIG_DEBUG_MSM8960_UART
+#define MSM_DEBUG_UART_BASE 0xE1040000
+#define MSM_DEBUG_UART_PHYS 0x16440000
+#endif
+
#endif
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
index 3b19b8f..54e12ca 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
@@ -62,4 +62,9 @@
#define MSM8X60_TMR0_PHYS 0x02040000
#define MSM8X60_TMR0_SIZE SZ_4K
+#ifdef CONFIG_DEBUG_MSM8660_UART
+#define MSM_DEBUG_UART_BASE 0xE1040000
+#define MSM_DEBUG_UART_PHYS 0x19C40000
+#endif
+
#endif
diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h
index d94292c..ee906e4 100644
--- a/arch/arm/mach-msm/include/mach/uncompress.h
+++ b/arch/arm/mach-msm/include/mach/uncompress.h
@@ -1,6 +1,6 @@
-/* arch/arm/mach-msm/include/mach/uncompress.h
- *
+/*
* Copyright (C) 2007 Google, Inc.
+ * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -14,17 +14,32 @@
*/
#ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
+#define __ASM_ARCH_MSM_UNCOMPRESS_H
-#include "hardware.h"
-#include "linux/io.h"
-#include "mach/msm_iomap.h"
+#include <linux/io.h>
+#include <asm/processor.h>
+#include <mach/msm_iomap.h>
static void putc(int c)
{
#if defined(MSM_DEBUG_UART_PHYS)
- unsigned base = MSM_DEBUG_UART_PHYS;
- while (!(readl(base + 0x08) & 0x04)) ;
- writel(c, base + 0x0c);
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ /*
+ * Wait for TX_READY to be set; but skip it if we have a
+ * TX underrun.
+ */
+ if (readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x08)
+ while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x14) & 0x80))
+ cpu_relax();
+
+ writel_relaxed(0x300, MSM_DEBUG_UART_PHYS + 0x10);
+ writel_relaxed(0x1, MSM_DEBUG_UART_PHYS + 0x40);
+ writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x70);
+#else
+ while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x04))
+ cpu_relax();
+ writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x0c);
+#endif
#endif
}
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 0bf9502..524d927 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -110,6 +110,9 @@ static struct map_desc msm8x60_io_desc[] __initdata = {
MSM_CHIP_DEVICE(TMR0, MSM8X60),
MSM_DEVICE(ACC),
MSM_DEVICE(GCC),
+#ifdef CONFIG_DEBUG_MSM8660_UART
+ MSM_DEVICE(DEBUG_UART),
+#endif
};
void __init msm_map_msm8x60_io(void)
@@ -124,6 +127,9 @@ static struct map_desc msm8960_io_desc[] __initdata = {
MSM_CHIP_DEVICE(QGIC_CPU, MSM8960),
MSM_CHIP_DEVICE(TMR, MSM8960),
MSM_CHIP_DEVICE(TMR0, MSM8960),
+#ifdef CONFIG_DEBUG_MSM8960_UART
+ MSM_DEVICE(DEBUG_UART),
+#endif
};
void __init msm_map_msm8960_io(void)
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv2 2/2] msm: Support DEBUG_LL on MSM8660 and MSM8960
@ 2011-10-21 4:28 ` Stephen Boyd
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2011-10-21 4:28 UTC (permalink / raw)
To: linux-arm-kernel
Add support for DEBUG_LL on the 8660 and 8960 development boards.
While we're here, cleanup the uncompress.h code a bit.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
---
arch/arm/Kconfig.debug | 16 +++++++++++
arch/arm/mach-msm/Kconfig | 3 ++
arch/arm/mach-msm/include/mach/debug-macro.S | 32 ++++++++++++++++++++--
arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 +++
arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 +++
arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++++++++-----
arch/arm/mach-msm/io.c | 6 ++++
7 files changed, 87 insertions(+), 11 deletions(-)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index c2db187..07d0e74 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -149,6 +149,22 @@ choice
Say Y here if you want the debug print routines to direct
their output to the third serial port on MSM devices.
+ config DEBUG_MSM8660_UART
+ bool "Kernel low-level debugging messages via MSM 8660 UART"
+ depends on ARCH_MSM8X60
+ select MSM_HAS_DEBUG_UART_HS
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the serial port on MSM 8960 devices.
+
+ config DEBUG_MSM8960_UART
+ bool "Kernel low-level debugging messages via MSM 8960 UART"
+ depends on ARCH_MSM8960
+ select MSM_HAS_DEBUG_UART_HS
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to the serial port on MSM 8960 devices.
+
endchoice
config EARLY_PRINTK
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 5b07b61..000ddf0 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -60,6 +60,9 @@ config ARCH_MSM8960
endchoice
+config MSM_HAS_DEBUG_UART_HS
+ bool
+
config MSM_SOC_REV_A
bool
config ARCH_MSM_SCORPIONMP
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
index 43d62c6..2a9f1df 100644
--- a/arch/arm/mach-msm/include/mach/debug-macro.S
+++ b/arch/arm/mach-msm/include/mach/debug-macro.S
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2007 Google, Inc.
+ * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
* Author: Brian Swetland <swetland@google.com>
*
* This software is licensed under the terms of the GNU General Public
@@ -24,17 +25,42 @@
#endif
.endm
- .macro senduart,rd,rx
+ .macro senduart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ @ Write the 1 character to UARTDM_TF
+ str \rd, [\rx, #0x70]
+#else
teq \rx, #0
strne \rd, [\rx, #0x0C]
+#endif
.endm
- .macro waituart,rd,rx
+ .macro waituart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ @ check for TX_EMT in UARTDM_SR
+ ldr \rd, [\rx, #0x08]
+ tst \rd, #0x08
+ bne 1002f
+ @ wait for TXREADY in UARTDM_ISR
+1001: ldr \rd, [\rx, #0x14]
+ tst \rd, #0x80
+ beq 1001b
+1002:
+ @ Clear TX_READY by writing to the UARTDM_CR register
+ mov \rd, #0x300
+ str \rd, [\rx, #0x10]
+ @ Write 0x1 to NCF register
+ mov \rd, #0x1
+ str \rd, [\rx, #0x40]
+ @ UARTDM reg. Read to induce delay
+ ldr \rd, [\rx, #0x08]
+#else
@ wait for TX_READY
1001: ldr \rd, [\rx, #0x08]
tst \rd, #0x04
beq 1001b
+#endif
.endm
- .macro busyuart,rd,rx
+ .macro busyuart, rd, rx
.endm
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
index 3c9d960..800b557 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
@@ -45,4 +45,9 @@
#define MSM8960_TMR0_PHYS 0x0208A000
#define MSM8960_TMR0_SIZE SZ_4K
+#ifdef CONFIG_DEBUG_MSM8960_UART
+#define MSM_DEBUG_UART_BASE 0xE1040000
+#define MSM_DEBUG_UART_PHYS 0x16440000
+#endif
+
#endif
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
index 3b19b8f..54e12ca 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
@@ -62,4 +62,9 @@
#define MSM8X60_TMR0_PHYS 0x02040000
#define MSM8X60_TMR0_SIZE SZ_4K
+#ifdef CONFIG_DEBUG_MSM8660_UART
+#define MSM_DEBUG_UART_BASE 0xE1040000
+#define MSM_DEBUG_UART_PHYS 0x19C40000
+#endif
+
#endif
diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h
index d94292c..ee906e4 100644
--- a/arch/arm/mach-msm/include/mach/uncompress.h
+++ b/arch/arm/mach-msm/include/mach/uncompress.h
@@ -1,6 +1,6 @@
-/* arch/arm/mach-msm/include/mach/uncompress.h
- *
+/*
* Copyright (C) 2007 Google, Inc.
+ * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -14,17 +14,32 @@
*/
#ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
+#define __ASM_ARCH_MSM_UNCOMPRESS_H
-#include "hardware.h"
-#include "linux/io.h"
-#include "mach/msm_iomap.h"
+#include <linux/io.h>
+#include <asm/processor.h>
+#include <mach/msm_iomap.h>
static void putc(int c)
{
#if defined(MSM_DEBUG_UART_PHYS)
- unsigned base = MSM_DEBUG_UART_PHYS;
- while (!(readl(base + 0x08) & 0x04)) ;
- writel(c, base + 0x0c);
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+ /*
+ * Wait for TX_READY to be set; but skip it if we have a
+ * TX underrun.
+ */
+ if (readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x08)
+ while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x14) & 0x80))
+ cpu_relax();
+
+ writel_relaxed(0x300, MSM_DEBUG_UART_PHYS + 0x10);
+ writel_relaxed(0x1, MSM_DEBUG_UART_PHYS + 0x40);
+ writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x70);
+#else
+ while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x04))
+ cpu_relax();
+ writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x0c);
+#endif
#endif
}
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 0bf9502..524d927 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -110,6 +110,9 @@ static struct map_desc msm8x60_io_desc[] __initdata = {
MSM_CHIP_DEVICE(TMR0, MSM8X60),
MSM_DEVICE(ACC),
MSM_DEVICE(GCC),
+#ifdef CONFIG_DEBUG_MSM8660_UART
+ MSM_DEVICE(DEBUG_UART),
+#endif
};
void __init msm_map_msm8x60_io(void)
@@ -124,6 +127,9 @@ static struct map_desc msm8960_io_desc[] __initdata = {
MSM_CHIP_DEVICE(QGIC_CPU, MSM8960),
MSM_CHIP_DEVICE(TMR, MSM8960),
MSM_CHIP_DEVICE(TMR0, MSM8960),
+#ifdef CONFIG_DEBUG_MSM8960_UART
+ MSM_DEVICE(DEBUG_UART),
+#endif
};
void __init msm_map_msm8960_io(void)
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv2 2/2] msm: Support DEBUG_LL on MSM8660 and MSM8960
2011-10-21 4:28 ` Stephen Boyd
@ 2011-10-21 4:37 ` Nicolas Pitre
-1 siblings, 0 replies; 9+ messages in thread
From: Nicolas Pitre @ 2011-10-21 4:37 UTC (permalink / raw)
To: Stephen Boyd; +Cc: David Brown, linux-kernel, linux-arm-msm, linux-arm-kernel
On Thu, 20 Oct 2011, Stephen Boyd wrote:
> Add support for DEBUG_LL on the 8660 and 8960 development boards.
> While we're here, cleanup the uncompress.h code a bit.
>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---
> arch/arm/Kconfig.debug | 16 +++++++++++
> arch/arm/mach-msm/Kconfig | 3 ++
> arch/arm/mach-msm/include/mach/debug-macro.S | 32 ++++++++++++++++++++--
> arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 +++
> arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 +++
> arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++++++++-----
> arch/arm/mach-msm/io.c | 6 ++++
> 7 files changed, 87 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index c2db187..07d0e74 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -149,6 +149,22 @@ choice
> Say Y here if you want the debug print routines to direct
> their output to the third serial port on MSM devices.
>
> + config DEBUG_MSM8660_UART
> + bool "Kernel low-level debugging messages via MSM 8660 UART"
> + depends on ARCH_MSM8X60
> + select MSM_HAS_DEBUG_UART_HS
> + help
> + Say Y here if you want the debug print routines to direct
> + their output to the serial port on MSM 8960 devices.
> +
> + config DEBUG_MSM8960_UART
> + bool "Kernel low-level debugging messages via MSM 8960 UART"
> + depends on ARCH_MSM8960
> + select MSM_HAS_DEBUG_UART_HS
> + help
> + Say Y here if you want the debug print routines to direct
> + their output to the serial port on MSM 8960 devices.
> +
> endchoice
>
> config EARLY_PRINTK
> diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> index 5b07b61..000ddf0 100644
> --- a/arch/arm/mach-msm/Kconfig
> +++ b/arch/arm/mach-msm/Kconfig
> @@ -60,6 +60,9 @@ config ARCH_MSM8960
>
> endchoice
>
> +config MSM_HAS_DEBUG_UART_HS
> + bool
> +
> config MSM_SOC_REV_A
> bool
> config ARCH_MSM_SCORPIONMP
> diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
> index 43d62c6..2a9f1df 100644
> --- a/arch/arm/mach-msm/include/mach/debug-macro.S
> +++ b/arch/arm/mach-msm/include/mach/debug-macro.S
> @@ -1,6 +1,7 @@
> /*
> *
> * Copyright (C) 2007 Google, Inc.
> + * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
> * Author: Brian Swetland <swetland@google.com>
> *
> * This software is licensed under the terms of the GNU General Public
> @@ -24,17 +25,42 @@
> #endif
> .endm
>
> - .macro senduart,rd,rx
> + .macro senduart, rd, rx
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + @ Write the 1 character to UARTDM_TF
> + str \rd, [\rx, #0x70]
> +#else
> teq \rx, #0
> strne \rd, [\rx, #0x0C]
> +#endif
> .endm
>
> - .macro waituart,rd,rx
> + .macro waituart, rd, rx
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + @ check for TX_EMT in UARTDM_SR
> + ldr \rd, [\rx, #0x08]
> + tst \rd, #0x08
> + bne 1002f
> + @ wait for TXREADY in UARTDM_ISR
> +1001: ldr \rd, [\rx, #0x14]
> + tst \rd, #0x80
> + beq 1001b
> +1002:
> + @ Clear TX_READY by writing to the UARTDM_CR register
> + mov \rd, #0x300
> + str \rd, [\rx, #0x10]
> + @ Write 0x1 to NCF register
> + mov \rd, #0x1
> + str \rd, [\rx, #0x40]
> + @ UARTDM reg. Read to induce delay
> + ldr \rd, [\rx, #0x08]
> +#else
> @ wait for TX_READY
> 1001: ldr \rd, [\rx, #0x08]
> tst \rd, #0x04
> beq 1001b
> +#endif
> .endm
>
> - .macro busyuart,rd,rx
> + .macro busyuart, rd, rx
> .endm
> diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> index 3c9d960..800b557 100644
> --- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> +++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> @@ -45,4 +45,9 @@
> #define MSM8960_TMR0_PHYS 0x0208A000
> #define MSM8960_TMR0_SIZE SZ_4K
>
> +#ifdef CONFIG_DEBUG_MSM8960_UART
> +#define MSM_DEBUG_UART_BASE 0xE1040000
> +#define MSM_DEBUG_UART_PHYS 0x16440000
> +#endif
> +
> #endif
> diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> index 3b19b8f..54e12ca 100644
> --- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> +++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> @@ -62,4 +62,9 @@
> #define MSM8X60_TMR0_PHYS 0x02040000
> #define MSM8X60_TMR0_SIZE SZ_4K
>
> +#ifdef CONFIG_DEBUG_MSM8660_UART
> +#define MSM_DEBUG_UART_BASE 0xE1040000
> +#define MSM_DEBUG_UART_PHYS 0x19C40000
> +#endif
> +
> #endif
> diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h
> index d94292c..ee906e4 100644
> --- a/arch/arm/mach-msm/include/mach/uncompress.h
> +++ b/arch/arm/mach-msm/include/mach/uncompress.h
> @@ -1,6 +1,6 @@
> -/* arch/arm/mach-msm/include/mach/uncompress.h
> - *
> +/*
> * Copyright (C) 2007 Google, Inc.
> + * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
> *
> * This software is licensed under the terms of the GNU General Public
> * License version 2, as published by the Free Software Foundation, and
> @@ -14,17 +14,32 @@
> */
>
> #ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
> +#define __ASM_ARCH_MSM_UNCOMPRESS_H
>
> -#include "hardware.h"
> -#include "linux/io.h"
> -#include "mach/msm_iomap.h"
> +#include <linux/io.h>
> +#include <asm/processor.h>
> +#include <mach/msm_iomap.h>
>
> static void putc(int c)
> {
> #if defined(MSM_DEBUG_UART_PHYS)
> - unsigned base = MSM_DEBUG_UART_PHYS;
> - while (!(readl(base + 0x08) & 0x04)) ;
> - writel(c, base + 0x0c);
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + /*
> + * Wait for TX_READY to be set; but skip it if we have a
> + * TX underrun.
> + */
> + if (readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x08)
> + while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x14) & 0x80))
> + cpu_relax();
> +
> + writel_relaxed(0x300, MSM_DEBUG_UART_PHYS + 0x10);
> + writel_relaxed(0x1, MSM_DEBUG_UART_PHYS + 0x40);
> + writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x70);
> +#else
> + while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x04))
> + cpu_relax();
> + writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x0c);
> +#endif
> #endif
> }
>
> diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
> index 0bf9502..524d927 100644
> --- a/arch/arm/mach-msm/io.c
> +++ b/arch/arm/mach-msm/io.c
> @@ -110,6 +110,9 @@ static struct map_desc msm8x60_io_desc[] __initdata = {
> MSM_CHIP_DEVICE(TMR0, MSM8X60),
> MSM_DEVICE(ACC),
> MSM_DEVICE(GCC),
> +#ifdef CONFIG_DEBUG_MSM8660_UART
> + MSM_DEVICE(DEBUG_UART),
> +#endif
> };
>
> void __init msm_map_msm8x60_io(void)
> @@ -124,6 +127,9 @@ static struct map_desc msm8960_io_desc[] __initdata = {
> MSM_CHIP_DEVICE(QGIC_CPU, MSM8960),
> MSM_CHIP_DEVICE(TMR, MSM8960),
> MSM_CHIP_DEVICE(TMR0, MSM8960),
> +#ifdef CONFIG_DEBUG_MSM8960_UART
> + MSM_DEVICE(DEBUG_UART),
> +#endif
> };
>
> void __init msm_map_msm8960_io(void)
> --
> Sent by an employee of the Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHv2 2/2] msm: Support DEBUG_LL on MSM8660 and MSM8960
@ 2011-10-21 4:37 ` Nicolas Pitre
0 siblings, 0 replies; 9+ messages in thread
From: Nicolas Pitre @ 2011-10-21 4:37 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, 20 Oct 2011, Stephen Boyd wrote:
> Add support for DEBUG_LL on the 8660 and 8960 development boards.
> While we're here, cleanup the uncompress.h code a bit.
>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---
> arch/arm/Kconfig.debug | 16 +++++++++++
> arch/arm/mach-msm/Kconfig | 3 ++
> arch/arm/mach-msm/include/mach/debug-macro.S | 32 ++++++++++++++++++++--
> arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 5 +++
> arch/arm/mach-msm/include/mach/msm_iomap-8x60.h | 5 +++
> arch/arm/mach-msm/include/mach/uncompress.h | 31 ++++++++++++++++-----
> arch/arm/mach-msm/io.c | 6 ++++
> 7 files changed, 87 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index c2db187..07d0e74 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -149,6 +149,22 @@ choice
> Say Y here if you want the debug print routines to direct
> their output to the third serial port on MSM devices.
>
> + config DEBUG_MSM8660_UART
> + bool "Kernel low-level debugging messages via MSM 8660 UART"
> + depends on ARCH_MSM8X60
> + select MSM_HAS_DEBUG_UART_HS
> + help
> + Say Y here if you want the debug print routines to direct
> + their output to the serial port on MSM 8960 devices.
> +
> + config DEBUG_MSM8960_UART
> + bool "Kernel low-level debugging messages via MSM 8960 UART"
> + depends on ARCH_MSM8960
> + select MSM_HAS_DEBUG_UART_HS
> + help
> + Say Y here if you want the debug print routines to direct
> + their output to the serial port on MSM 8960 devices.
> +
> endchoice
>
> config EARLY_PRINTK
> diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> index 5b07b61..000ddf0 100644
> --- a/arch/arm/mach-msm/Kconfig
> +++ b/arch/arm/mach-msm/Kconfig
> @@ -60,6 +60,9 @@ config ARCH_MSM8960
>
> endchoice
>
> +config MSM_HAS_DEBUG_UART_HS
> + bool
> +
> config MSM_SOC_REV_A
> bool
> config ARCH_MSM_SCORPIONMP
> diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
> index 43d62c6..2a9f1df 100644
> --- a/arch/arm/mach-msm/include/mach/debug-macro.S
> +++ b/arch/arm/mach-msm/include/mach/debug-macro.S
> @@ -1,6 +1,7 @@
> /*
> *
> * Copyright (C) 2007 Google, Inc.
> + * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
> * Author: Brian Swetland <swetland@google.com>
> *
> * This software is licensed under the terms of the GNU General Public
> @@ -24,17 +25,42 @@
> #endif
> .endm
>
> - .macro senduart,rd,rx
> + .macro senduart, rd, rx
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + @ Write the 1 character to UARTDM_TF
> + str \rd, [\rx, #0x70]
> +#else
> teq \rx, #0
> strne \rd, [\rx, #0x0C]
> +#endif
> .endm
>
> - .macro waituart,rd,rx
> + .macro waituart, rd, rx
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + @ check for TX_EMT in UARTDM_SR
> + ldr \rd, [\rx, #0x08]
> + tst \rd, #0x08
> + bne 1002f
> + @ wait for TXREADY in UARTDM_ISR
> +1001: ldr \rd, [\rx, #0x14]
> + tst \rd, #0x80
> + beq 1001b
> +1002:
> + @ Clear TX_READY by writing to the UARTDM_CR register
> + mov \rd, #0x300
> + str \rd, [\rx, #0x10]
> + @ Write 0x1 to NCF register
> + mov \rd, #0x1
> + str \rd, [\rx, #0x40]
> + @ UARTDM reg. Read to induce delay
> + ldr \rd, [\rx, #0x08]
> +#else
> @ wait for TX_READY
> 1001: ldr \rd, [\rx, #0x08]
> tst \rd, #0x04
> beq 1001b
> +#endif
> .endm
>
> - .macro busyuart,rd,rx
> + .macro busyuart, rd, rx
> .endm
> diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> index 3c9d960..800b557 100644
> --- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> +++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
> @@ -45,4 +45,9 @@
> #define MSM8960_TMR0_PHYS 0x0208A000
> #define MSM8960_TMR0_SIZE SZ_4K
>
> +#ifdef CONFIG_DEBUG_MSM8960_UART
> +#define MSM_DEBUG_UART_BASE 0xE1040000
> +#define MSM_DEBUG_UART_PHYS 0x16440000
> +#endif
> +
> #endif
> diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> index 3b19b8f..54e12ca 100644
> --- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> +++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
> @@ -62,4 +62,9 @@
> #define MSM8X60_TMR0_PHYS 0x02040000
> #define MSM8X60_TMR0_SIZE SZ_4K
>
> +#ifdef CONFIG_DEBUG_MSM8660_UART
> +#define MSM_DEBUG_UART_BASE 0xE1040000
> +#define MSM_DEBUG_UART_PHYS 0x19C40000
> +#endif
> +
> #endif
> diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h
> index d94292c..ee906e4 100644
> --- a/arch/arm/mach-msm/include/mach/uncompress.h
> +++ b/arch/arm/mach-msm/include/mach/uncompress.h
> @@ -1,6 +1,6 @@
> -/* arch/arm/mach-msm/include/mach/uncompress.h
> - *
> +/*
> * Copyright (C) 2007 Google, Inc.
> + * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
> *
> * This software is licensed under the terms of the GNU General Public
> * License version 2, as published by the Free Software Foundation, and
> @@ -14,17 +14,32 @@
> */
>
> #ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
> +#define __ASM_ARCH_MSM_UNCOMPRESS_H
>
> -#include "hardware.h"
> -#include "linux/io.h"
> -#include "mach/msm_iomap.h"
> +#include <linux/io.h>
> +#include <asm/processor.h>
> +#include <mach/msm_iomap.h>
>
> static void putc(int c)
> {
> #if defined(MSM_DEBUG_UART_PHYS)
> - unsigned base = MSM_DEBUG_UART_PHYS;
> - while (!(readl(base + 0x08) & 0x04)) ;
> - writel(c, base + 0x0c);
> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
> + /*
> + * Wait for TX_READY to be set; but skip it if we have a
> + * TX underrun.
> + */
> + if (readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x08)
> + while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x14) & 0x80))
> + cpu_relax();
> +
> + writel_relaxed(0x300, MSM_DEBUG_UART_PHYS + 0x10);
> + writel_relaxed(0x1, MSM_DEBUG_UART_PHYS + 0x40);
> + writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x70);
> +#else
> + while (!(readl_relaxed(MSM_DEBUG_UART_PHYS + 0x08) & 0x04))
> + cpu_relax();
> + writel_relaxed(c, MSM_DEBUG_UART_PHYS + 0x0c);
> +#endif
> #endif
> }
>
> diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
> index 0bf9502..524d927 100644
> --- a/arch/arm/mach-msm/io.c
> +++ b/arch/arm/mach-msm/io.c
> @@ -110,6 +110,9 @@ static struct map_desc msm8x60_io_desc[] __initdata = {
> MSM_CHIP_DEVICE(TMR0, MSM8X60),
> MSM_DEVICE(ACC),
> MSM_DEVICE(GCC),
> +#ifdef CONFIG_DEBUG_MSM8660_UART
> + MSM_DEVICE(DEBUG_UART),
> +#endif
> };
>
> void __init msm_map_msm8x60_io(void)
> @@ -124,6 +127,9 @@ static struct map_desc msm8960_io_desc[] __initdata = {
> MSM_CHIP_DEVICE(QGIC_CPU, MSM8960),
> MSM_CHIP_DEVICE(TMR, MSM8960),
> MSM_CHIP_DEVICE(TMR0, MSM8960),
> +#ifdef CONFIG_DEBUG_MSM8960_UART
> + MSM_DEVICE(DEBUG_UART),
> +#endif
> };
>
> void __init msm_map_msm8960_io(void)
> --
> Sent by an employee of the Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-10-21 4:37 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-21 4:28 [PATCHv2 0/2] Update MSM DEBUG_LL support Stephen Boyd
2011-10-21 4:28 ` Stephen Boyd
2011-10-21 4:28 ` [PATCHv2 1/2] msm: Consolidate and move DEBUG_LL to generic ARM Kconfig Stephen Boyd
2011-10-21 4:28 ` Stephen Boyd
2011-10-21 4:28 ` Stephen Boyd
2011-10-21 4:28 ` [PATCHv2 2/2] msm: Support DEBUG_LL on MSM8660 and MSM8960 Stephen Boyd
2011-10-21 4:28 ` Stephen Boyd
2011-10-21 4:37 ` Nicolas Pitre
2011-10-21 4:37 ` Nicolas Pitre
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.