[coreboot-gerrit] New patch to review for coreboot: soc/intel/fsp_broadwell_de: Fix system hang when timestamp is enabled

York Yang (york.yang@intel.com) gerrit at coreboot.org
Wed Oct 5 19:40:58 CEST 2016


York Yang (york.yang at 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 at 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 at 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);



More information about the coreboot-gerrit mailing list