Hi

Compiling an armv7 kernel with option SDHC_DEBUG fails as there is no definition
of the ommmc_dump_regs function, so add it.

Tested on real hardware (Beaglebone Black):

ommmc0 at omap0
ommmc0: SYSCONFIG: 0x00002015 SYSSTATUS: 0x00000001      CSRE: 0x00000000
ommmc0:   SYSTEST: 0x00000000       CON: 0x00000600     PWCNT: 0x00000000
ommmc0:       BLK: 0x00000000       ARG: 0x00000000       CMD: 0x00000000
ommmc0:     RSP10: 0x00000000     RSP32: 0x00000000     RSP54: 0x00000000
ommmc0:     RSP76: 0x00000000      DATA: 0x00000000    PSTATE: 0x01f70000
ommmc0:      HCTL: 0x00000000    SYSCTL: 0x00000000      STAT: 0x00000040
ommmc0:        IE: 0x00000000       ISE: 0x00000000      AC12: 0x00000000
ommmc0:      CAPA: 0x06e10080  CUR_CAPA: 0x00000000       REV: 0x31010000
ommmc0: software reset reg=0x1000000
sdmmc0 at ommmc0

This will help figure out why the onboard eMMC flash memory isn't being
configured properly on later BBB revisions where they bumped it from 2GB -> 4GB.

Ian

Index: ommmc.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/omap/ommmc.c,v
retrieving revision 1.14
diff -u -p -r1.14 ommmc.c
--- ommmc.c 30 May 2015 02:17:36 -0000 1.14
+++ ommmc.c 2 Jul 2015 01:48:32 -0000
@@ -244,7 +244,41 @@ void ommmc_write_data(struct ommmc_softc
 #ifdef SDHC_DEBUG
 int ommmcdebug = 20;
 #define DPRINTF(n,s) do { if ((n) <= ommmcdebug) printf s; } while (0)
-void ommmc_dump_regs(struct ommmc_softc *);
+void
+ommmc_dump_regs(struct ommmc_softc *sc)
+{
+ DPRINTF(3,("%s: SYSCONFIG: 0x%08x SYSSTATUS: 0x%08x      CSRE: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_SYSCONFIG), HREAD4(sc, MMCHS_SYSSTATUS),
+    HREAD4(sc, MMCHS_CSRE)));
+
+ DPRINTF(3,("%s:   SYSTEST: 0x%08x       CON: 0x%08x     PWCNT: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_SYSTEST), HREAD4(sc, MMCHS_CON),
+    HREAD4(sc, MMCHS_PWCNT)));
+
+ DPRINTF(3,("%s:       BLK: 0x%08x       ARG: 0x%08x       CMD: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_BLK), HREAD4(sc, MMCHS_ARG),
+    HREAD4(sc, MMCHS_CMD)));
+
+ DPRINTF(3,("%s:     RSP10: 0x%08x     RSP32: 0x%08x     RSP54: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_RSP10), HREAD4(sc, MMCHS_RSP32),
+    HREAD4(sc, MMCHS_RSP54)));
+
+ DPRINTF(3,("%s:     RSP76: 0x%08x      DATA: 0x%08x    PSTATE: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_RSP76), HREAD4(sc, MMCHS_DATA),
+    HREAD4(sc, MMCHS_PSTATE)));
+
+ DPRINTF(3,("%s:      HCTL: 0x%08x    SYSCTL: 0x%08x      STAT: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_HCTL), HREAD4(sc, MMCHS_SYSCTL),
+    HREAD4(sc, MMCHS_STAT)));
+
+ DPRINTF(3,("%s:        IE: 0x%08x       ISE: 0x%08x      AC12: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_IE), HREAD4(sc, MMCHS_ISE),
+    HREAD4(sc, MMCHS_AC12)));
+
+ DPRINTF(3,("%s:      CAPA: 0x%08x  CUR_CAPA: 0x%08x       REV: 0x%08x\n",
+    DEVNAME(sc),     HREAD4(sc, MMCHS_CAPA), HREAD4(sc, MMCHS_CUR_CAPA),
+    HREAD4(sc, MMCHS_REV)));
+}
 #else
 #define DPRINTF(n,s) do {} while(0)
 #endif

Reply via email to