[LinuxBIOS] patch: extending LAR, and removing elf from linuxbios (it is not needed)
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Tue Aug 28 18:26:23 CEST 2007
On 28.08.2007 18:19, ron minnich wrote:
> On 8/28/07, Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net> wrote:
>
>> lib/lar.c and util/lar/example.c differ in subtle ways in find_file.
>> Inverted logic in one file, bogus calculations in the other one. We
>> might want to make sure they behave the same way.
This still applies. However, it can be fixed in another commit.
>>> walk += (ntohl(header->len) + ntohl(header->offset) -
>>> 1) & 0xfffffff0;
>> ARGH! Shouldn't that be
>>
>> walk += (ntohl(header->len) + ntohl(header->offset) + 15) & 0xfffffff0;
>
> OK, I added this to the code:
> if (strcmp(&walk[0], "LARCHIVE") != 0)
> continue;
> before the other fix I created. It dies:
> LinuxBIOS-3.0.0 Tue Aug 28 08:21:43 PDT 2007 starting...
> Choosing fallback boot.
> LAR: Attempting to open 'fallback/initram'.
> LAR: Start 0xfff00000 len 0x100000
> LAR: search for normal/payload
> LAR: search for normal/option_table
> LAR: search for normal/stage2
> LAR: search for normal/initram
> LAR: search for %s @ %p
>
> So I put in your fix (replace -1 with +15)
Yes, I just reread that code and have to agree my +15 solution was not
the right one. Maybe we could add some debug printing to find out where
the code is looking for MAGIC, but I'd leave that to a later patch.
> And it is worse:
> LinuxBIOS-3.0.0 Tue Aug 28 08:21:43 PDT 2007 starting...
> Choosing fallback boot.
> LAR: Attempting to open 'fallback/initram'.
> LAR: Start 0xfff00000 len 0x100000
> LAR: search for normal/payload
> LAR: search for normal/stage2
> LAR: search for %s @ %p
>
>
> So, how about we leave my patch in for now while I try to track this
> nasty bug down?
Agreed.
Regards,
Carl-Daniel
More information about the coreboot
mailing list