lib/bootmem: tightly couple bootmem_init to bootmem_write_memory_table

In https://review.coreboot.org/25383 people were confused about the
ordering of bootmem calls w.r.t. when entries are exposed to the OS. To
alleviate this add a notion of bootmem being initialized. In addition to
that, only mark bootmem initialized when bootmem_write_memory_table() is
called. Any other calls to bootmem before that will report an error on
the console.

Change-Id: I5bc31f555038ccabb82d902c54f95858679b1695
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/25503
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Aaron Durbin
2018-04-03 00:08:12 -06:00
committed by Patrick Georgi
parent 99b65668f9
commit 4677f6bbfa
3 changed files with 27 additions and 15 deletions

View File

@@ -524,11 +524,7 @@ static uintptr_t write_coreboot_table(uintptr_t rom_table_end)
}
#endif
/* Initialize the memory map at boot time. */
bootmem_init();
/* No other memory areas can be added after the memory table has been
* committed as the entries won't show up in the serialize mem table. */
/* Serialize resource map into mem table types (LB_MEM_*) */
bootmem_write_memory_table(lb_memory(head));
/* Record our motherboard */