Ash Charles of Gumstix recently noted that the Linaro image for Overo seemed to perform slower than the one they create.
I've spent a little time investigating this. I'm not familiar with this type of code and apologize if my terminology is off. However, I think there's an issue in the Linaro uboot and/or kernel preventing my Overo Tide from running at a higher clock rate. (We are running at 500mhz but its capable of 720mhz)
I first tried passing "mpurate=720" as a kernel command line option, but I noticed /proc/cpuinfo was not showing 499.92 BogoMips. I then started looking at dmesg traces and noticed this difference:
= Overo Kernel: Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz
= Linaro Kernel: Clocking rate (Crystal/Core/MPU): 26.0/224/500 MHz Reprogramming SDRC clock to 224791666 Hz dpll3_m2_clk rate change failed: -22
So I believe the first problem is that the kernel tries the wrong core clock rate. On a hunch I replaced my Linaro u-boot with the Overo u-boot. That corrected the "clocking rate" message from the kernel.
However, I still was showing 499.92 BogoMips. I looked at dmesg again and noticed this message difference:
= Overo Kernel: Switched to new clocking rate (Crystal/Core/MPU): 26.0/720/332 MHz
= Linaro Kernel: Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/720 MHz
This leads me to believe the mpurate parameter isn't works differently in the two kernels. I grepped around for other parameters I might be able to pass our kernel and didn't really find anything.
So I think there may be two Linaro issues here:
1) u-boot setting up or passing incorrect clock rate 2) kernel not handling mpurate parameter correctly
I'll try and dig around some more, but any pointers would be much appreciated.
-andy
Thanks for the excellent writeup! For u-boot, I find this a bit surprizing as I thought Overo was well supported in upstream u-boot; in any case, please do file a bug against u-boot-linaro on this. It's quite likely patches not yet upstream to u-boot which we might find in Steve Sakoman's tree(s).
For linux, it could either be a missing patch or a config option or a kernel cmdline option, but I guess you tried the latter already; I don't know where to start searching for this, but it's certainly also worth a bug against linux-linaro.
Cheers,
On 03/17/2011 10:28 AM, Loïc Minier wrote:
Thanks for the excellent writeup! For u-boot, I find this a bit surprizing as I thought Overo was well supported in upstream u-boot; in any case, please do file a bug against u-boot-linaro on this. It's quite likely patches not yet upstream to u-boot which we might find in Steve Sakoman's tree(s).
For linux, it could either be a missing patch or a config option or a kernel cmdline option, but I guess you tried the latter already; I don't know where to start searching for this, but it's certainly also worth a bug against linux-linaro.
Cheers,
Turns out it was x-loader and not u-boot. I've opened a bug, lp:737280, as well as merge proposal to fix it based on an upstream fix from Steve Sakoman.
That fixes 50% of the problem. It still looks like there's a kernel issue, so I'll get a bug open on that shortly.
-andy