mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-07 15:56:59 +02:00
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>
This commit is contained in:
parent
d14222e7c1
commit
dfe0837494
@ -218,6 +218,7 @@ config DEBUG_UART
|
|||||||
choice
|
choice
|
||||||
prompt "Select which UART will provide the debug UART"
|
prompt "Select which UART will provide the debug UART"
|
||||||
depends on DEBUG_UART
|
depends on DEBUG_UART
|
||||||
|
default DEBUG_SBI_CONSOLE if RISCV_SMODE
|
||||||
default DEBUG_UART_NS16550
|
default DEBUG_UART_NS16550
|
||||||
|
|
||||||
config DEBUG_UART_ALTERA_JTAGUART
|
config DEBUG_UART_ALTERA_JTAGUART
|
||||||
@ -289,11 +290,13 @@ config DEBUG_EFI_CONSOLE
|
|||||||
|
|
||||||
config DEBUG_SBI_CONSOLE
|
config DEBUG_SBI_CONSOLE
|
||||||
bool "SBI"
|
bool "SBI"
|
||||||
depends on SBI_V01
|
depends on RISCV_SMODE
|
||||||
help
|
help
|
||||||
Select this to enable a debug console which calls back to SBI to
|
Select this to enable a debug console which calls back to SBI to
|
||||||
output to the console. This can be useful for early debugging of
|
output to the console. This can be useful for early debugging of
|
||||||
U-Boot when running on top of SBI (Supervisor Binary Interface).
|
U-Boot when running on top of SBI (Supervisor Binary Interface).
|
||||||
|
This implementation of the debug UART is not available while in
|
||||||
|
M-mode (e.g. during SPL).
|
||||||
|
|
||||||
config DEBUG_UART_S5P
|
config DEBUG_UART_S5P
|
||||||
bool "Samsung S5P"
|
bool "Samsung S5P"
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
#include <debug_uart.h>
|
#include <debug_uart.h>
|
||||||
#include <asm/sbi.h>
|
#include <asm/sbi.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_SBI_V01
|
||||||
|
|
||||||
static inline void _debug_uart_init(void)
|
static inline void _debug_uart_init(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -13,4 +15,22 @@ static inline void _debug_uart_putc(int c)
|
|||||||
sbi_console_putchar(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
|
DEBUG_UART_FUNCS
|
||||||
|
Loading…
Reference in New Issue
Block a user