diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-07-07 11:18:34 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-08-25 12:11:10 -0400 |
commit | 97bd1a48adb87c2a68194b80227af56ca4df4cad (patch) | |
tree | 0634e062b96db322a85bf8272464e73a4d27b640 /arch/arm | |
parent | f2acf003cd399994172a5ec342b47741841746f1 (diff) |
ARM: debug: move davinci debug to generic 8250 code
Davinci's debugging is just a copy of the old 8250_32 code with a
different base address. Incorporate this into the generic 8250
debug code.
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig.debug | 16 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/debug-macro.S | 65 |
2 files changed, 15 insertions, 66 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index cd2f88e22609..0498a3a311f0 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -119,6 +119,7 @@ choice | |||
119 | config DEBUG_DAVINCI_DA8XX_UART1 | 119 | config DEBUG_DAVINCI_DA8XX_UART1 |
120 | bool "Kernel low-level debugging on DaVinci DA8XX using UART1" | 120 | bool "Kernel low-level debugging on DaVinci DA8XX using UART1" |
121 | depends on ARCH_DAVINCI_DA8XX | 121 | depends on ARCH_DAVINCI_DA8XX |
122 | select DEBUG_UART_8250 | ||
122 | help | 123 | help |
123 | Say Y here if you want the debug print routines to direct | 124 | Say Y here if you want the debug print routines to direct |
124 | their output to UART1 serial port on DaVinci DA8XX devices. | 125 | their output to UART1 serial port on DaVinci DA8XX devices. |
@@ -126,6 +127,7 @@ choice | |||
126 | config DEBUG_DAVINCI_DA8XX_UART2 | 127 | config DEBUG_DAVINCI_DA8XX_UART2 |
127 | bool "Kernel low-level debugging on DaVinci DA8XX using UART2" | 128 | bool "Kernel low-level debugging on DaVinci DA8XX using UART2" |
128 | depends on ARCH_DAVINCI_DA8XX | 129 | depends on ARCH_DAVINCI_DA8XX |
130 | select DEBUG_UART_8250 | ||
129 | help | 131 | help |
130 | Say Y here if you want the debug print routines to direct | 132 | Say Y here if you want the debug print routines to direct |
131 | their output to UART2 serial port on DaVinci DA8XX devices. | 133 | their output to UART2 serial port on DaVinci DA8XX devices. |
@@ -133,6 +135,7 @@ choice | |||
133 | config DEBUG_DAVINCI_DMx_UART0 | 135 | config DEBUG_DAVINCI_DMx_UART0 |
134 | bool "Kernel low-level debugging on DaVinci DMx using UART0" | 136 | bool "Kernel low-level debugging on DaVinci DMx using UART0" |
135 | depends on ARCH_DAVINCI_DMx | 137 | depends on ARCH_DAVINCI_DMx |
138 | select DEBUG_UART_8250 | ||
136 | help | 139 | help |
137 | Say Y here if you want the debug print routines to direct | 140 | Say Y here if you want the debug print routines to direct |
138 | their output to UART0 serial port on DaVinci DMx devices. | 141 | their output to UART0 serial port on DaVinci DMx devices. |
@@ -140,6 +143,7 @@ choice | |||
140 | config DEBUG_DAVINCI_TNETV107X_UART1 | 143 | config DEBUG_DAVINCI_TNETV107X_UART1 |
141 | bool "Kernel low-level debugging on DaVinci TNETV107x using UART1" | 144 | bool "Kernel low-level debugging on DaVinci TNETV107x using UART1" |
142 | depends on ARCH_DAVINCI_TNETV107X | 145 | depends on ARCH_DAVINCI_TNETV107X |
146 | select DEBUG_UART_8250 | ||
143 | help | 147 | help |
144 | Say Y here if you want the debug print routines to direct | 148 | Say Y here if you want the debug print routines to direct |
145 | their output to UART1 serial port on DaVinci TNETV107X | 149 | their output to UART1 serial port on DaVinci TNETV107X |
@@ -901,11 +905,15 @@ config DEBUG_UART_8250 | |||
901 | 905 | ||
902 | config DEBUG_UART_PHYS | 906 | config DEBUG_UART_PHYS |
903 | hex "Physical base address of debug UART" | 907 | hex "Physical base address of debug UART" |
908 | default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0 | ||
904 | default 0x01c28000 if DEBUG_SUNXI_UART0 | 909 | default 0x01c28000 if DEBUG_SUNXI_UART0 |
905 | default 0x01c28400 if DEBUG_SUNXI_UART1 | 910 | default 0x01c28400 if DEBUG_SUNXI_UART1 |
911 | default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1 | ||
912 | default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2 | ||
906 | default 0x02530c00 if DEBUG_KEYSTONE_UART0 | 913 | default 0x02530c00 if DEBUG_KEYSTONE_UART0 |
907 | default 0x02531000 if DEBUG_KEYSTONE_UART1 | 914 | default 0x02531000 if DEBUG_KEYSTONE_UART1 |
908 | default 0x03010fe0 if ARCH_RPC | 915 | default 0x03010fe0 if ARCH_RPC |
916 | default 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1 | ||
909 | default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ | 917 | default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ |
910 | DEBUG_VEXPRESS_UART0_CA9 | 918 | DEBUG_VEXPRESS_UART0_CA9 |
911 | default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT | 919 | default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT |
@@ -982,9 +990,13 @@ config DEBUG_UART_VIRT | |||
982 | default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 | 990 | default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 |
983 | default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 | 991 | default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 |
984 | default 0xfec02000 if DEBUG_SOCFPGA_UART | 992 | default 0xfec02000 if DEBUG_SOCFPGA_UART |
993 | default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 | ||
994 | default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 | ||
995 | default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 | ||
985 | default 0xfed12000 if ARCH_KIRKWOOD | 996 | default 0xfed12000 if ARCH_KIRKWOOD |
986 | default 0xfedc0000 if ARCH_EP93XX | 997 | default 0xfedc0000 if ARCH_EP93XX |
987 | default 0xfee003f8 if FOOTBRIDGE | 998 | default 0xfee003f8 if FOOTBRIDGE |
999 | default 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1 | ||
988 | default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART | 1000 | default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART |
989 | default 0xfee36000 if DEBUG_HIGHBANK_UART | 1001 | default 0xfee36000 if DEBUG_HIGHBANK_UART |
990 | default 0xfee82340 if ARCH_IOP13XX | 1002 | default 0xfee82340 if ARCH_IOP13XX |
@@ -1007,7 +1019,9 @@ config DEBUG_UART_8250_WORD | |||
1007 | depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 | 1019 | depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 |
1008 | depends on DEBUG_UART_8250_SHIFT >= 2 | 1020 | depends on DEBUG_UART_8250_SHIFT >= 2 |
1009 | default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \ | 1021 | default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \ |
1010 | ARCH_KEYSTONE | 1022 | ARCH_KEYSTONE || \ |
1023 | DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \ | ||
1024 | DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1 | ||
1011 | 1025 | ||
1012 | config DEBUG_UART_8250_FLOW_CONTROL | 1026 | config DEBUG_UART_8250_FLOW_CONTROL |
1013 | bool "Enable flow control for 8250 UART" | 1027 | bool "Enable flow control for 8250 UART" |
diff --git a/arch/arm/mach-davinci/include/mach/debug-macro.S b/arch/arm/mach-davinci/include/mach/debug-macro.S deleted file mode 100644 index b18b8ebc6508..000000000000 --- a/arch/arm/mach-davinci/include/mach/debug-macro.S +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | /* | ||
2 | * Debugging macro for DaVinci | ||
3 | * | ||
4 | * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> | ||
5 | * | ||
6 | * 2007 (c) MontaVista Software, Inc. This file is licensed under | ||
7 | * the terms of the GNU General Public License version 2. This program | ||
8 | * is licensed "as is" without any warranty of any kind, whether express | ||
9 | * or implied. | ||
10 | */ | ||
11 | |||
12 | /* Modifications | ||
13 | * Jan 2009 Chaithrika U S Added senduart, busyuart, waituart | ||
14 | * macros, based on debug-8250.S file | ||
15 | * but using 32-bit accesses required for | ||
16 | * some davinci devices. | ||
17 | */ | ||
18 | |||
19 | #include <linux/serial_reg.h> | ||
20 | |||
21 | #include <mach/serial.h> | ||
22 | |||
23 | #define UART_SHIFT 2 | ||
24 | |||
25 | #if defined(CONFIG_DEBUG_DAVINCI_DMx_UART0) | ||
26 | #define UART_BASE DAVINCI_UART0_BASE | ||
27 | #elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART1) | ||
28 | #define UART_BASE DA8XX_UART1_BASE | ||
29 | #elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART2) | ||
30 | #define UART_BASE DA8XX_UART2_BASE | ||
31 | #elif defined(CONFIG_DEBUG_DAVINCI_TNETV107X_UART1) | ||
32 | #define UART_BASE TNETV107X_UART2_BASE | ||
33 | #define UART_VIRTBASE TNETV107X_UART2_VIRT | ||
34 | #else | ||
35 | #error "Select a specifc port for DEBUG_LL" | ||
36 | #endif | ||
37 | |||
38 | #ifndef UART_VIRTBASE | ||
39 | #define UART_VIRTBASE IO_ADDRESS(UART_BASE) | ||
40 | #endif | ||
41 | |||
42 | .macro addruart, rp, rv, tmp | ||
43 | ldr \rp, =UART_BASE | ||
44 | ldr \rv, =UART_VIRTBASE | ||
45 | .endm | ||
46 | |||
47 | .macro senduart,rd,rx | ||
48 | str \rd, [\rx, #UART_TX << UART_SHIFT] | ||
49 | .endm | ||
50 | |||
51 | .macro busyuart,rd,rx | ||
52 | 1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT] | ||
53 | and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE | ||
54 | teq \rd, #UART_LSR_TEMT | UART_LSR_THRE | ||
55 | bne 1002b | ||
56 | .endm | ||
57 | |||
58 | .macro waituart,rd,rx | ||
59 | #ifdef FLOW_CONTROL | ||
60 | 1001: ldr \rd, [\rx, #UART_MSR << UART_SHIFT] | ||
61 | tst \rd, #UART_MSR_CTS | ||
62 | beq 1001b | ||
63 | #endif | ||
64 | .endm | ||
65 | |||