[PATCH] RISC-V: virt: add DEBUG_LL support

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Nov 25 08:06:57 PST 2021


While we have PBL console support, console isn't available during early
barebox startup. Implement DEBUG_LL for Qemu RISC-V Virt to make such
early debugging easier.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 arch/riscv/Kconfig.socs           |  1 +
 arch/riscv/include/asm/debug_ll.h | 10 ++++++++--
 common/Kconfig                    |  5 +++++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index bd4a44a575ef..b12c795041b0 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -18,6 +18,7 @@ config SOC_VIRT
 	select RISCV_S_MODE
 	select BOARD_RISCV_GENERIC_DT
 	select HAS_CACHE
+	select HAS_ASM_DEBUG_LL
 	help
 	  Generates an image tht can be be booted by QEMU. The image is called
 	  barebox-dt-2nd.img
diff --git a/arch/riscv/include/asm/debug_ll.h b/arch/riscv/include/asm/debug_ll.h
index a3b9c1c4bcfb..d01b4f09b8e1 100644
--- a/arch/riscv/include/asm/debug_ll.h
+++ b/arch/riscv/include/asm/debug_ll.h
@@ -17,13 +17,19 @@
 #if defined CONFIG_DEBUG_ERIZO
 #define DEBUG_LL_UART_ADDR	0x90000000
 #define DEBUG_LL_UART_CLK       (24000000 / 16)
+#define DEBUG_LL_UART_SHIFT	2
+#define DEBUG_LL_UART_IOSIZE32
 #elif defined CONFIG_DEBUG_STARFIVE
 #define DEBUG_LL_UART_ADDR	0x12440000
 #define DEBUG_LL_UART_CLK       (100000000 / 16)
-#endif
-
 #define DEBUG_LL_UART_SHIFT	2
 #define DEBUG_LL_UART_IOSIZE32
+#elif defined CONFIG_DEBUG_RISCV_VIRT
+#define DEBUG_LL_UART_ADDR	0x10000000
+#define DEBUG_LL_UART_CLK       (58982400  / 16)
+#define DEBUG_LL_UART_SHIFT	0
+#define DEBUG_LL_UART_IOSIZE8
+#endif
 
 #define DEBUG_LL_UART_BPS       CONFIG_BAUDRATE
 #define DEBUG_LL_UART_DIVISOR   (DEBUG_LL_UART_CLK / DEBUG_LL_UART_BPS)
diff --git a/common/Kconfig b/common/Kconfig
index f4120b2083ee..ab6258d90f40 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1402,6 +1402,11 @@ config DEBUG_STARFIVE
 	depends on SOC_STARFIVE
 	select DEBUG_LL_NS16550
 
+config DEBUG_RISCV_VIRT
+	bool "RISC-V Virt ns16550 port"
+	depends on SOC_VIRT
+	select DEBUG_LL_NS16550
+
 config DEBUG_SIFIVE
 	bool "SiFive serial0 port"
 	depends on SOC_SIFIVE
-- 
2.30.2




More information about the barebox mailing list