Mount root from SD card?
M. Warner Losh
imp at bsdimp.com
Fri Jan 23 08:18:43 PST 2009
In message: <4979EAFE.2030407 at bulinfo.net>
Krassimir Slavchev <krassi at bulinfo.net> writes:
: -----BEGIN PGP SIGNED MESSAGE-----
: Hash: SHA1
:
: M. Warner Losh wrote:
: > In message: <497896F3.9030908 at bulinfo.net>
: > Krassimir Slavchev <krassi at bulinfo.net> writes:
: > : Index: at91_mci.c
: > : ===================================================================
: > : --- at91_mci.c (revision 187590)
: > : +++ at91_mci.c (working copy)
: > : @@ -199,7 +199,7 @@
: > : goto out;
: > : }
: > : sc->host.f_min = 375000;
: > : - sc->host.f_max = at91_master_clock / 2; /* Typically 30MHz */
: > : + sc->host.f_max = AT91C_MASTER_CLOCK / 2; /* Typically 30MHz */
: > : sc->host.host_ocr = MMC_OCR_320_330 | MMC_OCR_330_340;
: > : if (sc->wire4)
: > : sc->host.caps = MMC_CAP_4_BIT_DATA;
: >
: > This change is wrong.
:
: Ok. I did this because at91_master_clock was not defined here.
Yea, that's my bad, actually. I've since fixed it.
: > : @@ -399,8 +399,8 @@
: > : WR4(sc, MCI_ARGR, cmd->arg);
: > : if (cmdr & MCI_CMDR_TRCMD_START) {
: > : if (cmdr & MCI_CMDR_TRDIR) {
: > : + WR4(sc, MCI_CMDR, cmdr);
: > : WR4(sc, PDC_PTCR, PDC_PTCR_RXTEN);
: > : - WR4(sc, MCI_CMDR, cmdr);
: >
: > This change is also wrong. It won't work. Also, why test the
: > direction at all if we're just going to do the same thing in both legs
: > of the branch? When I was developing the code, I originally had the
: > 'send a command and then enable PDC' logic. It didn't work for the
: > read case, so now we enable the reader and then send the command. We
: > do this based on the logic that it is OK to have the PDC enabled when
: > there's no data transfer going, but if we send the command, then take
: > an interrupt before we can enable the PDC, we'd lose data. And that
: > seemed to happen a lot.
:
: Ok but I was able to read correctly first blocks ...
: Looking at linux's driver they do the same, first sending CMD and then
: enable PDC for reading.
:
: Thanks for latest fixes!
Sure. The underlying problem was that we were doing 512 byte
transfers for 64 byte requests. Ooops, that's bad.
Warner
More information about the freebsd-arm
mailing list