summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-08-22 15:06:50 +0300
committerKyösti Mälkki <kyosti.malkki@gmail.com>2019-09-11 04:57:12 +0000
commit3dd23a5e72572dd164b3edfae210287b97235c56 (patch)
tree5099b80217152255f576560e178bf34f2970c338 /src/arch
parent98e338ee869f089a04b910230e5d852c3f1a0da5 (diff)
downloadcoreboot-3dd23a5e72572dd164b3edfae210287b97235c56.tar.gz
coreboot-3dd23a5e72572dd164b3edfae210287b97235c56.tar.bz2
coreboot-3dd23a5e72572dd164b3edfae210287b97235c56.zip
timestamps: Improve collection for ENV_ROMSTAGE_OR_BEFORE
Keep track of the active timestamp table location using a CAR_GLOBAL variable. Done this way, the entire table can be located outside _car_relocatable_data and we only switch the pointer to CBMEM and copy the data before CAR gets torn down. Fix comments about requirements of timestamp_init() usage. Remove timestamp_cache from postcar and ramstage, as CBMEM is available early on. Change-Id: I87370f62db23318069b6fd56ba0d1171d619cb8a Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/35032 Reviewed-by: Werner Zeh <werner.zeh@siemens.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/car.ld11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index 9d5ab284f258..2fbdb7154661 100644
--- a/src/arch/x86/car.ld
+++ b/src/arch/x86/car.ld
@@ -56,17 +56,16 @@
. += 32;
_epdpt = .;
#endif
- _car_relocatable_data_start = .;
- /* The timestamp implementation relies on this storage to be around
- * after migration. One of the fields indicates not to use it as the
- * backing store once cbmem comes online. Therefore, this data needs
- * to reside in the migrated area (between _car_relocatable_data_start
- * and _car_relocatable_data_end). */
+
TIMESTAMP(., 0x200)
+
+ _car_relocatable_data_start = .;
+
_car_ehci_dbg_info_start = .;
/* Reserve sizeof(struct ehci_dbg_info). */
. += 80;
_car_ehci_dbg_info_end = .;
+
/* _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