summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Palmer <[email protected]>2026-03-09 19:51:08 +0900
committerTom Rini <[email protected]>2026-04-14 13:25:13 -0600
commitcbfb9b3f2248ff30724a12583981e3e7523272d6 (patch)
tree37496953b8af40fc5fbe352e94f513ef2d911933
parent9a6dd68323cf425d7056f1de367bbfbb19cec407 (diff)
serial: goldfish: Add debug uart support
Add debug support for the goldfish tty so it can be used for early debugging. This will be really useful when adding support for relocation to the m68k qemu virt machine. Signed-off-by: Daniel Palmer <[email protected]> Reviewed-by: Kuan-Wei Chiu <[email protected]> Tested-by: Kuan-Wei Chiu <[email protected]>
-rw-r--r--drivers/serial/Kconfig8
-rw-r--r--drivers/serial/serial_goldfish.c18
2 files changed, 26 insertions, 0 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index b84cb9ec781..f6a696e6c94 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -510,6 +510,14 @@ config DEBUG_UART_XTENSA_SEMIHOSTING
start up driver model. The driver will be available until the real
driver model serial is running.
+config DEBUG_UART_GOLDFISH
+ bool "Goldfish TTY"
+ help
+ Select this to enable the debug UART using the Goldfish TTY driver.
+ This provides basic serial output from the console without needing to
+ start up driver model. The driver will be available until the real
+ driver model serial is running.
+
endchoice
config DEBUG_UART_BASE
diff --git a/drivers/serial/serial_goldfish.c b/drivers/serial/serial_goldfish.c
index 4ac2cfb6231..91dc040fcf2 100644
--- a/drivers/serial/serial_goldfish.c
+++ b/drivers/serial/serial_goldfish.c
@@ -115,3 +115,21 @@ U_BOOT_DRIVER(serial_goldfish) = {
.priv_auto = sizeof(struct goldfish_tty_priv),
.flags = DM_FLAG_PRE_RELOC,
};
+
+#ifdef CONFIG_DEBUG_UART_GOLDFISH
+
+#include <debug_uart.h>
+
+static inline void _debug_uart_init(void)
+{
+}
+
+static inline void _debug_uart_putc(int ch)
+{
+ void __iomem *base = (void __iomem *)CONFIG_VAL(DEBUG_UART_BASE);
+
+ __raw_writel(ch, base + GOLDFISH_TTY_PUT_CHAR);
+}
+
+DEBUG_UART_FUNCS
+#endif