Re: CMD7 failing on ATP & Transcend MMC cards

From: Jarkko Lavinen
Date: Tue Oct 04 2005 - 08:21:58 EST


On Mon, Oct 03, 2005 at 03:02:52PM +0100, Russell King wrote:
> I'm not surprised. CMD2 is part way through the initialisation
> sequence, so no one should be sending a CMD7.

The command sequence in the initial card detection is:

CMD1 card send its operation conditions
CMD2 card sends its CID
CMD3(rca) Card is given relative call address. Card enters standby and
switches to push pull mode and won't respond to CMD1-3 anymore.
CMD2 Check for other cards. None responds. All cards have been
identified. CMD2 is sent many times.
CMD7(rca) The card is addressed with its RCA and enters transfer state.

The card is then accessed normally and everything works and also
ATP and Transcend cards work up to this.

Problems appear when mmc_detect_change() is called from switch_handler().
This happens when cover switch interrupt comes but the card has not been
removed. Old cards are checked with CMD13 and new cards if any are
detected:

CMD7(0) Deselect currently selected card. Its RCA remains the
same.
CMD1
CMD2 CMD2 sent many times, but no card replies.
CMD7(rca) The selected card should respond. ATP and Transcend
give illegal instruction instead and retries with CMD7
fail.


> After a CMD2, the next expected command is a CMD3 for MMC cards (maybe
> not SD cards).

Does this apply when threre are no new cards and no card replied to
CMD2?

Jarkko Lavinen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/