svn commit: r262244 - head/sys/arm/freescale/imx
Ian Lepore
ian at FreeBSD.org
Thu Feb 20 14:29:59 UTC 2014
Author: ian
Date: Thu Feb 20 14:29:59 2014
New Revision: 262244
URL: http://svnweb.freebsd.org/changeset/base/262244
Log:
Add early printf support, wrapped in #if 0 because it's only rarely needed.
Modified:
head/sys/arm/freescale/imx/imx6_machdep.c
Modified: head/sys/arm/freescale/imx/imx6_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx6_machdep.c Thu Feb 20 13:33:18 2014 (r262243)
+++ head/sys/arm/freescale/imx/imx6_machdep.c Thu Feb 20 14:29:59 2014 (r262244)
@@ -190,3 +190,27 @@ u_int imx_soc_type()
return (IMXSOC_6Q);
}
+/*
+ * Early putc routine for EARLY_PRINTF support. To use, add to kernel config:
+ * option SOCDEV_PA=0x02000000
+ * option SOCDEV_VA=0x02000000
+ * option EARLY_PRINTF
+ * Resist the temptation to change the #if 0 to #ifdef EARLY_PRINTF here. It
+ * makes sense now, but if multiple SOCs do that it will make early_putc another
+ * duplicate symbol to be eliminated on the path to a generic kernel.
+ */
+#if 0
+static void
+imx6_early_putc(int c)
+{
+ volatile uint32_t * UART_STAT_REG = (uint32_t *)0x02020098;
+ volatile uint32_t * UART_TX_REG = (uint32_t *)0x02020040;
+ const uint32_t UART_TXRDY = (1 << 3);
+
+ while ((*UART_STAT_REG & UART_TXRDY) == 0)
+ continue;
+ *UART_TX_REG = c;
+}
+early_putc_t *early_putc = imx6_early_putc;
+#endif
+
More information about the svn-src-head
mailing list