[coreboot] LAR walking madness
rminnich at gmail.com
Wed Jan 16 18:37:10 CET 2008
On Jan 16, 2008 5:21 AM, Carl-Daniel Hailfinger
<c-d.hailfinger.devel.2006 at gmx.net> wrote:
> Basically, to avoid a full walk, you have to avoid requesting a
> nonexistant file. How?
> We have two sources of for such requests and they are easy to fix:
> - Looking for "normal/initram" when we should have looked for
> "fallback/initram". Simply make sure check_normal_boot_flag() returns a
> value matching the files you stored in the LAR.
> - Looking for "stage2" and "payload" segments which are not there. We
> can either add a "number of segments" field to the LAR header or we
> restrict the number of segments to 2.
It seems like you've added two slightly more complicated ways to do
things where one simple one would have done: an end-of-entries LAR
header. Limiting payload segments to two is going to cause us trouble
now and forever, I think. And I'd still like to have a microcode/
directory, and a rom/ directory, each with an undefined # of entries.
I think the LAR is going to be used in the future in ways we can not
imagine now. So solving those two cases won't help future uses.
So to me, this approach seems to be two special-case solutions to a
problem which needs a general solution. And the general problem is
this: when searching for an entry, we must know when we are at the
last LAR header, so that we do not waste a full second searching all
of FLASH for further entries which are not there.
I think we need to try again.
More information about the coreboot