Index: kernel/genarch/src/drivers/pl011/pl011.c
===================================================================
--- kernel/genarch/src/drivers/pl011/pl011.c	(revision 28a5ebdea900783081bd23e40f685b6b0479c63d)
+++ kernel/genarch/src/drivers/pl011/pl011.c	(revision a22c62f1db9663e7cd90692aef7ca712ddc48044)
@@ -56,5 +56,5 @@
 }
 
-static void pl011_uart_putuchar(outdev_t *dev, char32_t ch)
+static void pl011_uart_write(outdev_t *dev, const char *s, size_t n)
 {
 	pl011_uart_t *uart = dev->data;
@@ -64,15 +64,17 @@
 		return;
 
-	if (!ascii_check(ch))
-		pl011_uart_sendb(uart, U_SPECIAL);
-	else {
-		if (ch == '\n')
-			pl011_uart_sendb(uart, (uint8_t) '\r');
-		pl011_uart_sendb(uart, (uint8_t) ch);
+	const char *top = s + n;
+	assert(top >= s);
+
+	for (; s < top; s++) {
+		if (*s == '\n')
+			pl011_uart_sendb(uart, '\r');
+
+		pl011_uart_sendb(uart, (uint8_t) *s);
 	}
 }
 
 static outdev_operations_t pl011_uart_ops = {
-	.write = pl011_uart_putuchar,
+	.write = pl011_uart_write,
 	.redraw = NULL,
 	.scroll_up = NULL,
