* kpark3469@xxxxxxxxx <kpark3469@xxxxxxxxx> [140826 01:29]: > From: Sahara <keun-o.park@xxxxxxxxxxxxx> > > 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. Hmm the plan is to switch over to using the standard DEBUG_LL_UART_8250 code and remove the runtime detection. That will simplify things quite a bit and probably means this patch won't be needed AFAIK. Care to take a look at doing that instead? See for example "[PATCH v9 5/9] arm: omap1: Migrate debug_ll macros to use 8250.S". Regards, Tony > Signed-off-by: Sahara <keun-o.park@xxxxxxxxxxxxx> > Tested-by: Afzal Mohammed <afzal.mohd.ma@xxxxxxxxx> (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-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html