coreboot: introduce notion of bootmem for memory map at boot

The write_coreboot_table() in coreboot_table.c was already using
struct memrange for managing and building up the entries that
eventually go into the lb_memory table. Abstract that concept
out to a bootmem memory map. The bootmem concept can then be
used as a basis for loading payloads, for example.

Change-Id: I7edbbca6bbd0568f658fde39ca93b126cab88367
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/5302
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
Aaron Durbin
2014-02-18 21:55:02 -06:00
committed by Aaron Durbin
parent c7db28c580
commit 4904802efc
8 changed files with 245 additions and 91 deletions

View File

@@ -18,7 +18,7 @@
*/
#include <bootstate.h>
#include <boot/tables.h>
#include <bootmem.h>
#include <console/console.h>
#include <cbmem.h>
#include <string.h>
@@ -431,14 +431,14 @@ BOOT_STATE_INIT_ENTRIES(cbmem_bscb) = {
init_cbmem_pre_device, NULL),
};
void cbmem_add_lb_mem(struct lb_memory *mem)
void cbmem_add_bootmem(void)
{
unsigned long base;
unsigned long top;
base = (unsigned long)cbmem_base();
top = (unsigned long)get_top_aligned();
lb_add_memory_range(mem, LB_MEM_TABLE, base, top - base);
bootmem_add_range(base, top - base, LB_MEM_TABLE);
}
void cbmem_list(void)