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.