[U-Boot] [RFC PATCH 6/7] omap: common spl support for OMAP3/4

Albert ARIBAUD
2011-07-01T19:51:30Z

Hi Aneesh,

Le 01/07/2011 13:48, Aneesh V a ?crit :
> Dear Andreas,
>
> On Friday 01 July 2011 03:25 PM, Andreas Bie?mann wrote:
>> Dear Aneesh,
> [snip ..]
>> But the second part is not clear to me. I saw in your linker, that bss
>> is placed in SDRAM. In start.S the boundaries for clear_bss are
>> calculated at compile time to
>>
>> ---8<---
>> _bss_start_ofs:
>> .word __bss_start - _start
>> --->8---
>>
>> Will that also work with e.g. SDRAM adress space is before SRAM, SDRAM
>> addressing is far away (> 4GiB) ... So in you special case it may work,
>> but if this is a blueprint for SPL on arm(v7) we should consider this.
>>
>
> Nice catch. Actually, in my original OMAP4 series I tried to add
> support for disjoint bss to support my case. But now I realize that it
> works only for non-relocation case and that too only when the bss is at
> higher address compared to .text
>
> Basically disjoint bss is not relocation friendly. So here is what I
> propose:
>
> 1. Modify existing clear_bss sub-routine in start.S to take absolute
> addresses.
> 2. In regular u-boot, calculate the relocated bss address and pass to
> this function.
> 3. In SPL don't try to calculate the relocated address and directly
> pass the absolute address.
>
> If this is fine I will make the necessary changes in start.S in the
> next revision.

So you would compute the BSS location in board_init_f() and pass that to
relocate_code()?

> best regards,
> Aneesh

Amicalement,
--
Albert.