This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

eMMC 4.X or 5.X with dm816x and linux 2.6.37?

Other Parts Discussed in Thread: CSD

I have an v5.0 eMMC (4GB) device connected via a MMCplus connector to the dm816x SD interface and the interface is setup as 4-bit. Most of the time it looks ok, I can use it as a root-filesystem; it is not used as a boot-device. But several times the device will fail to function properly: all the transfers will fail with error -84 ( EILSEQ ) which seems to indicate some kind of CRC error.

[  135.610000] mmc0: starting CMD13 arg 00010000 flags 00000195
[  135.620000] mmci-omap-hs mmci-omap-hs.0: mmc0: CMD13, argument 0x00010000
[  135.620000] mmci-omap-hs mmci-omap-hs.0: IRQ Status is 1
[  135.620000] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000
[  135.640000] mmcblk0: error -84 transferring data, sector 0, nr 8, card status 0x900

In essence, the device either functions correctly or doesn't. Could this be some kind of interconnect problem as opposed to a driver problem ? The only change to the driver (omap_hsmmc) has been to change the revision level that's accepted from the ext_csd register:

@@ -238,7 +238,7 @@
        }
 
        card->ext_csd.rev = ext_csd[EXT_CSD_REV];
-       if (card->ext_csd.rev > 5) {
+       if (card->ext_csd.rev > 7) {
                printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
                        mmc_hostname(card->host), card->ext_csd.rev);
                err = -EINVAL;