u-boot/drivers/serial/serial_sbi.c
Heinrich Schuchardt dfe0837494 risc-v: implement DBCN based debug console
Use the DBCN SBI extension to implement a debug console.
Make it the default for S-mode RISC-V.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2023-09-05 10:53:55 +08:00

36 lines
606 B
C

// SPDX-License-Identifier: GPL-2.0+
#include <debug_uart.h>
#include <asm/sbi.h>
#ifdef CONFIG_SBI_V01
static inline void _debug_uart_init(void)
{
}
static inline void _debug_uart_putc(int c)
{
if (CONFIG_IS_ENABLED(RISCV_SMODE))
sbi_console_putchar(c);
}
#else
static int sbi_dbcn_available;
static inline void _debug_uart_init(void)
{
if (CONFIG_IS_ENABLED(RISCV_SMODE))
sbi_dbcn_available = sbi_probe_extension(SBI_EXT_DBCN);
}
static inline void _debug_uart_putc(int ch)
{
if (CONFIG_IS_ENABLED(RISCV_SMODE) && sbi_dbcn_available)
sbi_dbcn_write_byte(ch);
}
#endif
DEBUG_UART_FUNCS