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
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot