From: Sahara <keun-o.p...@windriver.com> Since OMAP low-level debug code places data in the .data section, The symbol DEBUG_UNCOMPRESS was defined with !DEBUG_OMAP2PLUS_UART. This patch removes the part using data section in debug/omap2plus.S, so DEBUG_UNCOMPRESS is now available on OMAP system.
Signed-off-by: Sahara <keun-o.p...@windriver.com> Tested-by: Afzal Mohammed <afzal.mohd...@gmail.com> (on am335x beagle bone white) --- arch/arm/Kconfig.debug | 3 +- arch/arm/include/debug/omap2plus.S | 96 ++++++++++-------------------------- 2 files changed, 27 insertions(+), 72 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index b11ad54..c0ad3e4 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1220,8 +1220,7 @@ config DEBUG_UART_8250_FLOW_CONTROL config DEBUG_UNCOMPRESS bool depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG - default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ - (!DEBUG_TEGRA_UART || !ZBOOT_ROM) + default y if DEBUG_LL && (!DEBUG_TEGRA_UART || !ZBOOT_ROM) help This option influences the normal decompressor output for multiplatform kernels. Normally, multiplatform kernels disable diff --git a/arch/arm/include/debug/omap2plus.S b/arch/arm/include/debug/omap2plus.S index 6d867ae..0b7ec89 100644 --- a/arch/arm/include/debug/omap2plus.S +++ b/arch/arm/include/debug/omap2plus.S @@ -58,115 +58,71 @@ #define UART_OFFSET(addr) ((addr) & 0x00ffffff) - .pushsection .data -omap_uart_phys: .word 0 -omap_uart_virt: .word 0 -omap_uart_lsr: .word 0 - .popsection - .macro addruart, rp, rv, tmp - /* Use omap_uart_phys/virt if already configured */ -10: adr \rp, 99f @ get effective addr of 99f - ldr \rv, [\rp] @ get absolute addr of 99f - sub \rv, \rv, \rp @ offset between the two - ldr \rp, [\rp, #4] @ abs addr of omap_uart_phys - sub \tmp, \rp, \rv @ make it effective - ldr \rp, [\tmp, #0] @ omap_uart_phys - ldr \rv, [\tmp, #4] @ omap_uart_virt - cmp \rp, #0 @ is port configured? - cmpne \rv, #0 - bne 100f @ already configured - /* Configure the UART offset from the phys/virt base */ -#ifdef CONFIG_DEBUG_OMAP2UART1 +#if defined(CONFIG_DEBUG_OMAP2UART1) mov \rp, #UART_OFFSET(OMAP2_UART1_BASE) @ omap2/3/4 b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP2UART2 +#elif defined(CONFIG_DEBUG_OMAP2UART2) mov \rp, #UART_OFFSET(OMAP2_UART2_BASE) @ omap2/3/4 b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP2UART3 +#elif defined(CONFIG_DEBUG_OMAP2UART3) mov \rp, #UART_OFFSET(OMAP2_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP3UART3 +#elif defined(CONFIG_DEBUG_OMAP3UART3) mov \rp, #UART_OFFSET(OMAP3_UART1_BASE) add \rp, \rp, #0x00fb0000 add \rp, \rp, #0x00006000 @ OMAP3_UART3_BASE b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP4UART3 +#elif defined(CONFIG_DEBUG_OMAP4UART3) mov \rp, #UART_OFFSET(OMAP4_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP3UART4 +#elif defined(CONFIG_DEBUG_OMAP3UART4) mov \rp, #UART_OFFSET(OMAP3_UART1_BASE) add \rp, \rp, #0x00fb0000 add \rp, \rp, #0x00028000 @ OMAP3_UART4_BASE b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP4UART4 +#elif defined(CONFIG_DEBUG_OMAP4UART4) mov \rp, #UART_OFFSET(OMAP4_UART4_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART1 +#elif defined(CONFIG_DEBUG_TI81XXUART1) mov \rp, #UART_OFFSET(TI81XX_UART1_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART2 +#elif defined(CONFIG_DEBUG_TI81XXUART2) mov \rp, #UART_OFFSET(TI81XX_UART2_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART3 +#elif defined(CONFIG_DEBUG_TI81XXUART3) mov \rp, #UART_OFFSET(TI81XX_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_AM33XXUART1 +#elif defined(CONFIG_DEBUG_AM33XXUART1) ldr \rp, =AM33XX_UART1_BASE and \rp, \rp, #0x00ffffff b 97f -#endif -#ifdef CONFIG_DEBUG_ZOOM_UART +#elif defined(CONFIG_DEBUG_ZOOM_UART) ldr \rp, =ZOOM_UART_BASE - str \rp, [\tmp, #0] @ omap_uart_phys - ldr \rp, =ZOOM_UART_VIRT - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << ZOOM_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr + ldr \rv, =ZOOM_UART_VIRT + mov \tmp, #(UART_LSR << ZOOM_PORT_SHIFT) + b 100f +#else +#error "Error! No proper debug option is defined." #endif - b 10b /* AM33XX: Store both phys and virt address for the uart */ 97: add \rp, \rp, #0x44000000 @ phys base - str \rp, [\tmp, #0] @ omap_uart_phys - sub \rp, \rp, #0x44000000 @ phys base - add \rp, \rp, #0xf9000000 @ virt base - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << OMAP_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr + sub \rv, \rp, #0x44000000 @ phys base + add \rv, \rv, #0xf9000000 @ virt base + mov \tmp, #(UART_LSR << OMAP_PORT_SHIFT) - b 10b + b 100f /* Store both phys and virt address for the uart */ 98: add \rp, \rp, #0x48000000 @ phys base - str \rp, [\tmp, #0] @ omap_uart_phys - sub \rp, \rp, #0x48000000 @ phys base - add \rp, \rp, #0xfa000000 @ virt base - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << OMAP_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr - - b 10b - - .align -99: .word . - .word omap_uart_phys - .ltorg - -100: /* Pass the UART_LSR reg address */ - ldr \tmp, [\tmp, #8] @ omap_uart_lsr + sub \rv, \rp, #0x48000000 @ phys base + add \rv, \rv, #0xfa000000 @ virt base + mov \tmp, #(UART_LSR << OMAP_PORT_SHIFT) + +100: /* Add the UART_LSR reg address */ add \rp, \rp, \tmp add \rv, \rv, \tmp .endm -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/