[linux-yocto] [PATCH 54/70] powerpc/acpx1: add early debug support for acpx1 board
Paul Butler
butler.paul at gmail.com
Mon Jun 10 18:46:17 PDT 2013
From: Kevin Hao <kexin.hao at windriver.com>
This is based on the lsi.patch in lsi_acp_linux_3.8.1.28 tarball.
Signed-off-by: Kevin Hao <kexin.hao at windriver.com>
---
arch/powerpc/kernel/udbg_16550.c | 52 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c
index 6837f83..c214a96 100644
--- a/arch/powerpc/kernel/udbg_16550.c
+++ b/arch/powerpc/kernel/udbg_16550.c
@@ -218,6 +218,57 @@ void udbg_init_pas_realmode(void)
#endif /* CONFIG_PPC_MAPLE */
#ifdef CONFIG_PPC_EARLY_DEBUG_44x
+#if defined(CONFIG_ACP)
+
+#include <asm/io.h>
+#include <asm/udbg.h>
+#include <linux/amba/serial.h>
+
+static void *uart_base;
+
+static void
+acp_putc(char c)
+{
+ while (0 != (in_le32(uart_base + UART01x_FR) & UART01x_FR_TXFF))
+ ;
+
+ if ('\n' == c) {
+ out_le32(uart_base + UART01x_DR, '\r');
+ while (0 != (in_le32(uart_base + UART01x_FR) & UART01x_FR_TXFF))
+ ;
+ }
+
+ out_le32(uart_base + UART01x_DR, c);
+
+ return;
+}
+
+static int
+acp_getc(void)
+{
+ while (0 != (in_le32(uart_base + UART01x_FR) & UART01x_FR_RXFE))
+ ;
+ return in_le32(uart_base + UART01x_DR);
+}
+
+void __init
+udbg_init_44x_as1(void)
+{
+ uart_base = (void *)0xf0004000; /* 34xx UART0 address... */
+
+ if (0x11 != in_le32(uart_base + 0xfe0) ||
+ 0x10 != in_le32(uart_base + 0xfe4) ||
+ 0x24 != in_le32(uart_base + 0xfe8) ||
+ 0x00 != in_le32(uart_base + 0xfec))
+ uart_base = (void *)0xf0024000; /* 25xx UART0 address... */
+ udbg_putc = acp_putc;
+ udbg_getc = acp_getc;
+
+ return;
+}
+
+#else /* CONFIG_ACP */
+
#include <platforms/44x/44x.h>
static void udbg_44x_as1_flush(void)
@@ -257,6 +308,7 @@ void __init udbg_init_44x_as1(void)
udbg_flush = udbg_44x_as1_flush;
udbg_getc = udbg_44x_as1_getc;
}
+#endif /* CONFIG_ACP */
#endif /* CONFIG_PPC_EARLY_DEBUG_44x */
#ifdef CONFIG_PPC_EARLY_DEBUG_40x
--
1.8.3
More information about the linux-yocto
mailing list