[U-Boot] [PATCH V2] AT91: Small fix on AT91 USART initialization code

Reinhard Meyer u-boot at emk-elektronik.de
Mon Aug 1 16:39:07 CEST 2011


Dear Hong Xu,
> Before reset dbgu transmitter, we just wait TXEMPTY to drain the
> transmitter register. If not doing this, we may sometimes see several
> weird characters from DBGU.
>
> A short delay is also added to make sure the new serial settings are
> settled.
>
> Signed-off-by: Hong Xu<hong.xu at atmel.com>
> ---
> Change since V1:
> - Fix comment for easy reading
>
>   drivers/serial/atmel_usart.c |    8 +++++++-
>   1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c
> index e326b2b..6f9c2de 100644
> --- a/drivers/serial/atmel_usart.c
> +++ b/drivers/serial/atmel_usart.c
> @@ -49,17 +49,23 @@ int serial_init(void)
>   {
>   	atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
>
> +	/* Just in case: drain transmitter register */
> +	while (!(readl(&usart->csr)&  USART3_BIT(TXEMPTY)))
> +		;
> +

You still have not addressed my concern about a possible hang situation here!
I rather have _some_ weird characters than an apparently dead board...
When do we have the possibility of weird characters anyway?
Only if a preloader makes output and transfers to u-boot before its output
has been flushed. Any other situations?

Best Regards,
Reinhard


More information about the U-Boot mailing list