summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubrata Banik <subrata.banik@intel.com>2019-02-25 20:31:22 +0530
committerPatrick Georgi <pgeorgi@google.com>2019-03-07 17:21:44 +0000
commit2847e1e71495158f1af02465fd6083674d767897 (patch)
tree1fa5d292e2e7e813637062fbabb85c34916667b0
parent4f42eead361b8d6b2f96031bcaf4627f2a5ea8a6 (diff)
prog_loader: Associate TS_END_ROMSTAGE timestamp with postcar if exist
This patch adds timestamp for "end of romstage" with postcar if platform has selected postcar as dedicated stage. If postcar stage doesn't exist then "end of romstage" timestamp will get call while starting of ramstage as exist today. TEST=It's been observed that "end of romstage" timestamp doesn't appear in "cbmem -t" log when ramstage is not getting executed. As part of this fix "end of romstage" timestamp is showing in "cbmem -t" log on Intel platform where POSTCAR is a dedicated stage. Change-Id: I17fd89296354b66a5538f85737c79145232593d3 Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/31608 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/arch/x86/postcar_loader.c4
-rw-r--r--src/lib/prog_loaders.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/x86/postcar_loader.c b/src/arch/x86/postcar_loader.c
index 141e8d23ae..a36b90058f 100644
--- a/src/arch/x86/postcar_loader.c
+++ b/src/arch/x86/postcar_loader.c
@@ -23,6 +23,7 @@
#include <rmodule.h>
#include <romstage_handoff.h>
#include <stage_cache.h>
+#include <timestamp.h>
static inline void stack_push(struct postcar_frame *pcf, uint32_t val)
{
@@ -171,5 +172,8 @@ void run_postcar_phase(struct postcar_frame *pcf)
} else
load_postcar_cbfs(&prog, pcf);
+ /* As postcar exist, it's end of romstage here */
+ timestamp_add_now(TS_END_ROMSTAGE);
+
prog_run(&prog);
}
diff --git a/src/lib/prog_loaders.c b/src/lib/prog_loaders.c
index da021f1143..7319811fcd 100644
--- a/src/lib/prog_loaders.c
+++ b/src/lib/prog_loaders.c
@@ -131,7 +131,9 @@ void run_ramstage(void)
if (ENV_POSTCAR)
timestamp_add_now(TS_END_POSTCAR);
- timestamp_add_now(TS_END_ROMSTAGE);
+ /* Call "end of romstage" here if postcar stage doesn't exist */
+ if (ENV_ROMSTAGE)
+ timestamp_add_now(TS_END_ROMSTAGE);
/*
* Only x86 systems using ramstage stage cache currently take the same