Kyösti Mälkki submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Marshall Dawson: Looks good to me, approved
arch/x86: Drop _car_relocatable_data symbols

These have become aliases to _car_global_[start|end].

Change-Id: Ibdcaaafdc0e4c6df4a795474903768230d41680d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35033
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
---
M src/arch/x86/car.ld
M src/arch/x86/include/arch/early_variables.h
M src/arch/x86/include/arch/symbols.h
M src/cpu/amd/car/post_cache_as_ram.c
M src/cpu/x86/car.c
M src/drivers/intel/fsp2_0/memory_init.c
M src/soc/intel/quark/romstage/fsp2_0.c
7 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index b382a76..a09150f 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 b501d78..57f4306 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -52,13 +52,13 @@

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 18b0539..a516155 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_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 e094576..78e417f 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 @@
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 4995cf8..d8767ae 100644
--- a/src/cpu/x86/car.c
+++ b/src/cpu/x86/car.c
@@ -44,8 +44,8 @@
{
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 @@
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 08afffc..1386d2c 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -407,7 +407,7 @@
/* 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 6e23de7..c999bce 100644
--- a/src/soc/intel/quark/romstage/fsp2_0.c
+++ b/src/soc/intel/quark/romstage/fsp2_0.c
@@ -115,7 +115,7 @@
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);

To view, visit change 35033. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ibdcaaafdc0e4c6df4a795474903768230d41680d
Gerrit-Change-Number: 35033
Gerrit-PatchSet: 9
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-Reviewer: Aaron Durbin <adurbin@chromium.org>
Gerrit-Reviewer: Julius Werner <jwerner@chromium.org>
Gerrit-Reviewer: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd@gmail.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-Reviewer: Subrata Banik <subrata.banik@intel.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-MessageType: merged