Port-arm archive

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

Re: sdmmc / mvsdio and SDHC



Hi,

> >> mvsdio0: CRC Error (0x4000)
> >> ld0a: error writing fsbn 7905408 of 7905408-7905439 (ld0 bn 7979136; cn 
> >> 3896 tn 4 sn 0)
> >> ld0a: error writing fsbn 4108352 of 4108352-4108383 (ld0 bn 4182080; cn 
> >> 2042 tn 2 sn 0)
> >> ld0a: error writing fsbn 2614432 of 2614432-2614463 (ld0 bn 2688160; cn 
> >> 1312 tn 37 sn 0)
> >> ld0a: error writing fsbn 2614464 of 2614464-2614495 (ld0 bn 2688192; cn 
> >> 1312 tn 38 sn 0)
> >> ld0a: error writing fsbn 3361664 of 3361664-3361695 (ld0 bn 3435392; cn 
> >> 1677 tn 28 sn 0)
> >> ...
> >> and finally I/O error.
> >> 
> >> (with debug options: ld0: error 60)
> > 
> > Maybe 60 stands for how many times system tried to read and finally gave up.
> 
> Uh, no.  60 is ETIMEDOUT.

I've searched a lot on the subject before writing my email and found that
timeouts are a common issue with SDHC cards on other OSes as well (I don't have
the references here, but I had found Linux kernel patches and other technical
material and discutions (uboot...) that state that for "crappy" SDHC cards, a
read timeout of no less than 500ms is recommended.

I read some sdmmc/shdc code and noticed a bunch of timeout constants defined as
'hz'.

Just a guess: hz is 100 on my platform, wich would give a timeout of
10ms. I tried to add a 50x multiplier, but it did not help.

Is my guessing totally wrong ?
Do you think I should try to add some sdmmc_delay() somewhere ? Does any 
specific
place come to your mind ?

Thank you,

Sebastien


Home | Main Index | Thread Index | Old Index