[U-Boot] [RFC] [PATCH V2] arm: arm926ejs: use ELF relocations

Albert ARIBAUD
2010-10-05T13:36:49Z

Le 05/10/2010 15:18, Reinhard Meyer a ?crit :
> Dear Albert ARIBAUD,
>> Le 05/10/2010 13:17, Reinhard Meyer a ?crit :
>>> Dear All ;)
>>>>> Umm... is my understanding correct that we can drop the whole
>>>>> CONFIG_SYS_ARM_WITHOUT_RELOC stuff then, too?
>>>>
>>>> I believe we're just changing the relocation solution, but we're not
>>>> changing the overall strategy regarding CONFIG_SYS_ARM_WITHOUT_RELOC.
>>>
>>> We should not forget that right now, the "ELF" method uses 8 byte entries
>>> to relocate, compared to 4 byte entries with the "GOT" method. We
>>> should not proceed too fast here, the "thought about" tool to squeeze
>>> down
>>> the relocation information should not be completely forgotten...
>>>
>>> Otherwise even more boards would need to change their mtd partitioning ;)
>>>
>>> And I am not too happy if I cannot downgrade to the AT91SAM9XE256 anymore
>>> (256K NOR) if the 512K version proves difficult to obtain ;)
>>>
>>> Reinhard
>>
>> I still think a configuration option to choose between relocation
>> formats would be useful. It could offer:
>>
>> - pure ELF format (8 bytes per relocation plus .dynsym)
>>
>> ... already there, and then to be done:
>>
>> - unified 32-bit format (half the size of pure ELF)
>>
>> - unified 16-bit delta format (a fourth of the size of pure ELF)
>
> Even an 8-bit delta format is possible:
> use the value of 0x00 to skip forward 256 addresses, other values to patch..
> Assuming that all relocations must be on a 32 bit boundary, the delta values
> could even be multiplied by 4 :)

i can see ASN.1-style variable-length integer encoding creeping around,
just waiting to be invoked thrice. :)

> Best Regards,
> Reinhard
>
> PS: I finished the "C" relocation, but it does not work :(
> having problems with setting the stack or calling of board_init_r(),
> I am not sure. Because of otther work I cannot continue there right now.
> If you want to look at it, I can make a patch.

Please do !

Amicalement,
--
Albert.