[PATCH 1/1] riscv: enable CONFIG_DEBUG_UART by default

Most boards don't enable the pre-console buffer. So we will not see any early messages. OpenSBI 1.3 provides us with the debug console extension that can fill this gap.
For S-Mode U-Boot enable CONFIG_DEBUG_UART by default.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com --- arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 1c62c2345b..06fae7ebe8 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -141,6 +141,7 @@ config RISCV_MMODE
config RISCV_SMODE bool "Supervisor" + imply DEBUG_UART help Choose this option to build U-Boot for RISC-V S-Mode.

On Sat, Sep 23, 2023 at 01:35:26AM +0200, Heinrich Schuchardt wrote:
Most boards don't enable the pre-console buffer. So we will not see any early messages. OpenSBI 1.3 provides us with the debug console extension that can fill this gap.
For S-Mode U-Boot enable CONFIG_DEBUG_UART by default.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Leo Yu-Chi Liang ycliang@andestech.com

Hi Heinrich,
On Sat, Sep 23, 2023 at 01:35:26AM +0200, Heinrich Schuchardt wrote:
Most boards don't enable the pre-console buffer. So we will not see any early messages. OpenSBI 1.3 provides us with the debug console extension that can fill this gap.
For S-Mode U-Boot enable CONFIG_DEBUG_UART by default.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 1c62c2345b..06fae7ebe8 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -141,6 +141,7 @@ config RISCV_MMODE
config RISCV_SMODE bool "Supervisor"
- imply DEBUG_UART
This patch will cause the following compilation warnings. Could you take a look at them ?
It seems that some configuration values will not be set if we imply DEBUG_UART.
u-boot$ make qemu-riscv64_spl_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
u-boot$ make ARCH_FLAGS="-march=rv64imafdc" -j`nproc` scripts/kconfig/conf --syncconfig Kconfig .config:78:warning: symbol value '' invalid for DEBUG_UART_BASE .config:79:warning: symbol value '' invalid for DEBUG_UART_CLOCK .config:1347:warning: symbol value '' invalid for SPL_DEBUG_UART_BASE ...
Best regards, Leo
help Choose this option to build U-Boot for RISC-V S-Mode.
-- 2.40.1

On 9/26/23 09:53, Leo Liang wrote:
Hi Heinrich,
On Sat, Sep 23, 2023 at 01:35:26AM +0200, Heinrich Schuchardt wrote:
Most boards don't enable the pre-console buffer. So we will not see any early messages. OpenSBI 1.3 provides us with the debug console extension that can fill this gap.
For S-Mode U-Boot enable CONFIG_DEBUG_UART by default.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 1c62c2345b..06fae7ebe8 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -141,6 +141,7 @@ config RISCV_MMODE
config RISCV_SMODE bool "Supervisor"
- imply DEBUG_UART
This patch will cause the following compilation warnings. Could you take a look at them ?
It seems that some configuration values will not be set if we imply DEBUG_UART.
u-boot$ make qemu-riscv64_spl_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
Hello Leo,
thanks for testing.
u-boot$ make ARCH_FLAGS="-march=rv64imafdc" -j`nproc`
This does not work with a current gcc. arch/riscv/lib/cache.c:12: Error: unrecognized opcode `fence.i', extension `zifencei' required
scripts/kconfig/conf --syncconfig Kconfig .config:78:warning: symbol value '' invalid for DEBUG_UART_BASE
Please, observe:
origin/next lacks these patches
d14222e7c152 ("risc-v: implement DBCN write byte") dfe08374943c ("risc-v: implement DBCN based debug console")
You must add these when testing the current patch.
On Ubuntu 23.10 I have been running
export CROSS_COMPILE=riscv64-linux-gnu- make clean make qemu-riscv64_spl_defconfig make -j8
for origin/master and the current patch. I did not see any warning.
Same for origin/next and all three patches applied.
We have
config DEBUG_UART_BASE hex "Base address of UART" depends on DEBUG_UART default 0 if DEBUG_SBI_CONSOLE
since 41f7be73344.
I don't see any issues in https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/17882 (origin/master + this patch).
Best regards
Heinrich
.config:79:warning: symbol value '' invalid for DEBUG_UART_CLOCK .config:1347:warning: symbol value '' invalid for SPL_DEBUG_UART_BASE ...
Best regards, Leo
help Choose this option to build U-Boot for RISC-V S-Mode.
-- 2.40.1

Hi Heinrich,
On Tue, Sep 26, 2023 at 10:38:48AM +0200, Heinrich Schuchardt wrote:
On 9/26/23 09:53, Leo Liang wrote:
Hi Heinrich,
On Sat, Sep 23, 2023 at 01:35:26AM +0200, Heinrich Schuchardt wrote:
Most boards don't enable the pre-console buffer. So we will not see any early messages. OpenSBI 1.3 provides us with the debug console extension that can fill this gap.
For S-Mode U-Boot enable CONFIG_DEBUG_UART by default.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 1c62c2345b..06fae7ebe8 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -141,6 +141,7 @@ config RISCV_MMODE config RISCV_SMODE bool "Supervisor"
- imply DEBUG_UART
This patch will cause the following compilation warnings. Could you take a look at them ?
It seems that some configuration values will not be set if we imply DEBUG_UART.
u-boot$ make qemu-riscv64_spl_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config #
Hello Leo,
thanks for testing.
u-boot$ make ARCH_FLAGS="-march=rv64imafdc" -j`nproc`
This does not work with a current gcc. arch/riscv/lib/cache.c:12: Error: unrecognized opcode `fence.i', extension `zifencei' required
scripts/kconfig/conf --syncconfig Kconfig .config:78:warning: symbol value '' invalid for DEBUG_UART_BASE
Please, observe:
origin/next lacks these patches
d14222e7c152 ("risc-v: implement DBCN write byte") dfe08374943c ("risc-v: implement DBCN based debug console")
You must add these when testing the current patch.
On Ubuntu 23.10 I have been running
export CROSS_COMPILE=riscv64-linux-gnu- make clean make qemu-riscv64_spl_defconfig make -j8
for origin/master and the current patch. I did not see any warning.
Same for origin/next and all three patches applied.
We have
config DEBUG_UART_BASE hex "Base address of UART" depends on DEBUG_UART default 0 if DEBUG_SBI_CONSOLE
since 41f7be73344.
I don't see any issues in https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/17882 (origin/master + this patch).
Best regards
Heinrich
Totally Got it! Thanks for the detailed explanation!
Best regards, Leo
.config:79:warning: symbol value '' invalid for DEBUG_UART_CLOCK .config:1347:warning: symbol value '' invalid for SPL_DEBUG_UART_BASE ...
Best regards, Leo
help Choose this option to build U-Boot for RISC-V S-Mode. -- 2.40.1
participants (2)
-
Heinrich Schuchardt
-
Leo Liang