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]> --- drivers/serial/Kconfig | 8 ++++++++ drivers/serial/serial_goldfish.c | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index b84cb9ec781d..f6a696e6c94c 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 4ac2cfb62315..91dc040fcf26 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 -- 2.51.0

