Changeset 2174


Ignore:
Timestamp:
Feb 14, 2011, 8:15:27 AM (4 years ago)
Author:
wmb
Message:

SDHCI - The SD switch-function command - CMD6 - is response type R1, not R1b (as opposed to the MMC SWITCH command - also CMD6 - which is R1b). The SDHCI spec isn't clear what happens when you (erroneously) specify a command with both data transfer and busy. On the first two SDHCI implementations we have seen, the data transfer overrides the busy, but the Marvell MMP2 SDHCI returns two Transfer Complete interrupts - one for the spurious "not busy", and one for the transfer complete. The spurious "not busy" interrupt confused the driver in thinking that the data was ready, when it was not. The fix is to issue the correct command form (R1 without busy) for SD CMD6.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dev/mmc/sdhci/sdhci.fth

    r2109 r2174  
    432432: switch-function  ( arg -- adr ) 
    433433   scratch-buf  d# 64  d# 64  (dma-setup) 
    434    h# 063b h# 11 cmd  ( response drop ) 
     434   h# 063a h# 11 cmd  ( response drop ) 
    435435   2 wait 
    436436   dma-release 
Note: See TracChangeset for help on using the changeset viewer.