From 744277d9a5c546340a011ea36a18471bd3cdcb85 Mon Sep 17 00:00:00 2001 From: Soma BhanuTej Date: Mon, 22 Jan 2018 09:20:07 -0500 Subject: Enhance p9_extract_sbe_rc -> Return error rc for invalid parameters -> Update OTPROM error detection -> Move L1 & L2 loader section in prog exception -> Add power check for fsp mode -> Extra debug msg when HC is 0 Change-Id: I864cbc19f4f85cad7bb717af957b26b930437eba Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52356 Tested-by: FSP CI Jenkins Tested-by: Jenkins Server Tested-by: HWSV CI Tested-by: Hostboot CI Reviewed-by: Anusha Reddy Rangareddygari Reviewed-by: Sachin Gupta Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52363 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- .../p9/procedures/hwp/perv/p9_extract_sbe_rc.C | 75 ++++++++++++++++------ .../xml/error_info/p9_extract_sbe_rc_errors.xml | 18 +++++- 2 files changed, 73 insertions(+), 20 deletions(-) diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_extract_sbe_rc.C b/src/import/chips/p9/procedures/hwp/perv/p9_extract_sbe_rc.C index 5b3243710..1fe53b1c7 100644 --- a/src/import/chips/p9/procedures/hwp/perv/p9_extract_sbe_rc.C +++ b/src/import/chips/p9/procedures/hwp/perv/p9_extract_sbe_rc.C @@ -166,6 +166,7 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target l_data32_ir; fapi2::buffer l_data32_edr; fapi2::buffer l_data32_iar; + fapi2::buffer l_data32_curr_iar; fapi2::buffer l_data32_srr0 = 0xDEADDEAD; fapi2::buffer l_data32_srr1; fapi2::buffer l_data32_isr; @@ -218,9 +219,22 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target())) + { + o_return_action = P9_EXTRACT_SBE_RC::RESTART_SBE; + FAPI_ASSERT(FAIL, fapi2::EXTRACT_SBE_RC_POWERCHECK_FAIL() .set_TARGET_CHIP(i_target_chip), "VDN_PGOOD not set"); + } + +#endif + FAPI_DBG("p9_extract_sbe_rc: Reading chip ec attribute"); FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_EXTRACT_SBE_RC_P9NDD1_CHIPS, i_target_chip, l_is_ndd1)); @@ -244,6 +258,7 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target(); FAPI_TRY(getCfamRegister(i_target_chip, PERV_SB_CS_FSI, l_data32)); l_data32.setBit(); FAPI_TRY(putCfamRegister(i_target_chip, PERV_SB_CS_FSI, l_data32)); @@ -257,6 +272,8 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target()) { FAPI_INF("p9_extract_sbe_rc : PPE is in HALT state and SDB is set %s", btos(i_set_sdb)); @@ -298,7 +315,7 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target l_sbe_code_state; + FAPI_DBG("p9_extract_sbe_rc : Reading SB_MSG register to collect SBE Code state bits"); + + if(l_is_HB_module && !i_set_sdb) //HB calling Master Proc or HB calling Slave after SMP + { + FAPI_TRY(getScom(i_target_chip, PERV_SB_MSG_SCOM, l_data64)); + l_data64.extractToRight(l_sbe_code_state, 30, 2); + } + else + { + FAPI_TRY(getCfamRegister(i_target_chip, PERV_SB_MSG_FSI, l_data32)); + l_data32.extractToRight(l_sbe_code_state, 30, 2); + } + + if(l_sbe_code_state == 0x2) { o_return_action = P9_EXTRACT_SBE_RC::REIPL_BKP_SEEPROM; FAPI_ASSERT(FAIL, fapi2::EXTRACT_SBE_RC_SBE_L1_LOADER_FAIL() .set_TARGET_CHIP(i_target_chip), - "ERROR:Program Interrupt occured during base loader (l1)"); + "ERROR:Program Interrupt occured during base loader (L1)"); } else if(l_sbe_code_state == 0x3) @@ -545,7 +592,7 @@ fapi2::ReturnCode p9_extract_sbe_rc(const fapi2::Target + + RC_EXTRACT_SBE_RC_POWERCHECK_FAIL + + VDN_PGOOD C4 pin is not set high. + Action:Retrigger IPL or HRESET [RESTART_SBE] + + ROOT_CTRL_REGISTERS_CFAM TARGET_TYPE_PROC_CHIPTARGET_CHIP + + TARGET_CHIP + TARGET_TYPE_PROC_CHIP + HIGH + + + RC_EXTRACT_SBE_RC_RUNNING @@ -57,7 +71,7 @@ RC_EXTRACT_SBE_RC_NEVER_STARTED - SBE engine was probably never started + SBE engine was probably never started or SBE got halted by programming XCR to halt Action:Retrigger IPL or HRESET [RESTART_SBE] CBS_STATUS_REGISTERS TARGET_TYPE_PROC_CHIPTARGET_CHIP @@ -234,7 +248,7 @@ RC_EXTRACT_SBE_RC_SBE_L2_LOADER_FAIL - Program Interrupt occured during pk loader + Program Interrupt occured during L2 loader or pk boot Action:Switch seeprom [REIPL_BKP_SEEPROM] CBS_STATUS_REGISTERS TARGET_TYPE_PROC_CHIPTARGET_CHIP -- cgit v1.2.1