CBMEM tables: Remove references to global high_tables_base

Unify checks and writing of CBMEM tables for x86 and ARMv7.

Change-Id: I89c012bce1b86d0710748719a8840ec532ce6939
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/3559
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@google.com>
This commit is contained in:
Kyösti Mälkki
2013-09-04 14:11:08 +03:00
parent 1ae305efe1
commit e1ea802ea6
5 changed files with 24 additions and 23 deletions

View File

@@ -21,6 +21,7 @@
#include <string.h>
#include <bootstate.h>
#include <cbmem.h>
#include <boot/coreboot_tables.h>
#include <console/console.h>
#include <cpu/x86/car.h>
#if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__)
@@ -260,6 +261,22 @@ BOOT_STATE_INIT_ENTRIES(cbmem_bscb) = {
init_cbmem_post_device, NULL),
};
int cbmem_base_check(void)
{
if (!high_tables_base) {
printk(BIOS_ERR, "ERROR: CBMEM Base is not set.\n");
// Are there any boards without?
// Stepan thinks we should die() here!
}
printk(BIOS_DEBUG, "CBMEM Base is %llx.\n", high_tables_base);
return !!high_tables_base;
}
void cbmem_add_lb_mem(struct lb_memory *mem)
{
lb_add_memory_range(mem, LB_MEM_TABLE, high_tables_base, high_tables_size);
}
void cbmem_list(void)
{
struct cbmem_entry *cbmem_toc;

View File

@@ -539,12 +539,7 @@ unsigned long write_coreboot_table(
lb_add_memory_range(mem, LB_MEM_TABLE,
rom_table_start, rom_table_end - rom_table_start);
#if CONFIG_DYNAMIC_CBMEM
cbmem_add_lb_mem(mem);
#else /* CONFIG_DYNAMIC_CBMEM */
lb_add_memory_range(mem, LB_MEM_TABLE,
high_tables_base, high_tables_size);
#endif /* CONFIG_DYNAMIC_CBMEM */
/* 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. */