[U-Boot] [PATCH] debug uart: don't print before initialization

Simon Goldschmidt simon.k.r.goldschmidt at gmail.com
Tue Oct 9 05:06:10 UTC 2018


On Tue, Oct 9, 2018 at 5:41 AM Simon Glass <sjg at chromium.org> wrote:
>
> Hi,
>
> On 7 October 2018 at 11:52, Simon Goldschmidt
> <simon.k.r.goldschmidt at gmail.com> wrote:
> > At least on socfpga gen5, _debug_uart_putc() can be called
> > before debug_uart_init(), which leaves us stuck in an
> > infinite loop in the ns16550 debug uart driver.
>
> Can you fix that? That is a bug.

I already posted a patch for that but it was rejected:
http://patchwork.ozlabs.org/patch/955765/

As patman automatically choses the CC addresses, you weren't
on the CC list back then, since that patch covered different filfes.


Simon

>
> >
> > Since this prevents debugging startup problems instead
> > of helping, let's add a field to 'gd' that prevents
> > calling the _debug_uart_putc() until debug_uart_init()
> > has been called.
> >
> > Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
> > ---
> >
> >  include/asm-generic/global_data.h |  3 +++
> >  include/debug_uart.h              | 19 ++++++++++++++-----
> >  2 files changed, 17 insertions(+), 5 deletions(-)
> >
> > diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
> > index c83fc01b76..9de7f48476 100644
> > --- a/include/asm-generic/global_data.h
> > +++ b/include/asm-generic/global_data.h
> > @@ -122,6 +122,9 @@ typedef struct global_data {
> >         struct list_head log_head;      /* List of struct log_device */
> >         int log_fmt;                    /* Mask containing log format info */
> >  #endif
> > +#ifdef CONFIG_DEBUG_UART
> > +       int debug_uart_initialized;     /* No print before debug_uart_init */
> > +#endif
>
> There is no requirement that gd be set up before the debug UART is
> running. It certainly isn't on the few platforms I know about.
>
> Regards,
> Simon


More information about the U-Boot mailing list