[openfirmware] r887 - dev/mmc/sdhci

svn at openfirmware.info svn at openfirmware.info
Fri Aug 22 19:59:39 CEST 2008


Author: wmb
Date: 2008-08-22 19:59:38 +0200 (Fri, 22 Aug 2008)
New Revision: 887

Modified:
   dev/mmc/sdhci/sdhci.fth
Log:
SDHCI - Turned on card insert/remove bits in interrupt enable register
to work around the hardware problem that the card detection status bits
won't change state unless the interrupt enables are on.  This is releated
to OLPC trac 1339.  r851 has a corresponding change to the resume code
that turns on those interrupt enable bits when waking up.  This change
tries to leave the enables turned on the initial transitioning to the OS.
It especially helps with Windows XP, which otherwise often fails to detect
the card during early startup.


Modified: dev/mmc/sdhci/sdhci.fth
===================================================================
--- dev/mmc/sdhci/sdhci.fth	2008-08-21 22:31:44 UTC (rev 886)
+++ dev/mmc/sdhci/sdhci.fth	2008-08-22 17:59:38 UTC (rev 887)
@@ -176,14 +176,17 @@
 
 : data-timeout!  ( n -- )  h# 2e cb!  ;
 
+\ We leave the remove and insert interrupt enables on because the
+\ hardware has a bug that blocks the card detection status bits
+\ unless the interrupt enables are on.
 : intstat-on  ( -- )
-   h# 000b h# 34 cw!  \ normal interrupt status en reg
-            \ Enable: DMA Interrupt, Transfer Complete, CMD Complete
+   h# 00cb h# 34 cw!  \ normal interrupt status en reg
+            \ Enable: Remove, Insert, DMA Interrupt, Transfer Complete, CMD Complete
             \ Disable: Card Interrupt, Remove, Insert, Read Ready,
             \ Write Ready, Block Gap
    h# f1ff h# 36 cw!  \ error interrupt status en reg
 ;
-: intstat-off  ( -- )  h# 0 h# 34 cl!  ;  \ All interrupts off
+: intstat-off  ( -- )  h# c0 h# 34 cl!  ;  \ Remove, Insert on, others off
 
 : setup-host  ( -- )
    reset-host




More information about the openfirmware mailing list