summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYork Yang <york.yang@intel.com>2016-10-05 10:19:40 -0700
committerMartin Roth <martinroth@google.com>2016-10-09 19:08:07 +0200
commit913684cd2e0ec26f443fc128de7dfc18de49da7b (patch)
tree762d8a46584725623bb6b04fb7315be5d95c4aa7
parentab5f3d1304d14dcc8b0d1cfac66e0ea3dbab09fe (diff)
downloadcoreboot-913684cd2e0ec26f443fc128de7dfc18de49da7b.tar.xz
soc/intel/fsp_broadwell_de: Fix system hang when timestamp is enabled
When timestamp is enabled, the system hangs because the timestamp data is not yet available. Add a temporary work around that starts the timestamp after the FspInit() making this data available. Verified on Intel Camelback Mountain CRB and ensured that system can boot to payload with timpstamp feature enabled. Change-Id: I59c4bb83ae7e166cceca34988d5a392e5a831afa Signed-off-by: York Yang <york.yang@intel.com> Reviewed-on: https://review.coreboot.org/16894 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/soc/intel/fsp_broadwell_de/romstage/romstage.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/soc/intel/fsp_broadwell_de/romstage/romstage.c b/src/soc/intel/fsp_broadwell_de/romstage/romstage.c
index 309a672710..49bdedb1ae 100644
--- a/src/soc/intel/fsp_broadwell_de/romstage/romstage.c
+++ b/src/soc/intel/fsp_broadwell_de/romstage/romstage.c
@@ -58,11 +58,8 @@ void *asmlinkage main(FSP_INFO_HEADER *fsp_info_header)
console_init();
init_rtc();
- post_code(0x41);
- timestamp_init(get_initial_timestamp());
- timestamp_add_now(TS_START_ROMSTAGE);
-
/* Call into mainboard. */
+ post_code(0x41);
early_mainboard_romstage_entry();
/*
@@ -71,7 +68,6 @@ void *asmlinkage main(FSP_INFO_HEADER *fsp_info_header)
* structure.
*/
post_code(0x48);
- timestamp_add_now(TS_BEFORE_INITRAM);
printk(BIOS_DEBUG, "Starting the Intel FSP (early_init)\n");
fsp_early_init(fsp_info_header);
die("Uh Oh! fsp_early_init should not return here.\n");
@@ -87,6 +83,7 @@ void romstage_main_continue(EFI_STATUS status, void *hob_list_ptr)
void *cbmem_hob_ptr;
post_code(0x4a);
+ timestamp_init(get_initial_timestamp());
timestamp_add_now(TS_AFTER_INITRAM);
printk(BIOS_DEBUG, "%s status: %x hob_list_ptr: %x\n",
__func__, (u32) status, (u32) hob_list_ptr);