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

Reply via email to