Patrick Georgi kirjoitti:
Am 30.08.2010 20:54, schrieb Juhana Helovuo:
Hello,
The attached patch adds all the memory memory ranges in the coreboot tables also to the multiboot tables. It is useful e.g. when booting Linux with Grub2 payload, since then Linux gets the Coreboot memory map via multiboot tables.
This patch causes multiboot table to be located in memory before coreboot tables, but it seemed to cause no harm for me.
Signed-off-by: Juhana Helovuo juhe@iki.fi
I like the change, except for the #if 0 section. Could that code be removed entirely, or is there a reason for keeping it?
That section is AFAIK cleaning up in case some memory ranges overlap. Currently it is not used, because coreboot tables already do similar cleaning. I did not dare to remove it altogether, because some future extension may need to insert other memory ranges than those from coreboot tables.
If that is not a concern, I think there are two reasonable choices: (1) insert all entries to multiboot table via that cleanup routine, including ones copied from coreboot table, or (2) just copy everything from coreboot table and remove cleanup routines. Also remove the two built-in entries from multiboot table code, since those seem to be duplicated in coreboot table.
Option (2) results in much simpler code, but then multiboot table is entirely dependent on coreboot table. Is that ok as a design?
Also, what's up with reserved_mem_count? Does that serve any purpose other than dumping the multiboot tables?
Not at the moment, since cleanup code is commented out. It is also needed in the cleanup routine.
Best regards, Juhana Helovuo