Port-arm archive

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

Re: sdmmc / mvsdio and SDHC



Hi,

(dropping netbsd-users@)

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

I just realised that sdhc is not used, there is a specific driver for the
marvell chip: mvsdio. So I was guessing/trying at the wrong place.

I'm still interested in comments on the potential delay the kernel should give
to the controller for a command to complete and what are the actual values in
sdmmc/sdhc, for the sake of curiosity.

(excerpt from a Linux patch:

  The limit is really 250 ms, but that is insufficient for some crappy cards.
  The MMC spec "It is strongly recommended for hosts to implement more than 
500ms
  timeout value even if the card indicates the 250ms maximum busy length."  
Even the
  previous value of 300ms is known to be insufficient for some cards.

http://www.spinics.net/lists/linux-mmc/msg13217.html)


Sebastien


Home | Main Index | Thread Index | Old Index