Hi Brendan,
On Wed, Mar 27, 2013 at 11:20 AM, Brendan Conoboy <blc(a)redhat.com> wrote:
On 03/26/2013 05:04 PM, Graeme Russ wrote:
>
> Hi Brendan,
>
> On Wed, Mar 27, 2013 at 10:54 AM, Brendan Conoboy <blc(a)redhat.com> wrote:
>>
>> On 03/26/2013 04:49 PM, Graeme Russ wrote:
>>>
>>>
>>> 4. Relocatable kernel (like x86)
>>
>>
>> If I understand correctly it already is relocatable. This is simply the
>> address that uboot is instructed to load the kernel into memory at.
>
>
> So why worry? Just have the load address in the U-Boot environment.
Because uboot's bootm does not handling the relocation?
Ah, I think I get it now. The x86 relocatable kernel is truly
relocatable - the kernel itself figures out where is has been loaded
and performs some adjustments
> Not 100% sure the mechanics of U-Boot loading an ARM kernel but
I
> think it just loads it blindly where it is told to (i.e. does not
> analyse the header)
I just realised I got this a bit wrong - mkimage make a U-Boot image
with a header which contains the kernel load address. Not sure what
mkimage does to the Linux kernel binary itself
That would make more sense (This was my understanding as well,
actually),
but we're still having an issue: The uImage header, stored in RAM, has a
load address that is wrong for some platforms. Unless we're going to change
that with an in-uboot memory editor, bootm will honor the address in that
header and the boot will fail.
I think this is worth raising on the U-Boot ML
Regards,
Graeme