[U-Boot] [PATCH v3 4/7] arm: serial: Add ability to use pre-initialized UARTs

Simon Glass sjg at chromium.org
Fri Aug 14 20:56:18 CEST 2015


Hi,

On 13 August 2015 at 09:14, Sergey Temerkhanov <s.temerkhanov at gmail.com> wrote:
> On some systems, UART initialization is performed before running U-Boot.
> This commit allows to skip UART re-initializaion on those systems
>
> Signed-off-by: Sergey Temerkhanov <s.temerkhanov at gmail.com>
> Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla at cavium.com>
>
> ---
>
> Changes in v3:
> - Added __used keyword
>
> Changes in v2: None
>
>  drivers/serial/serial_pl01x.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)

Can you please use driver model for this board? Then you can add a
device tree option instead of another #ifdef. We should not be
updating the non-DM version of this code.

>
> diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
> index ad503af..f40c3ac 100644
> --- a/drivers/serial/serial_pl01x.c
> +++ b/drivers/serial/serial_pl01x.c
> @@ -71,7 +71,7 @@ static int pl01x_tstc(struct pl01x_regs *regs)
>         return !(readl(&regs->fr) & UART_PL01x_FR_RXFE);
>  }
>
> -static int pl01x_generic_serial_init(struct pl01x_regs *regs,
> +static __used int pl01x_generic_serial_init(struct pl01x_regs *regs,
>                                      enum pl01x_type type)
>  {
>         switch (type) {
> @@ -124,8 +124,9 @@ static int pl011_set_line_control(struct pl01x_regs *regs)
>         return 0;
>  }
>
> -static int pl01x_generic_setbrg(struct pl01x_regs *regs, enum pl01x_type type,
> -                               int clock, int baudrate)
> +static int __used pl01x_generic_setbrg(struct pl01x_regs *regs,
> +                                      enum pl01x_type type,
> +                                      int clock, int baudrate)
>  {
>         switch (type) {
>         case TYPE_PL010: {
> @@ -215,8 +216,10 @@ static void pl01x_serial_init_baud(int baudrate)
>  #endif
>         base_regs = (struct pl01x_regs *)port[CONFIG_CONS_INDEX];
>
> +#ifndef CONFIG_PL010_SERIAL_PREINIT
>         pl01x_generic_serial_init(base_regs, pl01x_type);
>         pl01x_generic_setbrg(base_regs, pl01x_type, clock, baudrate);
> +#endif
>  }
>
>  /*
> --
> 2.2.0
>

Regards,
Simon


More information about the U-Boot mailing list