Date: Tue, 13 May 2014 12:12:19 +0300 From: "Sulev-Madis Silber (ketas)" <madis555@hot.ee> To: freebsd-arm <freebsd-arm@FreeBSD.org> Subject: Patch to make BBB properly boot from eMMC every time Message-ID: <5371E1F3.6080002@hot.ee>
next in thread | raw e-mail | index | archive | help
On my BBB, I need following patch to boot from eMMC 100% of cases. Without that, device is detected with 1 / 4 bit bus (it's actually 8 bit) or not at all (then boot fails). Actually, that code looks like weird way to implement sleep(), or at least it has such (side) effect. Actually ian@ made that patch, and was confused about results. ------------------------------------------------------------------------- Index: sys/dev/mmc/mmc.c =================================================================== --- sys/dev/mmc/mmc.c (revision 264141) +++ sys/dev/mmc/mmc.c (working copy) @@ -769,8 +769,10 @@ mmc_test_bus_width(struct mmc_softc *sc) data.data = p8; data.len = 8; data.flags = MMC_DATA_WRITE; - mmc_wait_for_cmd(sc, &cmd, 0); - + err = mmc_wait_for_cmd(sc, &cmd, 0); + if (err != 0) + device_printf(sc->dev, "BUSTEST_W err %d\n", err); + memset(&cmd, 0, sizeof(cmd)); memset(&data, 0, sizeof(data)); cmd.opcode = MMC_BUSTEST_R; @@ -782,7 +784,12 @@ mmc_test_bus_width(struct mmc_softc *sc) data.len = 8; data.flags = MMC_DATA_READ; err = mmc_wait_for_cmd(sc, &cmd, 0); - + if (err != 0) + device_printf(sc->dev, "BUSTEST_R err %d\n", err); + + device_printf(sc->dev, "read %02x %02x %02x %02x %02x %02x %02x %02x\n", + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]); + mmcbr_set_bus_width(sc->dev, bus_width_1); mmcbr_update_ios(sc->dev); -------------------------------------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5371E1F3.6080002>