Using 3.x series kernel with Mini6410

William
Curious to know if anyone out there is using a 3.x series kernel with the
Mini6410? I have tried 3.2.43, 3.4.40, and 3.8.7, applying the patches
supplied by Pengutronix, as part of a from source build, and I keep having
the kernel hang up when trying to mount the root fs. If I reset the board a
couple of times, it does eventually start, but I keep seeing a running "Too
large timeout requested for CMD25" error coming from the mmc driver. Found
out that this is a known issue - it is resolved by sending the message to
debug, rather than displaying (er, wtf kind of fix is this?) - and applying
the "fix" makes the messages go away (duh), but the system still doesn't
seem to be running right. I also have no working display on the
touchscreen; only console access right now is serial.

I saw on the Pengutronix site that there is a known issue with using SDHC
cards (I am using a class 10, 8GB SDHC). The "fix" for this is "don't use
them". (again, and no offense to Juergen, but this is a "fix"?) I don't
think the issue is with the SDHC cards - it has something to do with the
kernel, because when I load the 2.6.38 kernel, the card comes up, so I am
assuming that there is a setting/parameter somewhere in the kernel code
that changed from the 2.6 series to the 3.x series and is causing this odd
behavior. If I can manage to find it, I'll post how to make it work.

Long and short of it, the only kernel I have been able to boot without any
errors and with decent performance is the 2.6.38 provided by FriendlyARM.
Is it impossible to use any other kernel? Is there a set of known good
patches that can be applied to a stock kernel.org kernel that will work
with the Mini6410 and provide support for audio, touchscreen, GPIO, etc? My
goal is to be able to work with a generic setup, as much as is reasonably
possible, rather than be tied to FA support, which seems to be focused on
the Tiny/Mini210 presently.

Any help/suggestions would be greatly appreciated.

William
Quick update ... was able to boot 3.8.7 with the 8GB SDHC card, no reset
required. Apparently, adding "rootdelay=8" to my kernel boot args was all
it needed to give the board a chance to recognize the card and boot
properly.

So that solves that part of the dilemma. Still no display on the
touchscreen, so I guess that'll be the next thing to look at ...

Still hoping that someone out there has a success story to share (hints,
gotchas, etc) using the 3.x series kernel.

Juergen Beisert
Instead of "rootdelay=8" use "rootwait".

William
@Juergen Thanks, will try that. I also noticed that trying to compile on
the system is horrendously slow ... I compiled the "less" utility - took
almost as much time as it did to compile gcc on my development machine.
There is something definitely off with the mmc/sdhci support in the 3.x
series. Same board, same SD card, 2.6 kernel and the same compilation was
almost as fast as on my development machine. I expect some slow-down, but
not to the point that I am seeing. It's a shame because the system itself
feels relatively smooth ... until you have to do I/O to the SD card.

Juergen Beisert
Welcome in the world of updates. If you feel you found a regression you
should send your observation to LKML to get it fixed. But first you should
try with 3.9rc. Maybe it is already fixed.

William
Still seeing slow compile time, but that may just be the limit of the board
at this point ... I did notice that SPI support was not turned on in the
kernel, so I enabled that. Major performance boost for the SD card. Going
through the kernel configuration now to see what else was not enabled but
was enabled by FA in their 2.6 config.

Juergen Beisert
A major performance boost for the SD card when you enable SPI????? The
S3C6410 SoC has dedicated hardware for SD cards and to drive an SPI bus.
They should not depend on each other. Except there is a bug in the
software... (clock routing for example). But this would be another
regression.

William
Yes, I thought that odd as well, but it was a discrepancy between the
configuration I have in the 2.6 kernel build and that I had in the 3.8
kernel build.