
Hi Alexander,
Dear Wolfgang,
Am Mittwoch, 27. April 2011, 21:08:50 schrieb Wolfgang Denk:
In message 201104271759.11818.alexander.stein@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 ;)
Cheers Detlev