aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/drivers')
-rw-r--r--payloads/libpayload/drivers/cbmem_console.c10
-rw-r--r--payloads/libpayload/drivers/serial/8250.c2
-rw-r--r--payloads/libpayload/drivers/serial/tegra.c2
-rw-r--r--payloads/libpayload/drivers/video/video.c1
4 files changed, 10 insertions, 5 deletions
diff --git a/payloads/libpayload/drivers/cbmem_console.c b/payloads/libpayload/drivers/cbmem_console.c
index 0d3b35fccb..687344400c 100644
--- a/payloads/libpayload/drivers/cbmem_console.c
+++ b/payloads/libpayload/drivers/cbmem_console.c
@@ -40,7 +40,7 @@ static struct cbmem_console *cbmem_console_p;
static struct console_output_driver cbmem_console_driver =
{
- .putchar = &cbmem_console_putc
+ .write = &cbmem_console_write,
};
void cbmem_console_init(void)
@@ -50,11 +50,11 @@ void cbmem_console_init(void)
console_add_output_driver(&cbmem_console_driver);
}
-void cbmem_console_putc(unsigned int data)
+void cbmem_console_write(const void *buffer, size_t count)
{
- // Bail out if the buffer is full.
- if (cbmem_console_p->cursor >= cbmem_console_p->size)
+ if (cbmem_console_p->cursor + count >= cbmem_console_p->size)
return;
- cbmem_console_p->body[cbmem_console_p->cursor++] = data;
+ memcpy(cbmem_console_p->body + cbmem_console_p->cursor, buffer, count);
+ cbmem_console_p->cursor += count;
}
diff --git a/payloads/libpayload/drivers/serial/8250.c b/payloads/libpayload/drivers/serial/8250.c
index a4c1b1a2ab..0651f5201f 100644
--- a/payloads/libpayload/drivers/serial/8250.c
+++ b/payloads/libpayload/drivers/serial/8250.c
@@ -137,6 +137,8 @@ void serial_putchar(unsigned int c)
return;
while ((serial_read_reg(0x05) & 0x20) == 0) ;
serial_write_reg(c, 0x00);
+ if (c == '\n')
+ serial_putchar('\r');
}
int serial_havechar(void)
diff --git a/payloads/libpayload/drivers/serial/tegra.c b/payloads/libpayload/drivers/serial/tegra.c
index bcf7b1925d..fa5ff16526 100644
--- a/payloads/libpayload/drivers/serial/tegra.c
+++ b/payloads/libpayload/drivers/serial/tegra.c
@@ -65,6 +65,8 @@ void serial_putchar(unsigned int c)
{
while (!(readb(&uart_regs->lsr) & TEGRA_UART_LSR_THRE));
writeb(c, &uart_regs->thr);
+ if (c == '\n')
+ serial_putchar('\r');
}
int serial_havechar(void)
diff --git a/payloads/libpayload/drivers/video/video.c b/payloads/libpayload/drivers/video/video.c
index ed47234345..ce0374d6a3 100644
--- a/payloads/libpayload/drivers/video/video.c
+++ b/payloads/libpayload/drivers/video/video.c
@@ -141,6 +141,7 @@ void video_console_putchar(unsigned int ch)
break;
case '\n':
+ cursorx = 0;
cursory++;
break;