diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/cbmem.c | 4 | ||||
-rw-r--r-- | src/lib/cbmem_info.c | 1 | ||||
-rw-r--r-- | src/lib/dynamic_cbmem.c | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c index e8200b6045..3702da1e1d 100644 --- a/src/lib/cbmem.c +++ b/src/lib/cbmem.c @@ -22,6 +22,7 @@ #include <bootstate.h> #include <cbmem.h> #include <console/console.h> +#include <cpu/x86/car.h> #if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__) #include <arch/acpi.h> #endif @@ -228,6 +229,9 @@ int cbmem_initialize(void) #ifndef __PRE_RAM__ cbmem_arch_init(); #endif + /* Migrate cache-as-ram variables. */ + car_migrate_variables(); + return rv; } #endif diff --git a/src/lib/cbmem_info.c b/src/lib/cbmem_info.c index ad8c890666..7031a70d54 100644 --- a/src/lib/cbmem_info.c +++ b/src/lib/cbmem_info.c @@ -46,6 +46,7 @@ static struct cbmem_id_to_name { { CBMEM_ID_RAMSTAGE_CACHE, "RAMSTAGE $ " }, { CBMEM_ID_ROOT, "CBMEM ROOT " }, { CBMEM_ID_VBOOT_HANDOFF, "VBOOT " }, + { CBMEM_ID_CAR_GLOBALS, "CAR GLOBALS" }, }; void cbmem_print_entry(int n, u32 id, u64 base, u64 size) diff --git a/src/lib/dynamic_cbmem.c b/src/lib/dynamic_cbmem.c index 5c269a0282..ba7760dcd1 100644 --- a/src/lib/dynamic_cbmem.c +++ b/src/lib/dynamic_cbmem.c @@ -23,6 +23,7 @@ #include <cbmem.h> #include <string.h> #include <stdlib.h> +#include <cpu/x86/car.h> #if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__) #include <arch/acpi.h> #endif @@ -182,12 +183,17 @@ void cbmem_initialize_empty(void) root, root->max_entries); cbmem_arch_init(); + + /* Migrate cache-as-ram variables. */ + car_migrate_variables(); } static inline int cbmem_fail_recovery(void) { cbmem_initialize_empty(); cbmem_handle_acpi_resume(); + /* Migrate cache-as-ram variables. */ + car_migrate_variables(); return 1; } @@ -256,6 +262,9 @@ int cbmem_initialize(void) cbmem_arch_init(); + /* Migrate cache-as-ram variables. */ + car_migrate_variables(); + /* Recovery successful. */ return 0; } |