At today's bug status meeting, I was asked to investigate SD card resume timing from OFW.
The range was 24 mS to 187 mS , depending on which SD card is plugged in. The fixed component of that time is about 5 mS, including re-initing the host controller and issuing a sequence of card commands that determine which kind of card you have (SD, SDHC, MMC, etc). The variable component is the "wait for card to power up" step - you have to repeatedly issue a "set operating conditions" command until you get a specific response indicating that the card is ready. I tried all of the cards I have multiple times, with consistent results. After the tested resume sequence, reads from the card worked. Here is the variable component of the time for my cards: 19 mS PQI 2GB SD "Hi-Speed 150" 37 mS SanDisk 32 MB SD 41 mS SanDisk 1GB SD "Extreme III" 73 mS Kingston 256 MB MMC+ 75 mS Transcend 4GB SD "150x" 182 mS Panasonic 512 MB SD "Pro high speed" I don't have any SDHC cards. If you wish to try the tests yourself, here is a recipe: ok select /sd ok patch 0 14 attach-card ok patch 0 14 attach-card ok patch 0 a attach-card ok patch 400 64 wait-powered ok patch 1 a wait-powered ok s t( setup-host attach-card drop )t After you issue the last command, press the power button to resume; the SD resume time will be displayed in microseconds. You can repeat that last command as necessary, inserting new cards if you wish. The patches shorten various time delays that are in the existing driver. Empirically, all of my cards seem to work fine without those delays. The first 3 patches eliminate a total of 50 mS (0x14 + 0x14 + 0x0a) from the fixed component of the time. The last 2 patches decrease the granularity of the variable component of the time from 10 mS to 1 mS. _______________________________________________ Devel mailing list [email protected] http://lists.laptop.org/listinfo/devel
