diff options
Diffstat (limited to 'bsps/shared/dev/serial/zynq-uart-polled.c')
-rw-r--r-- | bsps/shared/dev/serial/zynq-uart-polled.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bsps/shared/dev/serial/zynq-uart-polled.c b/bsps/shared/dev/serial/zynq-uart-polled.c index 74e7255ec2..95c51dea11 100644 --- a/bsps/shared/dev/serial/zynq-uart-polled.c +++ b/bsps/shared/dev/serial/zynq-uart-polled.c @@ -144,6 +144,12 @@ void zynq_uart_initialize(rtems_termios_device_context *base) regs->control = ZYNQ_UART_CONTROL_RXEN | ZYNQ_UART_CONTROL_TXEN | ZYNQ_UART_CONTROL_RSTTO; + + /* + * Some ZynqMP UARTs have a hardware bug that causes TX/RX logic restarts to + * require a kick after baud rate registers are initialized. + */ + zynq_uart_write_polled(base, 0); } int zynq_uart_read_polled(rtems_termios_device_context *base) |