aboutsummaryrefslogtreecommitdiff
path: root/drivers/serial/serial_sbi.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-09-05 09:04:49 -0400
committerTom Rini <trini@konsulko.com>2023-09-05 09:04:49 -0400
commite7b7dca28f57e9331388550597c0687d3bfaded0 (patch)
treedba6f74cca2f0eb5726d838795b08fe87c7276bd /drivers/serial/serial_sbi.c
parent493fd3363f6da6a784514657d689c7cda0f390d5 (diff)
parentdfe08374943c0e898fcfaf7327f69e0fb56b7d23 (diff)
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
+ Implement OpenSBI DBCN extension for early debug console + Fixes for VisionFive2 board + Fix timer missing + Fix L2 LIM issue + Enable PCIE auto enumeration to support USB and NVMe by default + Set eth0 mac address properly + Add __noreturn attribute to spl_invoke_opensbi
Diffstat (limited to 'drivers/serial/serial_sbi.c')
-rw-r--r--drivers/serial/serial_sbi.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/serial/serial_sbi.c b/drivers/serial/serial_sbi.c
index b9f35ed36e..a51a96c1ef 100644
--- a/drivers/serial/serial_sbi.c
+++ b/drivers/serial/serial_sbi.c
@@ -3,6 +3,8 @@
#include <debug_uart.h>
#include <asm/sbi.h>
+#ifdef CONFIG_SBI_V01
+
static inline void _debug_uart_init(void)
{
}
@@ -13,4 +15,22 @@ static inline void _debug_uart_putc(int c)
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