[U-Boot] [PATCH] arm: Add option to disable code relocation

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Feb 6 22:17:42 CET 2012


Le 06/02/2012 20:27, Mike Frysinger a écrit :
> On Monday 06 February 2012 09:49:27 Tom Rini wrote:
>> On Mon, Feb 6, 2012 at 1:43 AM, Graeme Russ wrote:
>>> On 02/06/2012 06:51 PM, Wolfgang Denk wrote:
>>>> Graeme Russ wrote:
>>>>> I think the immediate focus should be on centralising the init sequence
>>>>> processing into /common/init.c and then bringing the new'initcall'
>>>>> architecture online
>>>>
>>>> Agreed.
>>>>
>>>>> Once these have been done, any board can just specific:
>>>>>
>>>>> SKIP_INIT(RELOC)
>>>>
>>>> I will probably object to his, too - for the same reasons.
>>>
>>> Considering this is a 'free' artefact of how the init sequence functions,
>>> and that it is board specific and totally non-invasive for anyone else
>>> (i.e. no ugly ifdef's anywhere else in the code) I'm surprised you would
>>> object...
>>
>> To pick up Wolfgang's argument, but why do we want to skip relocation?
>>   You can debug through it, it's documented (official wiki has GDB,
>> over in TI-land, the wiki page for CCS has the bits for doing it in
>> that Eclipse-based env, other debuggers I'm sure have a similar "now
>> add symbols at this offset from link" option) and the end result makes
>> it very easy for end-users to break their world (default kernel load
>> addrs being where U-Boot would be).
>
> if you have a static platform which never changes, isn't the relocation a
> waste of time ?  i can understand wanting relocation by default for platforms
> where memory sizes are unknown, but it's not uncommon for people to have fixed
> hardware when they deploy.

Relocation may not be a waste of time if the static platform boots 
U-Boot from NOR, as relocation will be needed to move U-Boot to RAM in 
working order.

Now if the platform is static and has a preloader of sorts, then one can 
predict (or just observe) where U-Boot would want to relocate, and set 
the preloader once and for all (for a given release of U-Boot, that is) 
to load U-Boot directly at that address. U-Boot will skip copy and 
relocation if it already resides at the right address.

> although, with SPL picking up direct-to-Linux booting, this argument might not
> matter that much anymore.

Agreed, although one could make a point that SPL direct-to-Linux is not 
the most common case currently and may not be applicable to all cases 
anyway.

> -mike

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list