[PATCH 2/2] risc-v: implement DBCN based debug console
Chanho Park
chanho61.park at samsung.com
Mon Sep 4 11:30:23 CEST 2023
Hi,
> -----Original Message-----
> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Heinrich
> Schuchardt
> Sent: Saturday, August 19, 2023 10:13 PM
> To: Rick Chen <rick at andestech.com>; Leo <ycliang at andestech.com>
> Cc: Bin Meng <bmeng.cn at gmail.com>; Anup Patel <apatel at ventanamicro.com>;
> u-boot at lists.denx.de; Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com>
> Subject: [PATCH 2/2] 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 at canonical.com>
> ---
> drivers/serial/Kconfig | 3 ++-
> drivers/serial/serial_sbi.c | 19 +++++++++++++++++++
> 2 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index
> a1e089962a..8421c5c047 100644
> --- a/drivers/serial/Kconfig
> +++ b/drivers/serial/Kconfig
> @@ -218,6 +218,7 @@ config DEBUG_UART
> choice
> prompt "Select which UART will provide the debug UART"
> depends on DEBUG_UART
> + default DEBUG_SBI_CONSOLE if RISCV_SMODE
> default DEBUG_UART_NS16550
>
> config DEBUG_UART_ALTERA_JTAGUART
> @@ -289,7 +290,7 @@ config DEBUG_EFI_CONSOLE
>
> config DEBUG_SBI_CONSOLE
> bool "SBI"
> - depends on SBI_V01
> + depends on RISCV_SMODE
> help
> 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
> diff --git a/drivers/serial/serial_sbi.c b/drivers/serial/serial_sbi.c
> index b9f35ed36e..093c7309d3 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,21 @@ 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) {
> + sbi_dbcn_available = sbi_probe_extension(SBI_EXT_DBCN);
> +}
> +
> +static inline void _debug_uart_putc(int ch) {
> + if (sbi_dbcn_available)
> + sbi_dbcn_write_byte(ch);
> +}
> +
> +#endif
> +
> DEBUG_UART_FUNCS
> --
> 2.40.1
I've got below error when I tried to build it with VisionFive2 board
configuration(starfive_visionfive2_defconfig).
To test this patch, I enabled CONFIG_DEBUG_SBI_CONSOLE. Seems like spl also
includes the driver when DEBUG_SBI_CONSOLE is enabled.
Do I need to do any more configurations to test this?
LD spl/u-boot-spl
riscv64-unknown-linux-gnu-ld.bfd: drivers/serial/serial_sbi.o: in function
`_debug_uart_putc':
/data/risc-v/vf2/mainline/u-boot/drivers/serial/serial_sbi.c:30: undefined
reference to `sbi_dbcn_write_byte'
riscv64-unknown-linux-gnu-ld.bfd:
/data/risc-v/vf2/mainline/u-boot/drivers/serial/serial_sbi.c:30: undefined
reference to `sbi_dbcn_write_byte'
riscv64-unknown-linux-gnu-ld.bfd: drivers/serial/serial_sbi.o: in function
`_debug_uart_init':
/data/risc-v/vf2/mainline/u-boot/drivers/serial/serial_sbi.c:24: undefined
reference to `sbi_probe_extension'
make[2]: *** [/data/risc-v/vf2/mainline/u-boot/scripts/Makefile.spl:527:
spl/u-boot-spl] Error 1
Best Regards,
Chanho Park
More information about the U-Boot
mailing list