TI816X: Add low level debug support
authorHemant Pedanekar <hemantp@ti.com>
Tue, 15 Feb 2011 17:36:17 +0000 (23:06 +0530)
committerTony Lindgren <tony@atomide.com>
Wed, 16 Feb 2011 16:31:53 +0000 (08:31 -0800)
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>
arch/arm/mach-omap2/include/mach/debug-macro.S
arch/arm/plat-omap/include/plat/serial.h
arch/arm/plat-omap/include/plat/uncompress.h

index 6a4d413..e1b0f17 100644 (file)
@@ -69,6 +69,12 @@ omap_uart_lsr:       .word   0
                beq     34f                     @ configure OMAP3UART4
                cmp     \rp, #OMAP4UART4        @ only on 44xx
                beq     44f                     @ configure OMAP4UART4
+               cmp     \rp, #TI816XUART1       @ ti816x UART offsets different
+               beq     81f                     @ configure UART1
+               cmp     \rp, #TI816XUART2       @ ti816x UART offsets different
+               beq     82f                     @ configure UART2
+               cmp     \rp, #TI816XUART3       @ ti816x UART offsets different
+               beq     83f                     @ configure UART3
                cmp     \rp, #ZOOM_UART         @ only on zoom2/3
                beq     95f                     @ configure ZOOM_UART
 
@@ -91,6 +97,12 @@ omap_uart_lsr:       .word   0
                b       98f
 44:            mov     \rp, #UART_OFFSET(OMAP4_UART4_BASE)
                b       98f
+81:            mov     \rp, #UART_OFFSET(TI816X_UART1_BASE)
+               b       98f
+82:            mov     \rp, #UART_OFFSET(TI816X_UART2_BASE)
+               b       98f
+83:            mov     \rp, #UART_OFFSET(TI816X_UART3_BASE)
+               b       98f
 95:            ldr     \rp, =ZOOM_UART_BASE
                mrc     p15, 0, \rv, c1, c0
                tst     \rv, #1                 @ MMU enabled?
index a1a118d..8061695 100644 (file)
 #define OMAP4_UART3_BASE       0x48020000
 #define OMAP4_UART4_BASE       0x4806e000
 
+/* TI816X serial ports */
+#define TI816X_UART1_BASE      0x48020000
+#define TI816X_UART2_BASE      0x48022000
+#define TI816X_UART3_BASE      0x48024000
+
 /* External port on Zoom2/3 */
 #define ZOOM_UART_BASE         0x10000000
 #define ZOOM_UART_VIRT         0xfa400000
@@ -81,6 +86,9 @@
 #define OMAP4UART2             OMAP2UART2
 #define OMAP4UART3             43
 #define OMAP4UART4             44
+#define TI816XUART1            81
+#define TI816XUART2            82
+#define TI816XUART3            83
 #define ZOOM_UART              95              /* Only on zoom2/3 */
 
 /* This is only used by 8250.c for omap1510 */
index ad98b85..30b891c 100644 (file)
@@ -93,6 +93,10 @@ static inline void flush(void)
 #define DEBUG_LL_ZOOM(mach)                                            \
        _DEBUG_LL_ENTRY(mach, ZOOM_UART_BASE, ZOOM_PORT_SHIFT, ZOOM_UART)
 
+#define DEBUG_LL_TI816X(p, mach)                                       \
+       _DEBUG_LL_ENTRY(mach, TI816X_UART##p##_BASE, OMAP_PORT_SHIFT,   \
+               TI816XUART##p)
+
 static inline void __arch_decomp_setup(unsigned long arch_id)
 {
        int port = 0;
@@ -166,6 +170,9 @@ static inline void __arch_decomp_setup(unsigned long arch_id)
                DEBUG_LL_ZOOM(omap_zoom2);
                DEBUG_LL_ZOOM(omap_zoom3);
 
+               /* TI8168 base boards using UART3 */
+               DEBUG_LL_TI816X(3, ti8168evm);
+
        } while (0);
 }