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

Reinhard Meyer
2010-10-05T13:18:48Z

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

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.