[PATCH 7/8] arm: mvebu: add another earlyprintk Kconfig option

Jason Cooper jason at lakedaemon.net
Wed Jun 5 09:45:52 EDT 2013


On Wed, Jun 05, 2013 at 09:05:00AM +0200, Thomas Petazzoni wrote:
> In order to support both old and new bootloaders, we add a new Kconfig
> option for the earlyprintk UART selection. The existing option allows
> to work with old bootloaders (that keep the internal registers mapped
> at 0xd0000000), while the newly introduced option allows to work with
> new bootloaders (that remap the internal registers at 0xf1000000).
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
>  arch/arm/Kconfig.debug         | 30 ++++++++++++++++++++++++++++--
>  arch/arm/include/debug/mvebu.S |  5 +++++
>  2 files changed, 33 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index 1d41908..e6a6ab1 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -303,12 +303,37 @@ choice
>  		  their output to the serial port on MSM 8960 devices.
>  
>  	config DEBUG_MVEBU_UART

Perhaps we should change this to DEBUG_MVEBU_UART_LEGACY?

> -		bool "Kernel low-level debugging messages via MVEBU UART"
> +		bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)"
>  		depends on ARCH_MVEBU
>  		help
>  		  Say Y here if you want kernel low-level debugging support
>  		  on MVEBU based platforms.
>  
> +		  This option should be used with the old bootloaders
> +		  that left the internal registers mapped at
> +		  0xd0000000. As of today, this is the case on
> +		  platforms such as the Globalscale Mirabox or the
> +		  Plathome OpenBlocks AX3, when using the original
> +		  bootloader.
> +
> +		  If the wrong DEBUG_MVEBU_UART* option is selected,
> +		  when u-boot hands over to the kernel, the system
> +		  silently crashes, with no serial output at all.
> +
> +	config DEBUG_MVEBU_UART_ALTERNATE

And this to DEBUG_MVEBU_UART?

> +		bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)"

and remove '(new bootloaders)...

> +		depends on ARCH_MVEBU
> +		help
> +		  Say Y here if you want kernel low-level debugging support
> +		  on MVEBU based platforms.
> +
> +		  This option should be used with the new bootloaders
> +		  that remap the internal registers at 0xf1000000.
> +
> +		  If the wrong DEBUG_MVEBU_UART* option is selected,
> +		  when u-boot hands over to the kernel, the system
> +		  silently crashes, with no serial output at all.
> +
>  	config DEBUG_NOMADIK_UART
>  		bool "Kernel low-level debugging messages via NOMADIK UART"
>  		depends on ARCH_NOMADIK
> @@ -632,7 +657,8 @@ config DEBUG_LL_INCLUDE
>  				 DEBUG_IMX51_UART || \
>  				 DEBUG_IMX53_UART ||\
>  				 DEBUG_IMX6Q_UART
> -	default "debug/mvebu.S" if DEBUG_MVEBU_UART
> +	default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
> +				   DEBUG_MVEBU_UART_ALTERNATE
>  	default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
>  	default "debug/nomadik.S" if DEBUG_NOMADIK_UART
>  	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
> diff --git a/arch/arm/include/debug/mvebu.S b/arch/arm/include/debug/mvebu.S
> index df191af..6517311 100644
> --- a/arch/arm/include/debug/mvebu.S
> +++ b/arch/arm/include/debug/mvebu.S
> @@ -11,7 +11,12 @@
>   * published by the Free Software Foundation.
>  */
>  
> +#ifdef CONFIG_DEBUG_MVEBU_UART_ALTERNATE
> +#define ARMADA_370_XP_REGS_PHYS_BASE	0xf1000000
> +#else
>  #define ARMADA_370_XP_REGS_PHYS_BASE	0xd0000000
> +#endif

And then switch this logic.

thx,

Jason.

> +
>  #define ARMADA_370_XP_REGS_VIRT_BASE	0xfec00000
>  
>  	.macro	addruart, rp, rv, tmp
> -- 
> 1.8.1.2
> 



More information about the linux-arm-kernel mailing list