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

Nishanth Menon
2010-11-05T13:12:36Z

Sergiy Kibrik wrote, on 11/05/2010 08:35 AM:
> 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
how about all those folks who dont have a serial cable handy instead
would like to power the board + see the terminal over usb?

>
>>> -tweaked blob load address to avoid image relocation (according to
>>> default uImage load address);
>>>
>>> Signed-off-by: Sergiy Kibrik<sergiy.kibrik@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.
for what? getting to u-boot shell prompt? if so, I wonder how it does it
actually happen.

>
>>> ---
>>> 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

surprised how changing env saves 0.2 seconds - apologies, I dont have a
panda on hand at the moment to do some actual tests with the board and
patch :(

>
>>
>>> #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.

adding a comment will help
/* enable this to get tty over usb */
>>
>>> #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.
thanks for the clarification -> it might be good for us to come up with
something a bit more automated as you can, in theory run mkuboot.sh with
a different address.

--
Regards,
Nishanth Menon