
Dear Frank,
In message 53283CA4020000460004BF9D@gwia2.rz.hs-offenburg.de you wrote:
I realized a behavior of U-Boot, which isn't quiet clear to me. I have an ARM9 SAM9G25, that has this boot sequence: AT91Bootstrap -> U-Boot 2010.06 -> Linux 2.6.39. With that system I did 4 Test series about silencing the U-Boot output:
Q1: why are you using so old software?
Q2: Do you actually have a plan for your optimizations, or are you just poking around at random?
- An image with U-Boot output, without network support in U-Boot - takes about 10.6 s to boot.
- An image like above, but without U-Boot output - takes about 10.4 s to boot.
--> 200 ms gained
I think it makes little sense to optimize the small parts - like some 200 ms here - when you appear to ignore the big chunks: a total of 10 seconds appears to be way too much. Did you a profiling of the boot process, so you can really focus on the big fish?
Now why is it, when I disable the output, the time stays the same with network support, but around 200 ms are saved without the network? One thing that comes to my mind U-Boot doing its jobs in parallel, is that true? Since there's a waiting when initializing the network there's enough time to do the output ?
We cannot comment on this, as we have no idea what your tests actually are, and what exactly you mean by "with or without network support". the general rule is that U-Boot is strictly single-tasking, i. e. there are no actions running in parallel.
If you are interested in short boot times you should look into using the SPL with Falcon mode instead. Heiko Schocher has some patches in the works to do this for the AT91SAM9G20 - here we do not need any Atmel code any more; we boot directly into SPL. So you could use Falcon mode and load Linux directly from the SPL.
But of course none of this is present with an ancient v2010.06 U-Boot...
Best regards,
Wolfgang Denk