From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv2] ARM: debug: uncompress debug support for omap2plus
Date: Tue, 2 Sep 2014 09:37:18 -0700 [thread overview]
Message-ID: <20140902163718.GA11766@atomide.com> (raw)
In-Reply-To: <1409041717-8673-1-git-send-email-kpark3469@gmail.com>
* kpark3469 at gmail.com <kpark3469@gmail.com> [140826 01:29]:
> From: Sahara <keun-o.park@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.
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@windriver.com>
> Tested-by: Afzal Mohammed <afzal.mohd.ma@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
>
next prev parent reply other threads:[~2014-09-02 16:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-26 8:28 [PATCHv2] ARM: debug: uncompress debug support for omap2plus kpark3469 at gmail.com
2014-09-02 16:37 ` Tony Lindgren [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-08-26 7:28 kpark3469 at gmail.com
2014-08-26 7:58 ` Russell King - ARM Linux
2014-09-03 22:04 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140902163718.GA11766@atomide.com \
--to=tony@atomide.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).