[OpenBIOS] r380 - dev/mmc/sdhci
svn at openbios.org
svn at openbios.org
Mon May 14 12:50:35 CEST 2007
Author: wmb
Date: 2007-05-14 12:50:34 +0200 (Mon, 14 May 2007)
New Revision: 380
Modified:
dev/mmc/sdhci/sdhci.fth
Log:
SDHCI - High-capacity SD memory card support now works - Pierre Ossman tested
with one of his SDHC cards.
Modified: dev/mmc/sdhci/sdhci.fth
===================================================================
--- dev/mmc/sdhci/sdhci.fth 2007-05-14 09:22:28 UTC (rev 379)
+++ dev/mmc/sdhci/sdhci.fth 2007-05-14 10:50:34 UTC (rev 380)
@@ -387,7 +387,7 @@
\ Version 2 of the spec add CMD8. Pre-v2 cards will time out on CMD8.
: sd2? ( -- flag )
- true to allow-timeout? true to timeout?
+ true to allow-timeout? false to timeout?
send-if-cond
false to allow-timeout?
@@ -397,16 +397,22 @@
0 instance value address-shift
h# 8010.0000 value oc-mode \ Voltage settings, etc.
-: set-operating-conditions ( -- )
- sd2? if h# 4010.0000 else h# 8010.0000 then to oc-mode
-
- begin
+: wait-powered ( -- ocr )
+ d# 100 0 do
oc-mode set-oc ( ocr ) \ acmd41
dup h# 8000.0000 and ( card-powered-on? )
- 0= while ( ocr )
+ if unloop exit then
drop d# 10 ms
- repeat ( ocr )
+ loop ( )
+ ." Card didn't power up after 1 second" cr
+ abort
+;
+: set-operating-conditions ( -- )
+ sd2? if h# 4030.0000 else h# 0030.0000 then to oc-mode
+
+ wait-powered
+
\ Card Capacity Status bit - High Capacity cards are addressed
\ in blocks, so the block number does not have to be shifted.
\ Standard capacity cards are addressed in bytes, so the block
@@ -471,7 +477,7 @@
reset-card \ Cmd 0
- set-operating-conditions
+ ['] set-operating-conditions catch if false exit then
get-all-cids \ Cmd 2
get-rca \ Cmd 3 - Get relative card address
More information about the OpenBIOS
mailing list