CBMEM: Tidy up CAR migration

Move the  CAR migration call to arch -specific part of CBMEM init,
it is truly a x86 specific thing.

Change-Id: I715417e54f197b8745e0670d6b900a5660178141
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/7860
Reviewed-by: Aaron Durbin <adurbin@google.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
Kyösti Mälkki
2014-12-31 20:55:19 +02:00
parent 3bf3854847
commit 91fac61240
9 changed files with 30 additions and 31 deletions

View File

@@ -27,6 +27,5 @@ static inline void *car_get_var_ptr(void *var) { return var; }
#define car_get_var(var) (var)
#define car_sync_var(var) (var)
#define car_set_var(var, val) do { (var) = (val); } while (0)
static inline void car_migrate_variables(void) { }
#endif

View File

@@ -27,6 +27,5 @@ static inline void *car_get_var_ptr(void *var) { return var; }
#define car_get_var(var) (var)
#define car_sync_var(var) (var)
#define car_set_var(var, val) do { (var) = (val); } while (0)
static inline void car_migrate_variables(void) { }
#endif

View File

@@ -20,10 +20,6 @@
#ifndef ARCH_EARLY_VARIABLES_H
#define ARCH_EARLY_VARIABLES_H
#if defined(CONFIG_CAR_MIGRATION) && CONFIG_CAR_MIGRATION
#error "This is RISCV, silly... we don't have CAR here."
#endif
#define CAR_GLOBAL
#define CAR_MIGRATE(migrate_fn_)
@@ -31,6 +27,5 @@ static inline void *car_get_var_ptr(void *var) { return var; }
#define car_get_var(var) (var)
#define car_sync_var(var) (var)
#define car_set_var(var, val) do { (var) = (val); } while (0)
static inline void car_migrate_variables(void) { }
#endif

View File

@@ -51,6 +51,21 @@ config ROMCC
bool
default n
config BROKEN_CAR_MIGRATE
def_bool n
help
Many boards use CAR_GLOBAL but have no EARLY_CBMEM_INIT and
manage CAR migration on S3 resume path only. Couple boards use
CAR_GLOBAL and never do CAR migration.
config LATE_CBMEM_INIT
def_bool n
select BROKEN_CAR_MIGRATE
help
Enable this in chipset's Kconfig if northbridge does not implement
early get_top_of_ram() call for romstage. CBMEM tables will be
allocated late in ramstage, after PCI devices resources are known.
config PC80_SYSTEM
bool
default y if ARCH_X86

View File

@@ -21,6 +21,7 @@
#include <arch/acpi.h>
/* FIXME: Remove after CBMEM_INIT_HOOKS. */
#include <arch/early_variables.h>
#include <cpu/x86/gdt.h>
#include <console/cbmem_console.h>
#include <timestamp.h>
@@ -76,6 +77,9 @@ void *cbmem_top(void)
void cbmem_run_init_hooks(void)
{
/* Migrate car.global_data. */
car_migrate_variables();
#if !defined(__PRE_RAM__)
/* Relocate CBMEM console. */
cbmemc_reinit();