On 08/08/2014 12:44 AM, Jean-Michel Hautbois wrote: > 2014-08-07 17:02 GMT+02:00 Hsin-Hsiang Tseng <hsinhsiangtseng@xxxxxxxxx>: >>> [ 1.366291] mmcblk1: error -84 transferring data, sector 0, nr 8, >>> cmd response 0x900, card status 0xb00 >>> [ 1.374409] mmcblk1: retrying using single block read >>> [ 1.378810] mmcblk1: error -84 transferring data, sector 0, nr 8, >>> cmd response 0x900, card status 0x0 >> At first, the kernel driver uses multiple read(cmd 18) to read data >> from sector 0 to sector 8, but fail. >> And then, retry by single read(cmd 17), but still fail... >> >>> [ 2.050460] mmcblk1boot0: unable to read partition table >> You are trying to read boot partition data, as I remember when we >> access boot partition, we need to sync the bus width, frequency and >> timing(SDR, DDR). If you don't access at boot partition, use the MMC_CAP2_BOOTPART_NOACC. >> >> Maybe you can turn on the MMC debug config. As a result, you can check >> what kind of commands the kernel driver send. >> > > I don't have a big enough log buffer, but here is what I get after booting : > [ 258.901572] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 258.901632] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 259.893768] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 259.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 259.894909] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 259.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 259.901578] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 259.901637] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 260.893767] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 260.893865] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 260.894906] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 260.894937] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 260.901582] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 260.901641] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 261.893765] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 261.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 261.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 261.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 261.901576] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 261.901636] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 262.893769] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 262.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 262.894908] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 262.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 262.901583] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 262.901642] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 263.893763] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 263.893861] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 263.894903] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 263.894932] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 263.901576] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 263.901637] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 264.893758] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 264.893856] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 264.894898] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 264.894928] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 264.901574] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 264.901634] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 265.893769] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 265.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 265.894908] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 265.894939] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 265.901585] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 265.901646] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 266.893766] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 266.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 266.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 266.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 266.901612] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 266.901672] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 267.893768] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 267.893865] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 267.894907] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 267.894937] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 267.901580] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 267.901640] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 268.893769] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 268.893867] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 268.894909] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 268.894938] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 268.901579] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 > [ 268.901638] mmc0: req done (CMD13): 0: 00000900 00000000 00000000 00000000 > [ 269.893765] mmc0: starting CMD13 arg 00020000 flags 00000195 > [ 269.893864] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > [ 269.894905] sdhci-esdhc-imx 2198000.usdhc: change pinctrl state for uhs 2 > [ 269.894935] sdhci-esdhc-imx 2198000.usdhc: desired SD clock: > 50000000, actual: 49500000 > > Is this normal to get an interrupt every second, and change pinctrl > state each time ? It seems that your system is working the polling detect scheme. To detect the card, it's polling the card status at every time. Best Regards, Jaehoon Chung > JM > -- 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