From: Thierry Reding <tred...@nvidia.com> Use the physical address of the debug serial port from the configuration to provide an early_putc() implementation that can be used with the new early console support.
Cc: Tom Warren <twar...@nvidia.com> Signed-off-by: Thierry Reding <tred...@nvidia.com> --- board/nvidia/common/board.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c index c3d77893ded3..d945de456ea2 100644 --- a/board/nvidia/common/board.c +++ b/board/nvidia/common/board.c @@ -155,6 +155,28 @@ int board_init(void) return 0; } +#ifdef CONFIG_EARLY_CONSOLE +#define UART_THR 0x00 +#define UART_LSR 0x14 + +void early_putc(char ch) +{ + uint32_t mask = UART_LSR_TEMT | UART_LSR_THRE, value; + unsigned long base = CONFIG_SYS_NS16550_COM1; + + if (ch == '\n') + early_putc('\r'); + + writel(ch, base + UART_THR); + + while (true) { + value = readl(base + UART_LSR); + if ((value & mask) == mask) + break; + } +} +#endif + #ifdef CONFIG_BOARD_EARLY_INIT_F static void __gpio_early_init(void) { -- 2.3.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot