On Sat, Feb 21, 2009 at 06:01:39PM +0100, Peter Stuge wrote:
Kevin O'Connor wrote:
If one defines it in the coreboot table, it'll show up in the e820 map. So, I guess the best thing would be to add this support to coreboot.
Tread carefully here. e820 gets a memory map, but coreboot tables are much more generic. Please don't start adding memory entries to the coreboot table!
Make sure to use new entries in the coreboot structures and let SeaBIOS translate them.
Huh, it's already in coreboot.
From src/include/boot/coreboot_tables.h:
struct lb_memory_range { struct lb_uint64 start; struct lb_uint64 size; uint32_t type; #define LB_MEM_RAM 1 /* Memory anyone can use */ #define LB_MEM_RESERVED 2 /* Don't use this memory region */ #define LB_MEM_TABLE 16 /* Ram configuration tables are kept in */ };
And the e820 looks like:
#define E820_RAM 1 #define E820_RESERVED 2 #define E820_ACPI 3 #define E820_NVS 4 #define E820_UNUSABLE 5
struct e820entry { u64 start; u64 size; u32 type; };
So, SeaBIOS just copies the info over (with special handling for LB_MEM_TABLE).
-Kevin