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). > > 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 ? 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