summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/car.ld6
-rw-r--r--src/arch/x86/include/arch/early_variables.h6
-rw-r--r--src/arch/x86/include/arch/symbols.h14
-rw-r--r--src/cpu/amd/car/post_cache_as_ram.c4
-rw-r--r--src/cpu/x86/car.c6
-rw-r--r--src/drivers/intel/fsp2_0/memory_init.c2
-rw-r--r--src/soc/intel/quark/romstage/fsp2_0.c2
7 files changed, 16 insertions, 24 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index b382a768b5..a09150fcd9 100644
--- a/src/arch/x86/car.ld
+++ b/src/arch/x86/car.ld
@@ -64,8 +64,6 @@
. += 80;
_car_ehci_dbg_info_end = .;
- _car_relocatable_data_start = .;
-
/* _car_global_start and _car_global_end provide symbols to per-stage
* variables that are not shared like the timestamp and the pre-ram
* cbmem console. This is useful for clearing this area on a per-stage
@@ -78,13 +76,11 @@
*(.sbss)
*(.sbss.*)
#else
- /* .car.global_data objects only around when
- * CONFIG_CAR_GLOBAL_MIGRATION is employed. */
*(.car.global_data);
#endif
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_car_global_end = .;
- _car_relocatable_data_end = .;
+ _car_unallocated_start = .;
#if !CONFIG(C_ENVIRONMENT_BOOTBLOCK)
_car_stack_start = .;
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h
index b501d78d68..57f4306619 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -52,13 +52,13 @@ void car_set_reloc_ptr(void *var, void *val);
static inline size_t car_data_size(void)
{
- size_t car_size = _car_relocatable_data_size;
- return ALIGN_UP(car_size, 64);
+ size_t car_size = _car_global_size;
+ return ALIGN(car_size, 64);
}
static inline size_t car_object_offset(void *ptr)
{
- return (char *)ptr - &_car_relocatable_data_start[0];
+ return (char *)ptr - &_car_global_start[0];
}
#else
diff --git a/src/arch/x86/include/arch/symbols.h b/src/arch/x86/include/arch/symbols.h
index 18b0539847..a516155dec 100644
--- a/src/arch/x86/include/arch/symbols.h
+++ b/src/arch/x86/include/arch/symbols.h
@@ -31,22 +31,18 @@ extern char _car_stack_start[];
extern char _car_stack_end[];
#define _car_stack_size (_car_stack_end - _car_stack_start)
+extern char _car_unallocated_start[];
+
extern char _car_ehci_dbg_info_start[];
extern char _car_ehci_dbg_info_end[];
#define _car_ehci_dbg_info_size \
(_car_ehci_dbg_info_end - _car_ehci_dbg_info_start)
/*
- * The _car_relocatable_data_[start|end] symbols cover CAR data which is
- * relocatable once memory comes online. Variables with CAR_GLOBAL decoration
- * reside within this region. The _car_global_[start|end] is a subset of the
- * relocatable region which excludes the timestamp region because of
- * intricacies in the timestamp code.
+ * The _car_global_[start|end]symbols cover CAR data which is relocatable
+ * once memory comes online. Variables with CAR_GLOBAL decoration
+ * reside within this region.
*/
-extern char _car_relocatable_data_start[];
-extern char _car_relocatable_data_end[];
-#define _car_relocatable_data_size \
- (_car_relocatable_data_end - _car_relocatable_data_start)
extern char _car_global_start[];
extern char _car_global_end[];
#define _car_global_size (_car_global_end - _car_global_start)
diff --git a/src/cpu/amd/car/post_cache_as_ram.c b/src/cpu/amd/car/post_cache_as_ram.c
index e094576ed1..78e417fc13 100644
--- a/src/cpu/amd/car/post_cache_as_ram.c
+++ b/src/cpu/amd/car/post_cache_as_ram.c
@@ -101,11 +101,11 @@ asmlinkage void *post_cache_as_ram(void)
void *migrated_car = (void *)(CONFIG_RAMTOP - car_size);
print_car_debug("Copying data from cache to RAM...");
- memcpy_(migrated_car, _car_relocatable_data_start, car_size);
+ memcpy_(migrated_car, _car_global_start, car_size);
print_car_debug(" Done\n");
print_car_debug("Verifying data integrity in RAM...");
- if (memcmp_(migrated_car, _car_relocatable_data_start, car_size) == 0)
+ if (memcmp_(migrated_car, _car_global_start, car_size) == 0)
print_car_debug(" Done\n");
else
print_car_debug(" FAILED\n");
diff --git a/src/cpu/x86/car.c b/src/cpu/x86/car.c
index 4995cf8e82..d8767ae52e 100644
--- a/src/cpu/x86/car.c
+++ b/src/cpu/x86/car.c
@@ -44,8 +44,8 @@ void *car_get_var_ptr(void *var)
{
char *migrated_base = NULL;
int offset;
- void *_car_start = _car_relocatable_data_start;
- void *_car_end = _car_relocatable_data_end;
+ void *_car_start = _car_global_start;
+ void *_car_end = _car_global_end;
/* If the cache-as-ram has not been migrated return the pointer
* passed in. */
@@ -127,7 +127,7 @@ static void do_car_migrate_variables(void)
return;
}
- memcpy(migrated_base, _car_relocatable_data_start, car_size);
+ memcpy(migrated_base, _car_global_start, car_size);
/* Mark that the data has been moved. */
car_migrated = ~0;
diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c
index 08afffc009..1386d2c9f2 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -407,7 +407,7 @@ void fsp_memory_init(bool s3wake)
/* Build up memory map of romstage address space including CAR. */
memranges_init_empty(&memmap, &freeranges[0], ARRAY_SIZE(freeranges));
memranges_insert(&memmap, (uintptr_t)_car_region_start,
- _car_relocatable_data_end - _car_region_start, 0);
+ _car_unallocated_start - _car_region_start, 0);
memranges_insert(&memmap, (uintptr_t)_program, REGION_SIZE(program), 0);
if (!CONFIG(FSP_M_XIP))
diff --git a/src/soc/intel/quark/romstage/fsp2_0.c b/src/soc/intel/quark/romstage/fsp2_0.c
index 6e23de7039..c999bce567 100644
--- a/src/soc/intel/quark/romstage/fsp2_0.c
+++ b/src/soc/intel/quark/romstage/fsp2_0.c
@@ -115,7 +115,7 @@ void platform_fsp_memory_init_params_cb(FSPM_UPD *fspm_upd, uint32_t version)
aupd->StackBase);
printk(BIOS_SPEW, "| |\n");
printk(BIOS_SPEW, "+-------------------+ 0x%p\n",
- _car_relocatable_data_end);
+ _car_global_end);
printk(BIOS_SPEW, "| coreboot data |\n");
printk(BIOS_SPEW, "+-------------------+ 0x%p\n",
_car_stack_end);