[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