
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 Xuhong.xu@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