diff options
author | Hemant Pedanekar <hemantp@ti.com> | 2011-02-15 12:36:17 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2011-02-16 11:31:53 -0500 |
commit | 4d887a250d6294d4e17851da46d6eab4de83c91e (patch) | |
tree | 1822f2708901e28f49ef6393e0d7fd5e29948148 /arch | |
parent | 2c87fb2e644d9141c8723a44a320bb5850790b67 (diff) |
TI816X: Add low level debug support
This patch adds support for low level debugging on TI816X boards. Currently the
support for UART3 console on TI816X EVM is added.
Signed-off-by: Hemant Pedanekar <hemantp@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/include/mach/debug-macro.S | 12 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/serial.h | 8 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/uncompress.h | 7 |
3 files changed, 27 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/include/mach/debug-macro.S b/arch/arm/mach-omap2/include/mach/debug-macro.S index 6a4d4136002e..e1b0f17b0927 100644 --- a/arch/arm/mach-omap2/include/mach/debug-macro.S +++ b/arch/arm/mach-omap2/include/mach/debug-macro.S | |||
@@ -69,6 +69,12 @@ omap_uart_lsr: .word 0 | |||
69 | beq 34f @ configure OMAP3UART4 | 69 | beq 34f @ configure OMAP3UART4 |
70 | cmp \rp, #OMAP4UART4 @ only on 44xx | 70 | cmp \rp, #OMAP4UART4 @ only on 44xx |
71 | beq 44f @ configure OMAP4UART4 | 71 | beq 44f @ configure OMAP4UART4 |
72 | cmp \rp, #TI816XUART1 @ ti816x UART offsets different | ||
73 | beq 81f @ configure UART1 | ||
74 | cmp \rp, #TI816XUART2 @ ti816x UART offsets different | ||
75 | beq 82f @ configure UART2 | ||
76 | cmp \rp, #TI816XUART3 @ ti816x UART offsets different | ||
77 | beq 83f @ configure UART3 | ||
72 | cmp \rp, #ZOOM_UART @ only on zoom2/3 | 78 | cmp \rp, #ZOOM_UART @ only on zoom2/3 |
73 | beq 95f @ configure ZOOM_UART | 79 | beq 95f @ configure ZOOM_UART |
74 | 80 | ||
@@ -91,6 +97,12 @@ omap_uart_lsr: .word 0 | |||
91 | b 98f | 97 | b 98f |
92 | 44: mov \rp, #UART_OFFSET(OMAP4_UART4_BASE) | 98 | 44: mov \rp, #UART_OFFSET(OMAP4_UART4_BASE) |
93 | b 98f | 99 | b 98f |
100 | 81: mov \rp, #UART_OFFSET(TI816X_UART1_BASE) | ||
101 | b 98f | ||
102 | 82: mov \rp, #UART_OFFSET(TI816X_UART2_BASE) | ||
103 | b 98f | ||
104 | 83: mov \rp, #UART_OFFSET(TI816X_UART3_BASE) | ||
105 | b 98f | ||
94 | 95: ldr \rp, =ZOOM_UART_BASE | 106 | 95: ldr \rp, =ZOOM_UART_BASE |
95 | mrc p15, 0, \rv, c1, c0 | 107 | mrc p15, 0, \rv, c1, c0 |
96 | tst \rv, #1 @ MMU enabled? | 108 | tst \rv, #1 @ MMU enabled? |
diff --git a/arch/arm/plat-omap/include/plat/serial.h b/arch/arm/plat-omap/include/plat/serial.h index a1a118d052ef..8061695aa523 100644 --- a/arch/arm/plat-omap/include/plat/serial.h +++ b/arch/arm/plat-omap/include/plat/serial.h | |||
@@ -51,6 +51,11 @@ | |||
51 | #define OMAP4_UART3_BASE 0x48020000 | 51 | #define OMAP4_UART3_BASE 0x48020000 |
52 | #define OMAP4_UART4_BASE 0x4806e000 | 52 | #define OMAP4_UART4_BASE 0x4806e000 |
53 | 53 | ||
54 | /* TI816X serial ports */ | ||
55 | #define TI816X_UART1_BASE 0x48020000 | ||
56 | #define TI816X_UART2_BASE 0x48022000 | ||
57 | #define TI816X_UART3_BASE 0x48024000 | ||
58 | |||
54 | /* External port on Zoom2/3 */ | 59 | /* External port on Zoom2/3 */ |
55 | #define ZOOM_UART_BASE 0x10000000 | 60 | #define ZOOM_UART_BASE 0x10000000 |
56 | #define ZOOM_UART_VIRT 0xfa400000 | 61 | #define ZOOM_UART_VIRT 0xfa400000 |
@@ -81,6 +86,9 @@ | |||
81 | #define OMAP4UART2 OMAP2UART2 | 86 | #define OMAP4UART2 OMAP2UART2 |
82 | #define OMAP4UART3 43 | 87 | #define OMAP4UART3 43 |
83 | #define OMAP4UART4 44 | 88 | #define OMAP4UART4 44 |
89 | #define TI816XUART1 81 | ||
90 | #define TI816XUART2 82 | ||
91 | #define TI816XUART3 83 | ||
84 | #define ZOOM_UART 95 /* Only on zoom2/3 */ | 92 | #define ZOOM_UART 95 /* Only on zoom2/3 */ |
85 | 93 | ||
86 | /* This is only used by 8250.c for omap1510 */ | 94 | /* This is only used by 8250.c for omap1510 */ |
diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h index ad98b85cae21..30b891c4a93f 100644 --- a/arch/arm/plat-omap/include/plat/uncompress.h +++ b/arch/arm/plat-omap/include/plat/uncompress.h | |||
@@ -93,6 +93,10 @@ static inline void flush(void) | |||
93 | #define DEBUG_LL_ZOOM(mach) \ | 93 | #define DEBUG_LL_ZOOM(mach) \ |
94 | _DEBUG_LL_ENTRY(mach, ZOOM_UART_BASE, ZOOM_PORT_SHIFT, ZOOM_UART) | 94 | _DEBUG_LL_ENTRY(mach, ZOOM_UART_BASE, ZOOM_PORT_SHIFT, ZOOM_UART) |
95 | 95 | ||
96 | #define DEBUG_LL_TI816X(p, mach) \ | ||
97 | _DEBUG_LL_ENTRY(mach, TI816X_UART##p##_BASE, OMAP_PORT_SHIFT, \ | ||
98 | TI816XUART##p) | ||
99 | |||
96 | static inline void __arch_decomp_setup(unsigned long arch_id) | 100 | static inline void __arch_decomp_setup(unsigned long arch_id) |
97 | { | 101 | { |
98 | int port = 0; | 102 | int port = 0; |
@@ -166,6 +170,9 @@ static inline void __arch_decomp_setup(unsigned long arch_id) | |||
166 | DEBUG_LL_ZOOM(omap_zoom2); | 170 | DEBUG_LL_ZOOM(omap_zoom2); |
167 | DEBUG_LL_ZOOM(omap_zoom3); | 171 | DEBUG_LL_ZOOM(omap_zoom3); |
168 | 172 | ||
173 | /* TI8168 base boards using UART3 */ | ||
174 | DEBUG_LL_TI816X(3, ti8168evm); | ||
175 | |||
169 | } while (0); | 176 | } while (0); |
170 | } | 177 | } |
171 | 178 | ||