All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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.