Skip to content

Commit

Permalink
libplatsupport: fix CR/LF handling
Browse files Browse the repository at this point in the history
Fix the bug that LF CR is printed instead of CR LF.

Signed-off-by: Axel Heider <[email protected]>
  • Loading branch information
Axel Heider committed Jan 12, 2024
1 parent e3583e9 commit 50dd1a5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
8 changes: 5 additions & 3 deletions libplatsupport/src/plat/fvp/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,15 @@ int uart_getchar(ps_chardevice_t *d)

int uart_putchar(ps_chardevice_t *d, int c)
{
while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0);

*REG_PTR(d->vaddr, UARTDR) = c;
if (c == '\n' && (d->flags & SERIAL_AUTO_CR)) {
uart_putchar(d, '\r');
}

while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0) {
/* busy loop */
}
*REG_PTR(d->vaddr, UARTDR) = c;

return c;
}

Expand Down
8 changes: 5 additions & 3 deletions libplatsupport/src/plat/hikey/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@ int uart_getchar(ps_chardevice_t *d)

int uart_putchar(ps_chardevice_t *d, int c)
{
while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0);

*REG_PTR(d->vaddr, UARTDR) = c;
if (c == '\n' && (d->flags & SERIAL_AUTO_CR)) {
uart_putchar(d, '\r');
}

while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0) {
/* busy loop */
}
*REG_PTR(d->vaddr, UARTDR) = c;

return c;
}

Expand Down
8 changes: 5 additions & 3 deletions libplatsupport/src/plat/qemu-arm-virt/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,15 @@ int uart_getchar(ps_chardevice_t *d)

int uart_putchar(ps_chardevice_t *d, int c)
{
while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0);

*REG_PTR(d->vaddr, UARTDR) = c;
if (c == '\n' && (d->flags & SERIAL_AUTO_CR)) {
uart_putchar(d, '\r');
}

while ((*REG_PTR(d->vaddr, UARTFR) & PL011_UARTFR_TXFF) != 0)
/* busy loop */
}
*REG_PTR(d->vaddr, UARTDR) = c;

return c;
}

Expand Down

0 comments on commit 50dd1a5

Please sign in to comment.