diff --git a/drivers/cadence/uart/aarch64/cdns_console.S b/drivers/cadence/uart/aarch64/cdns_console.S index d1995e3e6..4c1a80efc 100644 --- a/drivers/cadence/uart/aarch64/cdns_console.S +++ b/drivers/cadence/uart/aarch64/cdns_console.S @@ -105,15 +105,15 @@ func console_cdns_core_putc cmp w0, #0xA b.ne 2f 1: - /* Check if the transmit FIFO is full */ + /* Check if the transmit FIFO is empty */ ldr w2, [x1, #R_UART_SR] - tbnz w2, #UART_SR_INTR_TFUL_BIT, 1b + tbz w2, #UART_SR_INTR_TEMPTY_BIT, 1b mov w2, #0xD str w2, [x1, #R_UART_TX] 2: - /* Check if the transmit FIFO is full */ + /* Check if the transmit FIFO is empty */ ldr w2, [x1, #R_UART_SR] - tbnz w2, #UART_SR_INTR_TFUL_BIT, 2b + tbz w2, #UART_SR_INTR_TEMPTY_BIT, 2b str w0, [x1, #R_UART_TX] ret endfunc console_cdns_core_putc diff --git a/include/drivers/cadence/cdns_uart.h b/include/drivers/cadence/cdns_uart.h index 46ba4663e..30ca910b9 100644 --- a/include/drivers/cadence/cdns_uart.h +++ b/include/drivers/cadence/cdns_uart.h @@ -21,6 +21,7 @@ #define R_UART_SR 0x2C #define UART_SR_INTR_REMPTY_BIT 1 #define UART_SR_INTR_TFUL_BIT 4 +#define UART_SR_INTR_TEMPTY_BIT 3 #define R_UART_TX 0x30 #define R_UART_RX 0x30