[U-Boot] [PATCH] serial: ns16550: fix debug uart putc called before init

Simon Glass sjg at chromium.org
Thu Jan 10 12:57:04 UTC 2019


On Wed, 9 Jan 2019 at 12:35, Simon Goldschmidt
<simon.k.r.goldschmidt at gmail.com> wrote:
>
> If _debug_uart_putc() is called before _debug_uart_init(), the
> ns16550 debug uart driver hangs in a tight loop waiting for the
> tx FIFO to get empty.
>
> As this can happen via a printf sneaking in before the port calls
> debug_uart_init(), introduce a config option to ignore characters
> before the debug uart is initialized.
>
> This is done by reading the baudrate divisor and aborting if is zero.
>
> The Kconfig option is required as reading the baudrate divisor does
> not seem to work for all ns16500 compatibles (which is why the last
> attempt on this has been reverted in 1a67969a99).
>
> Tested on socfpga_cyclone5_socrates.
>
> Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
> ---
>
>  drivers/serial/Kconfig   | 12 ++++++++++++
>  drivers/serial/ns16550.c | 20 ++++++++++++++++++--
>  2 files changed, 30 insertions(+), 2 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list