From: Sam Day <[email protected]> At least on UARTDM 1.3, I was noticing the early UART debug banner getting corrupted. It turns out this is because U-Boot was re-initializing the UARTDM block and writing to it before it had finished shifting out the FIFO from the previous bootloader. Waiting for TX_EMPTY in the status register consistently fixes the issue.
Signed-off-by: Sam Day <[email protected]> --- drivers/serial/serial_msm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c index 10948e2aede..db085d68a0d 100644 --- a/drivers/serial/serial_msm.c +++ b/drivers/serial/serial_msm.c @@ -351,6 +351,8 @@ static inline void _debug_uart_init(void) * - HMIBSC: GCC_BLSP1_UART1_APPS_CLK */ //apq8016_clk_init_uart(0x1800000, <uart_clk_id>); + while (!(readl(init_serial_data.base + UARTDM_SR) & UARTDM_SR_TX_EMPTY)) + ; uart_dm_init(&init_serial_data); } -- 2.54.0

