Just implementing `debug_output` (and adding "serial_debug" to the cmdline) makes the kernel print its first assertion failure!
@@ -216,6 +216,8 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init([[maybe_unused]] BootInfo con
multiboot_modules_count = 0;
// FIXME: Read the /chosen/bootargs property.
kernel_cmdline = RPi::Mailbox::the().query_kernel_command_line(s_command_line_buffer);
+#elif ARCH(RISCV64)
+ kernel_cmdline = "serial_debug"sv;
#endif
setup_serial_debug();
@@ -5,13 +5,15 @@
*/
#include <Kernel/Arch/DebugOutput.h>
+#include <Kernel/Arch/riscv64/SBI.h>
#include <Kernel/Library/Assertions.h>
namespace Kernel {
-void debug_output(char)
+void debug_output(char c)
{
- TODO_RISCV64();
+ // FIXME: add extension probing support to SBI.cpp to check which debug console extensions are available
+ (void)SBI::Legacy::console_putchar(c);
}