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

Alexander Stein alexander.stein at systec-electronic.com
Mon May 2 18:07:51 CEST 2011


Hi Detlev,

Am Montag, 2. Mai 2011, 17:31:15 schrieb Detlev Zundel:
> Hi Alexander,
> 
> > Dear Wolfgang,
> > 
> > Am Mittwoch, 27. April 2011, 21:08:50 schrieb Wolfgang Denk:
> >> In message <201104271759.11818.alexander.stein at systec-electronic.com>
> >> you
> > 
> > wrote:
> >> > Setting stdin, stdout and stderr takes a lot of time (IIRC ~500ms).
> >> > Which IMO is useless on a bootloader without LCD support.
> >> 
> >> Statements like this are completely worhtless if you don;t tell
> >> exactly on which architecture and board, and with which exact version
> >> of U-Boot such numbers have been measured.
> > 
> > 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.

Regards,
Alexander


More information about the U-Boot mailing list