From 3dd23a5e72572dd164b3edfae210287b97235c56 Mon Sep 17 00:00:00 2001 From: Kyösti Mälkki Date: Thu, 22 Aug 2019 15:06:50 +0300 Subject: timestamps: Improve collection for ENV_ROMSTAGE_OR_BEFORE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/35032 Reviewed-by: Werner Zeh Tested-by: build bot (Jenkins) --- src/include/timestamp.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/include') diff --git a/src/include/timestamp.h b/src/include/timestamp.h index 04d5c12761..951032c1e7 100644 --- a/src/include/timestamp.h +++ b/src/include/timestamp.h @@ -21,12 +21,10 @@ #if CONFIG(COLLECT_TIMESTAMPS) /* - * timestamp_init() needs to be called once for each of these cases: - * 1. __PRE_RAM__ (bootblock, romstage, verstage, etc) and - * 2. !__PRE_RAM__ (ramstage) - * The latter is taken care of by the generic coreboot infrastructure so - * it's up to the chipset/arch to call timestamp_init() in *one* of - * the __PRE_RAM__ stages. If multiple calls are made timestamps will be lost. + * timestamp_init() needs to be called once in *one* of the ENV_ROMSTAGE_OR_BEFORE + * stages (bootblock, romstage, verstage, etc). It's up to the chipset/arch + * to make the call in the earliest stage, otherwise some timestamps will be lost. + * For x86 ENV_ROMSTAGE call must be made before CAR is torn down. */ void timestamp_init(uint64_t base); /* -- cgit v1.2.3