From 22aea9f6594045fdb29de966d6c712af03f1c915 Mon Sep 17 00:00:00 2001 From: Timon Kruiper Date: Tue, 7 Jun 2022 16:57:07 +0200 Subject: [PATCH] Kernel: Add logic to RPi UART driver to emit CR when encountering LF This makes sure that the debug message are properly aligned when running the kernel bare-metal on a Raspberry Pi. While we are here, also move the function out of line. --- Kernel/Arch/aarch64/RPi/UART.cpp | 10 ++++++++++ Kernel/Arch/aarch64/RPi/UART.h | 6 +----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Kernel/Arch/aarch64/RPi/UART.cpp b/Kernel/Arch/aarch64/RPi/UART.cpp index 59257afd7c2..70bc77e06da 100644 --- a/Kernel/Arch/aarch64/RPi/UART.cpp +++ b/Kernel/Arch/aarch64/RPi/UART.cpp @@ -128,6 +128,16 @@ void UART::send(u32 c) m_registers->data = c; } +void UART::print_str(char const* s, size_t length) +{ + for (size_t i = 0; i < length; ++i) { + char character = *s++; + if (character == '\n') + send('\r'); + send(character); + } +} + u32 UART::receive() { wait_until_we_can_receive(); diff --git a/Kernel/Arch/aarch64/RPi/UART.h b/Kernel/Arch/aarch64/RPi/UART.h index 9479ca1f13b..d20137f1a4f 100644 --- a/Kernel/Arch/aarch64/RPi/UART.h +++ b/Kernel/Arch/aarch64/RPi/UART.h @@ -22,11 +22,7 @@ public: void send(u32 c); u32 receive(); - void print_str(char const* s, size_t length) - { - for (size_t i = 0; i < length; ++i) - send(*s++); - } + void print_str(char const*, size_t); private: UART();