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 | |
| 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>
| -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 | |||
