Use ARM revision register to set debug serial port base. Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> --- include/asm-arm/arch-omap/debug-macro.S | 40 ++++++++++++++++++++++-------- 1 files changed, 29 insertions(+), 11 deletions(-) diff --git a/include/asm-arm/arch-omap/debug-macro.S b/include/asm-arm/arch-omap/debug-macro.S index 3866e04..a7ca8c8 100644 --- a/include/asm-arm/arch-omap/debug-macro.S +++ b/include/asm-arm/arch-omap/debug-macro.S @@ -12,34 +12,51 @@ */ .macro addruart,rx - mrc p15, 0, \rx, c1, c0 + + /* Detect omap */ + mrc p15, 0, \rx, c0, c0, 0 @ get processor revision + and \rx, \rx, #0x000f0000 @ only check architecture + cmp \rx, #0x00060000 @ is v6? + beq 1000f @ found 925 or 926 (omap1) + cmp \rx, #0x00070000 @ is v7? + beq 2000f @ found arm11 (omap2) + cmp \rx, #0x000f0000 @ is cortex? + beq 3000f @ found cortex (omap3) + +1000: /* Found omap1 */ + mrc p15, 0, \rx, c1, c0 @ get control register tst \rx, #1 @ MMU enabled? -#ifdef CONFIG_ARCH_OMAP1 moveq \rx, #0xff000000 @ physical base address movne \rx, #0xfe000000 @ virtual base - orr \rx, \rx, #0x00fb0000 -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 - orr \rx, \rx, #0x00009000 @ UART 3 -#endif + orr \rx, \rx, #0x00fb0000 @ UART 1 #if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) orr \rx, \rx, #0x00000800 @ UART 2 & 3 #endif +#ifdef CONFIG_OMAP_LL_DEBUG_UART3 + orr \rx, \rx, #0x00009000 @ UART 3 +#endif + b 9999f @ goto out -#elif CONFIG_ARCH_OMAP2 +2000: /* Found omap2 */ + mrc p15, 0, \rx, c1, c0 @ get control register + tst \rx, #1 @ MMU enabled? moveq \rx, #0x48000000 @ physical base address movne \rx, #0xd8000000 @ virtual base - orr \rx, \rx, #0x0006a000 + orr \rx, \rx, #0x0006a000 @ UART 1 #ifdef CONFIG_OMAP_LL_DEBUG_UART2 add \rx, \rx, #0x00002000 @ UART 2 #endif #ifdef CONFIG_OMAP_LL_DEBUG_UART3 add \rx, \rx, #0x00004000 @ UART 3 #endif + b 9999f @ goto out -#elif CONFIG_ARCH_OMAP3 +3000: /* Found omap3 */ + mrc p15, 0, \rx, c1, c0 @ get control register + tst \rx, #1 @ MMU enabled? moveq \rx, #0x48000000 @ physical base address movne \rx, #0xd8000000 @ virtual base - orr \rx, \rx, #0x0006a000 + orr \rx, \rx, #0x0006a000 @ UART 1 #ifdef CONFIG_OMAP_LL_DEBUG_UART2 add \rx, \rx, #0x00002000 @ UART 2 #endif @@ -47,7 +64,8 @@ add \rx, \rx, #0x00fb0000 @ UART 3 add \rx, \rx, #0x00006000 #endif -#endif + +9999: .endm .macro senduart,rd,rx -- 1.5.3.6 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html