diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/cbmem_console.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c index 8e190d7264..2faa5d5801 100644 --- a/src/lib/cbmem_console.c +++ b/src/lib/cbmem_console.c @@ -171,16 +171,27 @@ POSTCAR_CBMEM_INIT_HOOK(cbmemc_reinit) void cbmem_dump_console_to_uart(void) { u32 cursor; + unsigned int console_index; + if (!current_console) return; - uart_init(0); - if (current_console->cursor & OVERFLOW) + console_index = get_uart_for_console(); + + uart_init(console_index); + if (current_console->cursor & OVERFLOW) { for (cursor = current_console->cursor & CURSOR_MASK; - cursor < current_console->size; cursor++) - uart_tx_byte(0, current_console->body[cursor]); - for (cursor = 0; cursor < (current_console->cursor & CURSOR_MASK); cursor++) - uart_tx_byte(0, current_console->body[cursor]); + cursor < current_console->size; cursor++) { + if (current_console->body[cursor] == '\n') + uart_tx_byte(console_index, '\r'); + uart_tx_byte(console_index, current_console->body[cursor]); + } + } + for (cursor = 0; cursor < (current_console->cursor & CURSOR_MASK); cursor++) { + if (current_console->body[cursor] == '\n') + uart_tx_byte(console_index, '\r'); + uart_tx_byte(console_index, current_console->body[cursor]); + } } #endif |