Re: [PATCH 1/1] tty/serial: RISC-V SBI earlycon via DBCN extension

From: Anup Patel
Date: Wed Nov 15 2023 - 11:22:51 EST


On Wed, Nov 15, 2023 at 7:01 PM Heinrich Schuchardt
<heinrich.schuchardt@xxxxxxxxxxxxx> wrote:
>
> Up to now an SBI based early console was limited to SBI version 0.1.
> With the DBCN SBI extension we can provide an early console on systems that
> have a recent SBI implementation.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@xxxxxxxxxxxxx>

There is already a series in-flight adding SBI DBCN support.
Refer, https://lore.kernel.org/lkml/20231020072140.900967-1-apatel@xxxxxxxxxxxxxxxx/

Regards,
Anup

> ---
> arch/riscv/kernel/sbi.c | 14 ++++++++++++++
> drivers/tty/serial/Kconfig | 1 -
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
> index 5a62ed1da453..6e1644a95bb7 100644
> --- a/arch/riscv/kernel/sbi.c
> +++ b/arch/riscv/kernel/sbi.c
> @@ -195,6 +195,20 @@ static void sbi_set_power_off(void)
> pm_power_off = sbi_shutdown;
> }
> #else
> +
> +/**
> + * sbi_console_putchar() - Writes given character to the console device.
> + * @ch: The data to be written to the console.
> + *
> + * Return: None
> + */
> +void sbi_console_putchar(int ch)
> +{
> + sbi_ecall(SBI_EXT_DBCN, SBI_EXT_DBCN_CONSOLE_WRITE_BYTE,
> + ch, 0, 0, 0, 0, 0);
> +}
> +EXPORT_SYMBOL(sbi_console_putchar);
> +
> static void __sbi_set_timer_v01(uint64_t stime_value)
> {
> pr_warn("Timer extension is not available in SBI v%lu.%lu\n",
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 732c893c8d16..454c2a612389 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -87,7 +87,6 @@ config SERIAL_EARLYCON_SEMIHOST
>
> config SERIAL_EARLYCON_RISCV_SBI
> bool "Early console using RISC-V SBI"
> - depends on RISCV_SBI_V01
> select SERIAL_CORE
> select SERIAL_CORE_CONSOLE
> select SERIAL_EARLYCON
> --
> 2.40.1
>