Author: wmb Date: Sun Sep 12 10:42:14 2010 New Revision: 1951 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1951
Log: SDHCI - Added 3-second delay in detach card before turning off power, to avoid killing the ADATA 8G cards that do stuff after writing. The delay is from the last write command, so read-only operations are not penalized.
Modified: dev/mmc/sdhci/sdhci.fth
Modified: dev/mmc/sdhci/sdhci.fth ============================================================================== --- dev/mmc/sdhci/sdhci.fth Fri Sep 10 08:40:07 2010 (r1950) +++ dev/mmc/sdhci/sdhci.fth Sun Sep 12 10:42:14 2010 (r1951) @@ -443,6 +443,7 @@ : protected? ( group# -- 32-bits ) h# 1e1a cmd response ; \ CMD30 R1 UNTESTED
0 instance value writing? +0 instance value last-write-time
: erase-blocks ( block# #blocks -- ) \ UNTESTED intstat-on @@ -873,6 +874,10 @@
: detach-card ( -- ) wait-dma-done + last-write-time if + begin get-msecs last-write-time - d# 3000 > until + then + intstat-on wait-write-done drop intstat-off card-clock-off card-power-off @@ -945,6 +950,7 @@ else ( block# r: #blocks fresh? ) r> if r@ pre-write-erase then ( block# r: #blocks ) r> issue-write ( ) + get-msecs to last-write-time ( ) true to writing? ( ) then ( ) true to dma? ( )