[openfirmware] [commit] r1764 - dev/mmc/sdhci
repository service
svn at openfirmware.info
Wed Mar 10 10:16:39 CET 2010
Author: wmb
Date: Wed Mar 10 10:16:39 2010
New Revision: 1764
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1764
Log:
Fixed problem introduced by r1740 - incorrect wait for completion after erase-blocks.
Modified:
dev/mmc/sdhci/sdhci.fth
Modified: dev/mmc/sdhci/sdhci.fth
==============================================================================
--- dev/mmc/sdhci/sdhci.fth Mon Mar 8 19:47:40 2010 (r1763)
+++ dev/mmc/sdhci/sdhci.fth Wed Mar 10 10:16:39 2010 (r1764)
@@ -516,6 +516,8 @@
: unprotect ( group# -- ) h# 1d1b 0 cmd ; \ CMD29 R1b UNTESTED
: protected? ( group# -- 32-bits ) h# 1e1a cmd response ; \ CMD30 R1 UNTESTED
+0 instance value writing?
+
: erase-blocks ( block# #blocks -- ) \ UNTESTED
intstat-on
dup 0= if 2drop exit then
@@ -524,6 +526,7 @@
h# 211a 0 cmd ( ) \ CMD33 - R1
0 h# 261b 0 cmd \ CMD38 - R1b (wait for busy)
intstat-off
+ true to writing?
;
\ CMD40 is MMC
@@ -744,8 +747,6 @@
;
[then]
-0 instance value writing?
-
: .card-error ( value -- )
dup h# 8000.0000 and if ." Address out of range (past end?)" cr then
dup h# 4000.0000 and if ." Misaligned address" cr then
@@ -792,8 +793,9 @@
: wait-write-done ( -- error? )
writing? 0= if false exit then ( limit )
- get-msecs d# 1000 + ( limit )
- begin get-status dup 9 rshift h# f and 7 = while ( limit status )
+ get-msecs d# 4000 + ( limit )
+ \ Wait for return to "tran" state (4)
+ begin get-status dup 9 rshift h# f and 4 <> while ( limit status )
drop ( limit )
dup get-msecs - 0< if
." SDHCI: wait-write-done timeout" cr
More information about the openfirmware
mailing list