[PATCH dovetail v12 01/11] riscv: introduce raw console device
Tobias Schaffner <[email protected]> Tue, 28 Jul 2026 13:12:12 +0200
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Tobias Schaffner <[email protected]> --- arch/riscv/kernel/Makefile | 1 + arch/riscv/kernel/raw_printk.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 arch/riscv/kernel/raw_printk.c diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile index cabb99cadfb6..4e310257499a 100644 --- a/arch/riscv/kernel/Makefile +++ b/arch/riscv/kernel/Makefile @@ -104,6 +104,7 @@ obj-$(CONFIG_RISCV_SBI) += sbi.o sbi_ecall.o ifeq ($(CONFIG_RISCV_SBI), y) obj-$(CONFIG_SMP) += sbi-ipi.o obj-$(CONFIG_SMP) += cpu_ops_sbi.o +obj-$(CONFIG_RAW_PRINTK) += raw_printk.o endif obj-$(CONFIG_HOTPLUG_CPU) += cpu-hotplug.o obj-$(CONFIG_PARAVIRT) += paravirt.o diff --git a/arch/riscv/kernel/raw_printk.c b/arch/riscv/kernel/raw_printk.c new file mode 100644 index 000000000000..aa2f287daa29 --- /dev/null +++ b/arch/riscv/kernel/raw_printk.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Raw console device for RISC-V using SBI debug console (DBCN). + * + * Copyright (C) 2026 Siemens AG + * Author: Tobias Schaffner <[email protected]>. + */ + +#include <linux/kernel.h> +#include <linux/console.h> +#include <linux/init.h> +#include <asm/sbi.h> + +static void raw_console_write(struct console *co, + const char *s, unsigned int count) +{ + sbi_debug_console_write(s, count); +} + +static struct console raw_console = { + .name = "rawcon", + .write_raw = raw_console_write, + .flags = CON_PRINTBUFFER | CON_ENABLED, + .index = -1, +}; + +static int __init raw_console_init(void) +{ + register_console(&raw_console); + + return 0; +} +console_initcall(raw_console_init); -- 2.43.0