UPSTREAM: 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.

BUG=None
BRANCH=None
TEST=None

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>

Change-Id: I59c4bb83ae7e166cceca34988d5a392e5a831afa
Reviewed-on: https://chromium-review.googlesource.com/396230
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
York Yang 2016-10-05 10:19:40 -07:00 committed by chrome-bot
commit e09595d23c

View file

@ -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);