[openfirmware] [commit] r2054 - dev/mmc/sdhci
repository service
svn at openfirmware.info
Wed Dec 1 10:08:17 CET 2010
Author: wmb
Date: Wed Dec 1 10:08:17 2010
New Revision: 2054
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2054
Log:
SDHCI - keep track of last 8 commands and display them when an error occurs.
Modified:
dev/mmc/sdhci/sdhci.fth
Modified: dev/mmc/sdhci/sdhci.fth
==============================================================================
--- dev/mmc/sdhci/sdhci.fth Wed Dec 1 10:07:24 2010 (r2053)
+++ dev/mmc/sdhci/sdhci.fth Wed Dec 1 10:08:17 2010 (r2054)
@@ -238,6 +238,25 @@
0 instance value allow-timeout?
0 instance value timeout?
+8 instance buffer: cmds
+: init-cmds ( -- ) cmds 8 h# ff fill ;
+: add-cmd ( cmdreg -- )
+ cmds 1+ cmds 7 move ( cmdreg )
+ 8 rshift cmds 7 + c!
+;
+: show-cmds ( -- )
+ ." Recent commands (decimal): "
+ cmds 8 bounds do
+ i c@ dup h# ff <> if ( cmd )
+ base @ decimal ( cmd base )
+ swap . ( base )
+ base ! ( )
+ else ( cmd )
+ drop ( )
+ then ( )
+ loop
+ cr
+;
: .sderror ( isr -- )
debug? if
." Chip registers: " cr
@@ -262,6 +281,10 @@
." SDHCI: Error: ISR = " swap u.
." ESR = " dup u. decode-esr
+ ." Command reg: " h# e cw@ u.
+ ." Mode reg: " h# c cw@ u.
+ ." Arg reg: " h# 8 cl@ u. cr
+ show-cmds
\ debug-me
card-clock-off
card-power-off
@@ -329,9 +352,9 @@
\ Argument register:
\ Mode register: --Md-ABD M-Multi d-Direction A-Auto_CMD12 B-BlockCntEnable D-DMAEnable
-
: cmd ( arg cmd mode -- )
debug? if ." CMD: " over 4 u.r space then
+ over add-cmd
wait-ready
h# c cw! ( arg cmd ) \ Mode
swap 8 cl! ( cmd ) \ Arg
@@ -994,6 +1017,7 @@
open-count 0= if
d# 64 " dma-alloc" $call-parent to scratch-buf
then
+ init-cmds
open-count 1+ to open-count
true
;
More information about the openfirmware
mailing list