summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/Kconfig15
-rw-r--r--src/arch/x86/boot/cbmem.c4
2 files changed, 19 insertions, 0 deletions
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index edbc67acb2..dfb91fad8e 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -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
diff --git a/src/arch/x86/boot/cbmem.c b/src/arch/x86/boot/cbmem.c
index af42edd841..80588c385d 100644
--- a/src/arch/x86/boot/cbmem.c
+++ b/src/arch/x86/boot/cbmem.c
@@ -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();