Author: wmb Date: Wed Aug 4 06:47:17 2010 New Revision: 1908 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1908
Log: SD driver - added quirk for Marvell 88W8686 reset issue as described in Marvell AppNote AN-20017. It is possible that, without this workaround, the XO-1.5 WLAN module might fail to reset properly.
Added: dev/mmc/sdhci/mv8686/quirk.fth Modified: dev/mmc/sdhci/sdhci.fth dev/mmc/sdhci/sdhcixo.bth
Added: dev/mmc/sdhci/mv8686/quirk.fth ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ dev/mmc/sdhci/mv8686/quirk.fth Wed Aug 4 06:47:17 2010 (r1908) @@ -0,0 +1,10 @@ +\ This is a workaround for a reset problem with the Marvell 88W8686 +\ as described in Marvell AppNote AN-20017. Basically, you have to +\ pulse the external reset pin after powering up the module, otherwise +\ it might not reset correctly. + +: mv8686-reset-quirk ( -- ) + d# 50 ms + " wlan-reset" evaluate +; +' mv8686-reset-quirk to ?mv8686-quirk
Modified: dev/mmc/sdhci/sdhci.fth ============================================================================== --- dev/mmc/sdhci/sdhci.fth Wed Aug 4 06:44:34 2010 (r1907) +++ dev/mmc/sdhci/sdhci.fth Wed Aug 4 06:47:17 2010 (r1908) @@ -23,6 +23,8 @@
h# 200 constant /block \ 512 bytes
+defer ?mv8686-quirk ' noop to ?mv8686-quirk + external : set-address ( rca slot -- ) to slot to rca map-regs ; : get-address ( -- rca ) rca ; @@ -749,6 +751,7 @@ card-power-off d# 500 ms card-power-on d# 50 ms \ This delay is just a guess (20 was barely too slow for a Via board) card-inserted? 0= if card-power-off intstat-off false true exit then + ?mv8686-quirk card-clock-slow d# 50 ms \ This delay is just a guess reset-card \ Cmd 0 false
Modified: dev/mmc/sdhci/sdhcixo.bth ============================================================================== --- dev/mmc/sdhci/sdhcixo.bth Wed Aug 4 06:44:34 2010 (r1907) +++ dev/mmc/sdhci/sdhcixo.bth Wed Aug 4 06:47:17 2010 (r1908) @@ -10,7 +10,7 @@ FCode-version2 fload ${BP}/dev/mmc/sdhci/pciregs.fth fload ${BP}/dev/mmc/sdhci/sdhci.fth - +fload ${BP}/dev/mmc/sdhci/mv8686/quirk.fth init
: populate-children ( -- )