From: Tony Lindgren <tony@atomide.com>
To: kpark3469@gmail.com
Cc: linux@arm.linux.org.uk, keun-o.park@windriver.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, afzal.mohd.ma@gmail.com,
linux-omap@vger.kernel.org
Subject: Re: [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@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
>
WARNING: multiple messages have this Message-ID (diff)
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: 10+ 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-08-26 8:28 ` kpark3469
2014-09-02 16:37 ` Tony Lindgren [this message]
2014-09-02 16:37 ` Tony Lindgren
-- strict thread matches above, loose matches on Subject: below --
2014-08-26 7:28 kpark3469 at gmail.com
2014-08-26 7:28 ` kpark3469
2014-08-26 7:58 ` Russell King - ARM Linux
2014-08-26 7:58 ` Russell King - ARM Linux
2014-09-03 22:04 ` Tony Lindgren
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=afzal.mohd.ma@gmail.com \
--cc=keun-o.park@windriver.com \
--cc=kpark3469@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.