aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHemant Pedanekar <hemantp@ti.com>2011-02-15 12:36:17 -0500
committerTony Lindgren <tony@atomide.com>2011-02-16 11:31:53 -0500
commit4d887a250d6294d4e17851da46d6eab4de83c91e (patch)
tree1822f2708901e28f49ef6393e0d7fd5e29948148 /arch
parent2c87fb2e644d9141c8723a44a320bb5850790b67 (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.S12
-rw-r--r--arch/arm/plat-omap/include/plat/serial.h8
-rw-r--r--arch/arm/plat-omap/include/plat/uncompress.h7
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
9244: mov \rp, #UART_OFFSET(OMAP4_UART4_BASE) 9844: mov \rp, #UART_OFFSET(OMAP4_UART4_BASE)
93 b 98f 99 b 98f
10081: mov \rp, #UART_OFFSET(TI816X_UART1_BASE)
101 b 98f
10282: mov \rp, #UART_OFFSET(TI816X_UART2_BASE)
103 b 98f
10483: mov \rp, #UART_OFFSET(TI816X_UART3_BASE)
105 b 98f
9495: ldr \rp, =ZOOM_UART_BASE 10695: 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
96static inline void __arch_decomp_setup(unsigned long arch_id) 100static 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