[U-Boot] boot-up time optimization. Where to start?

Detlev Zundel dzu at denx.de
Mon May 2 18:19:24 CEST 2011


Hi Alexander,

[...]

>> > Ok, let me be more precise on this.
>> > We used U-Boot v2010.09 on a custom board running on an I.MX35 (ARM1136).
>> > We noticed the following code snippet took relatively long.
>> > 
>> >>From common/console.c in console_init_r(void):
>> >> /* Setting environment variables */
>> >> for (i = 0; i < 3; i++) {
>> >> 
>> >> 	setenv(stdio_names[i], stdio_devices[i]->name);
>> >> 
>> >> }
>> > 
>> > We added PIN toggling around this part of code and measured something
>> > >100ms. A collegue said it was ~100ms, I remembered ~500ms. Dunno who is
>> > right.
>> 
>> It doesn't really matter who is right - 100ms is way off for setting
>> these variables.  Looking into common/cmd_nvedit.c, these variables have
>> a special handling and there are ifdef's involved, so its not
>> straightforward to read.  You should really find out, where in there the
>> time is spent for your board and fix the problem ;)
>
> Our 'fix' was removing the stated lines at all.

That is not a fix but simply ignoring a problem.  Maybe if you find out
why these lines have such an unexpected run-time, you will solve more
problems also.

We have a mantra here on the mailing list, so let me introduce you to
it:

Solve the problems one by one in the order that you encounter them.
Every ignored problem will come back later and catch you.  Really, it
will.

Now repeat after me ;)

Cheers
  Detlev

-- 
There is no need to be  rigid in carrying out policies about what changes
to install.  To do a good job of maintaining Emacs doesn't require acting
like government bureaucrats.
                -- Richard Stallman <E1MIx3Y-0005iZ-OH at fencepost.gnu.org>
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list