On 17.05.2009 15:14 Uhr, Peter Stuge wrote:
Patrick, in r95 you're using a type member in struct memrange (itself a member of libpayload sysinfo_t) but the type member only exists in the coreboot table, not in libpayload's sysinfo_t.memrange.
What is the good fix? Add the type member to libpayload sysinfo_t.memrange
yes.
work with coreboot tables directly
Not so good, because this indirection makes things work without coreboot but multiboot (grub).
or ignore everything but than CB_MEM_RAM when copying entires from coreboot table into sysinfo_t.memrange, making the changes in r95 no longer neccessary?
Not so good either, because FILO uses the libpayload structures to produce an e820 map. If High Tables and PCIe memory ranges are not marked in what is passed to the OS as E820, the OS (Linux at least) will show errors/weird symptoms.
We have a patch for libpayload. Let me dig it out and get it to the list.
Stefan