svn commit: r324773 - head/sys/arm/allwinner
Emmanuel Vadot
manu at FreeBSD.org
Thu Oct 19 20:56:31 UTC 2017
Author: manu
Date: Thu Oct 19 20:56:30 2017
New Revision: 324773
URL: https://svnweb.freebsd.org/changeset/base/324773
Log:
Allwinner: Add EARLY_PRINTF function
EARLY_PRINTF can help debugging early problems.
Add it for Allwinner SoCs.
Tested On: OrangePi One (H3)
Modified:
head/sys/arm/allwinner/aw_machdep.c
Modified: head/sys/arm/allwinner/aw_machdep.c
==============================================================================
--- head/sys/arm/allwinner/aw_machdep.c Thu Oct 19 20:54:55 2017 (r324772)
+++ head/sys/arm/allwinner/aw_machdep.c Thu Oct 19 20:56:30 2017 (r324773)
@@ -164,6 +164,29 @@ allwinner_cpu_reset(platform_t plat)
while (1);
}
+/*
+ * To use early printf on Allwinner SoC, add to kernel config
+ * options SOCDEV_PA=0x01C00000
+ * options SOCDEV_VA=0x10000000
+ * options EARLY_PRINTF
+ * And remove the if 0
+*/
+#if 0
+#ifdef EARLY_PRINTF
+static void
+allwinner_early_putc(int c)
+{
+ volatile uint32_t * UART_STAT_REG = (uint32_t *)0x1002807C;
+ volatile uint32_t * UART_TX_REG = (uint32_t *)0x10028000;
+ const uint32_t UART_TXRDY = (1 << 2);
+
+ while ((*UART_STAT_REG & UART_TXRDY) == 0)
+ continue;
+ *UART_TX_REG = c;
+}
+early_putc_t *early_putc = allwinner_early_putc;
+#endif /* EARLY_PRINTF */
+
#if defined(SOC_ALLWINNER_A10)
static platform_method_t a10_methods[] = {
PLATFORMMETHOD(platform_attach, a10_attach),
More information about the svn-src-all
mailing list