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

Anup Patel apatel at ventanamicro.com
Wed Nov 15 08:22:34 PST 2023


On Wed, Nov 15, 2023 at 7:01 PM Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> 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 at canonical.com>

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

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
>



More information about the linux-riscv mailing list