Re: Sandisk MMC I/O errors

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

 



2014-08-08 5:12 GMT+02:00 Jaehoon Chung <jh80.chung@xxxxxxxxxxx>:
> 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.

How can I do that properly ?

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

The DT is configured with "non-removable;" It should check card status
or I missed something :-( ?

Thanks,
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




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

  Powered by Linux