diff options
author | Kinsey Moore <kinsey.moore@oarcorp.com> | 2021-03-12 09:59:40 -0600 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2021-04-19 10:51:02 -0500 |
commit | 3ea43bc9e7e1ace798534fabc40326f69f9b18e8 (patch) | |
tree | 2cc65701a92e4914a3d9fe5990aede08d7300479 /bsps/aarch64 | |
parent | rtems: Document rtems_semaphore_obtain() errors (diff) | |
download | rtems-3ea43bc9e7e1ace798534fabc40326f69f9b18e8.tar.bz2 |
bsps/xilinx-zynqmp: Avoid constant UART reinit
Constantly reinitializing the Cadence UART on every character output
causes data corruption/loss on some ZynqMP hardware. Only initialize
the UART once for early output and give it a kick on startup.
Diffstat (limited to 'bsps/aarch64')
-rw-r--r-- | bsps/aarch64/xilinx-zynqmp/console/console.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bsps/aarch64/xilinx-zynqmp/console/console.c b/bsps/aarch64/xilinx-zynqmp/console/console.c index 84e158d3f6..9886a117dc 100644 --- a/bsps/aarch64/xilinx-zynqmp/console/console.c +++ b/bsps/aarch64/xilinx-zynqmp/console/console.c @@ -112,6 +112,12 @@ static void zynqmp_debug_console_early_init(char c) &zynqmp_uart_instances[BSP_CONSOLE_MINOR].base; zynq_uart_initialize(base); + BSP_output_char = zynqmp_debug_console_out; + /* + * Some ZynqMP UARTs have a hardware bug that causes TX/RX logic restarts to + * require a kick after baud rate registers are initialized. + */ + zynqmp_debug_console_out(0); zynqmp_debug_console_out(c); } |