cmd12 fails to stop out of range reads on Sandisk 2Gb microSD card.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
There was an issue reported by Cliff Brake some time ago regarding Sandisk 2Gb SD card behavior.
(http://www.mail-archive.com/linux-mmc@xxxxxxxxxxxxxxx/msg00982.html)
It seems I have similar issue with Sandisk 2Gb microSD:
CMD18 read last 8 blocks available (512 bytes each). After the reception of last bytes of last block cmd12 is send to stop transmit. But while command is send card continue transmit. And the first byte received is data error token with valid value 0x8 - out of range. Then 0fxff follows and 8-th byte should be response to cmd12. The problem is: 2Gb sandisk card send 0xc2 and refuse accept any other commands - e.g. it responds with 0x4 to subsequent cmd17. But other card (no name) responds with 0 instead of 0xc2.

8 ff ff ff ff ff ff ff c2 3f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  [Sandisk (SU02G)]

8 ff ff ff ff ff ff ff 0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   [other card (SD02G)]

I can catch this condition, but it's not clear how to resume - card keeps sending 0x4 (illegal command) response. Is this a known issue? I'm using rather old 2.6.19 code (with some backports form upstream), but I didn't find proper fix in later code. Workaround I use at the moment - report smaller disk size - violating block is not read and card can be mounted (m.b. with warnings related to cheat with size).
Any help would be highly appreciated!
--
Thanks,
Pavel Kiryukhin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux