On 15-9-2010 18:51, Haavard Skinnemoen wrote: > Ben Nizette <bn@xxxxxxxxxxxxxxx> wrote: >> On 15/09/2010, at 6:59 PM, Haavard Skinnemoen wrote: >> >>> Since the identification frequency was increased to 400 kHz, my >>> ATSTK1000 board has not been able to initialize any MMC or SD cards. >>> Reducing the identification mode frequency to 200 kHz fixes the problem. >>> >>> This is definitely a board-specific issue, probably due to weak pull-up >>> resistor values, but this is the simplest fix I could come up with. >> I wonder whether there's an Atmel reference schematic around with an >> incorrect resistor value on it, the only three people I know affected >> by this are myself, Hein Tibosch and you, all on AVR32. It was reported by a few more, who wrote me "off-list", but all of them were using AVR32 > Yes, if you've used the STK1000 schematics as a reference, the resistor > values are probably a bit on the high side. I can't really suggest any > better values, as I don't remember what they should be, and the various > specs are quite inconsistent so it's not straightforward to find the > best values. > > On the other hand, you could argue that the resistor values are fine as > they are, and that the Linux MMC subsystem is broken because it runs > the bus faster than what the hardware allows. Replacing the resistors > with stronger ones might reduce the maximum speed in push-pull mode, so > I wouldn't necessarily recommend it, especially when it's trivial to fix > the issue in software. > I did find it strange to put the freq at the memory's maximum of 400 Khz >> We've now submitted one fix each, mine was similar to yours [1] but there's been movement on Hein's more comprehensive patch recently [2]. I don't know who's supposed to be merging MMC patches atm, Chris Ball added on CC on a hunch. > Thanks for the references. IMO Hein's patch is overkill. There is > absolutely no reason why 200 kHz should be a problem on any setup, and > I haven't found any indication in any discussions that it is. > I have also seen situations in which the SD will only start up at 180 Khz or lower. IMO my patch is indeed a bit of an overkill (the amount of code changed), I'd rather see a patch like yours or Ben's, but settings fOD at 100 or 50 Khz. It was Pierre who suggested to try several frequencies[1]: most systems will start using 400 Khz (so they won't suffer any loss of performance) and in some rare cases, the SD will only be identified at 100 Khz (which does happen, sometimes) [1] http://article.gmane.org/gmane.linux.kernel.mmc/994 > The reason why fOD was set to 400 kHz in the first place is that some > controllers have a very low f_min so running the initialization at that > frequency causes problems. Which makes sense because the SD standard > clearly says that the clock can't be slower than 100 kHz. > > But I have never seen any reasons why we absolutely _have_ to run the > clock at the maximum frequency allowed by the spec. In fact, Sascha > Hauer, who was the one who changed the minimum clock frequency to 400 > kHz, said he would be fine with any frequency between 50 kHz and 400 > kHz That's right Hein -- 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