[PATCH] sunxi: support boot console on uart1 for sun8i

Andre Przywara andre.przywara at arm.com
Sat Feb 13 18:40:10 CET 2021


On Fri, 12 Feb 2021 15:08:23 +0100
Tobias Schramm <tobleminer at gmail.com> wrote:

Hi Tobias,

> From: Tobias Schramm <t.schramm at manjaro.org>
> 
> This commit adds support for using uart1 as boot console on sun8i.

Which particular SoC or board is this triggered by?

From the SoCs listed as belonging to the MACH_SUN8I "family", I don't
see the R40 and V3s having UART1 muxed on PortG, only A23, A33, H3, H5,
and A83T have.
So can you restrict the conditions?

...

> 
> Signed-off-by: Tobias Schramm <t.schramm at manjaro.org>
> ---
>  arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
>  arch/arm/mach-sunxi/board.c            | 4 ++++
>  include/configs/sunxi-common.h         | 2 ++
>  3 files changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
> index de77bf638e..2969a530ae 100644
> --- a/arch/arm/include/asm/arch-sunxi/gpio.h
> +++ b/arch/arm/include/asm/arch-sunxi/gpio.h
> @@ -190,6 +190,7 @@ enum sunxi_gpio_number {
>  #define SUN5I_GPG_SDC1		2
>  #define SUN6I_GPG_SDC1		2
>  #define SUN8I_GPG_SDC1		2
> +#define SUN8I_GPG_UART1		2
>  #define SUN6I_GPG_TWI3		2
>  #define SUN5I_GPG_UART1		4
>  
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index ae6bc656d9..febec0ae03 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -144,6 +144,10 @@ static int gpio_init(void)
>  	sunxi_gpio_set_cfgpin(SUNXI_GPL(2), SUN8I_GPL_R_UART);
>  	sunxi_gpio_set_cfgpin(SUNXI_GPL(3), SUN8I_GPL_R_UART);
>  	sunxi_gpio_set_pull(SUNXI_GPL(3), SUNXI_GPIO_PULL_UP);
> +#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN8I)
> +	sunxi_gpio_set_cfgpin(SUNXI_GPG(6), SUN8I_GPG_UART1);
> +	sunxi_gpio_set_cfgpin(SUNXI_GPG(7), SUN8I_GPG_UART1);
> +	sunxi_gpio_set_pull(SUNXI_GPL(7), SUNXI_GPIO_PULL_UP);

This should be SUNXI_GPG(7).

>  #else
>  #error Unsupported console port number. Please fix pin mux settings in board.c
>  #endif
> diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
> index 000f386470..19f0026888 100644
> --- a/include/configs/sunxi-common.h
> +++ b/include/configs/sunxi-common.h
> @@ -251,6 +251,8 @@ extern int soft_i2c_gpio_scl;
>  #define OF_STDOUT_PATH		"/soc at 01c00000/serial at 01c28800:115200"
>  #elif CONFIG_CONS_INDEX == 5 && defined(CONFIG_MACH_SUN8I)
>  #define OF_STDOUT_PATH		"/soc at 01c00000/serial at 01f02800:115200"
> +#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN8I)
> +#define OF_STDOUT_PATH		"/soc at 01c00000/serial at 01c28400:115200"

The leading zeroes in there make me suspicious that this has been
broken for a while.
And also it looks like all(?) board DTs have a stdout-path
property already anyway.
So I'd recommend to leave this out, I will probably send a patch to
remove this altogether.

Cheers,
Andre

>  #else
>  #error Unsupported console port nr. Please fix stdout-path in sunxi-common.h.
>  #endif



More information about the U-Boot mailing list