[U-Boot] [PATCH] OMAP4: speed up booting on Pandaboard

Sergiy Kibrik sergiy.kibrik at globallogic.com
Fri Nov 5 13:35:31 CET 2010


On 11/04/2010 05:46 PM, Nishanth Menon wrote:
> Sergiy Kibrik wrote, on 11/04/2010 05:38 AM:
>> Improved default config for OMAP4 Pandaboard for faster boot:
>>     -reduced environment size to speed up memory initialization;
>>     -USB TTY driver turned off;
> Do we really want to do this?

well, Pandaboard has serial port. It can be used instead of usbtty

>>     -tweaked blob load address to avoid image relocation (according to
>> default uImage load address);
>>
>> Signed-off-by: Sergiy Kibrik<sergiy.kibrik at globallogic.com>
> What kind of savings did we get? I am guessing we have some time x
> savings..
> 

reducing ENV_SIZE saves ~0.2 s.
turning off usbtty saves ~0.2 s.
changing loadaddr saves about a second. As shown my measurements, all introduced changes save about 1.3 - 1.5 seconds.

>> ---
>>   include/configs/omap4_panda.h |    8 ++++----
>>   1 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/include/configs/omap4_panda.h
>> b/include/configs/omap4_panda.h
>> index 74defab..5aba424 100644
>> --- a/include/configs/omap4_panda.h
>> +++ b/include/configs/omap4_panda.h
>> @@ -62,10 +62,10 @@
>>
>>   /*
>>    * Size of malloc() pool
>> - * Total Size Environment - 256k
>> + * Total Size Environment - 2k
>>    * Malloc - add 256k
>>    */
>> -#define CONFIG_ENV_SIZE            (256<<  10)
>> +#define CONFIG_ENV_SIZE            (256<<  4)
> /me likes the change, but not sure how it saves boot time.

again, it's about 0.2 seconds

> 
>>   #define CONFIG_SYS_MALLOC_LEN        (CONFIG_ENV_SIZE + (256<<  10))
>>                           /* initial data */
>>   /* Vector Base */
>> @@ -117,7 +117,7 @@
>>
>>   /* USB device configuration */
>>   #define CONFIG_USB_DEVICE        1
>> -#define CONFIG_USB_TTY            1
>> +#undef CONFIG_USB_TTY
> do we need to have the undef? it might be better to just drop the define
> perhaps? what impact do we have on boot time with this change?

if someone wants to turn usbtty again, he can simply #define variable again, in case we drop the whole line it may be slightly harder to find out proper variable in the code and then #define it all over again. I just thought keeping it will clarify config in some way.
> 
>>   #define CONFIG_SYS_CONSOLE_IS_IN_ENV    1
>>
>>   /* Flash */
>> @@ -146,7 +146,7 @@
>>   #define CONFIG_ENV_OVERWRITE
>>
>>   #define CONFIG_EXTRA_ENV_SETTINGS \
>> -    "loadaddr=0x82000000\0" \
>> +    "loadaddr=0x80007FC0\0" \
> btw, Dumb question: how did we decide on this address? building from
> kernel.org, I see System.map @ c0004000 ==> 80004000
> 
> when I do make uImage,
> /bin/bash /home/nmenon/Src/opensource/linux-2.6/scripts/mkuboot.sh -A
> arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n
> 'Linux-2.6.37-rc1-00005-gd88c092'
> 
0x80007FC0 is kernel load address (0x80008000) minus size of u-boot header (64 bytes). So load address is exactly the same as image address inside loaded blob, and we avoid memmoving kernel to it's load address.

-regards,
Sergey


More information about the U-Boot mailing list