[U-Boot] [PATCH v2 15/17] x86: Move relocation code out of board.c
Simon Glass
sjg at chromium.org
Sun Jan 8 18:59:16 CET 2012
Hi Graeme,
On Sun, Jan 8, 2012 at 1:04 AM, Graeme Russ <graeme.russ at gmail.com> wrote:
> Hi Simon,
>
> On 08/01/12 09:15, Simon Glass wrote:
>> Hi Graeme,
>>
>> On Wed, Jan 4, 2012 at 11:59 AM, Graeme Russ <graeme.russ at gmail.com> wrote:
>>> Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
>>> ---
>>> Changes for v2:
>>> - None
>>>
>>> arch/x86/lib/Makefile | 1 +
>>> arch/x86/lib/board.c | 69 +---------------------------
>>> arch/x86/lib/relocate.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++
>>> 3 files changed, 118 insertions(+), 67 deletions(-)
>>> create mode 100644 arch/x86/lib/relocate.c
>>
>> Sorry - these comments are for future reference, since all you are
>> doing here is moving code. But I might as well send them here.
>
> Yes, your comments are good for future reference when the relocation code
> becomes common
>
> [snip]
>
>>> - /* Check that the location of the relocation is in .text */
>>> - if (offset_ptr_rom >= (Elf32_Addr *)CONFIG_SYS_TEXT_BASE) {
>>
>> perhaps:
>>
>> if (re_src->r_offset >= CONFIG_SYS_TEXT_BASE) {
>
> Yep
>
>>
>>> -
>>> - /* Switch to the in-RAM version */
>>> - offset_ptr_ram = (Elf32_Addr *)((ulong)offset_ptr_rom +
>>> - gd->reloc_off);
>>> -
>>> - /* Check that the target points into .text */
>>> - if (*offset_ptr_ram >= CONFIG_SYS_TEXT_BASE &&
>>> - *offset_ptr_ram <
>>> - (CONFIG_SYS_TEXT_BASE + size)) {
>>> - *offset_ptr_ram += gd->reloc_off;
>>
>> Can the target not pointer into data? I think you are allowing this
>> anyway with your test, but are you sure this comment is right?
>
> You are correct, target is not necessarily .text
>
>>
>>> - }
>>> - }
>>> - } while (re_src++ < re_end);
>>
>> Should this while() condition go at the top? What if the table has no entries?
>
> An absurdly unlikely scenario, but worth changing for strict correctness
Hoping we can one day support relocating to an address known at link time...
Regards,
Simon
>
> Regards,
>
> Graeme
More information about the U-Boot
mailing list