York Yang (york.yang@intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16894
-gerrit
commit 5b1999f33bb9321223f940f3b3a64245736f8bf5 Author: York Yang york.yang@intel.com Date: Wed Oct 5 10:19:40 2016 -0700
soc/intel/fsp_broadwell_de: Fix system hang when timestamp is enabled
When timestamp is enabled, system hang in romstage because the timestamp data area is not yet available. This data area will be set after return from FspInit(), so move timestamp_init() to right after FspInit().
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 --- src/soc/intel/fsp_broadwell_de/romstage/romstage.c | 7 ++----- 1 file 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 309a672..49bdedb 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);