diff options
author | Prem Shanker Jha <premjha2@in.ibm.com> | 2018-10-22 08:52:49 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-10-31 22:20:55 -0500 |
commit | ad52fe4087a24997857752c2526807021c14ef5f (patch) | |
tree | d502b7f187265f3ed7f71f8b2c093b90b3c86bf3 /src/import/chips/p9/procedures/hwp/pm | |
parent | 46edcd4b4dee9858a5039a204d4ad35fd03de853 (diff) | |
download | talos-hostboot-ad52fe4087a24997857752c2526807021c14ef5f.tar.gz talos-hostboot-ad52fe4087a24997857752c2526807021c14ef5f.zip |
PM: Fixed handling of CME LFIR mask during PM complex reset.
Commit fixes the handling of CME LFIR mask. In istep 21.1, HB does
a PM complex reset. During this operation, CME LFIR mask is saved
in an attribute and all errors are masked. When HBRT takes over,
it starts by doing a complex reset once again. This back to back
reset without an init in between causes CME LFIR Mask to get lost.
Commit addresses the issue by simply avoiding the saving of FIR
mask during the first reset initiated by HBRT.
Key_Cronus_Test=PM_REGRESS
Change-Id: I55c289b76fc5b3416bca792fc9e1fbf8dba2309e
CQ: SW448193
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67835
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67841
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C index 1470a60bb..91a3393d9 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C @@ -241,12 +241,8 @@ fapi2::ReturnCode pm_cme_fir_reset( p9pmFIR::PMFir <p9pmFIR::FIRTYPE_CME_LFIR> l_cmeFir(l_ex_chplt); - FAPI_TRY(l_cmeFir.get(p9pmFIR::REG_FIRMASK), - "ERROR: Failed to get the CME FIR MASK value"); - /* Only save off the FIR masks if they have been initialized */ - if (firinit_done_flag - == fapi2::ENUM_ATTR_PM_FIRINIT_DONE_ONCE_FLAG_FIRS_INITED) + if ( firinit_done_flag != fapi2::ENUM_ATTR_PM_FIRINIT_DONE_ONCE_FLAG_FIRS_RESET_IN_HB ) { FAPI_TRY(l_cmeFir.get(p9pmFIR::REG_FIRMASK), "ERROR: Failed to get the PBA FIR MASK value"); @@ -254,15 +250,21 @@ fapi2::ReturnCode pm_cme_fir_reset( /* Fetch the CME FIR MASK; Save it to HWP attribute; clear it */ FAPI_TRY(l_cmeFir.saveMask(), "ERROR: Failed to save CME FIR Mask to the attribute"); - } - FAPI_TRY(l_cmeFir.setAllRegBits(p9pmFIR::REG_FIRMASK), - "ERROR: Faled to set the CME FIR MASK"); + FAPI_TRY(l_cmeFir.setAllRegBits(p9pmFIR::REG_FIRMASK), + "ERROR: Faled to set the CME FIR MASK"); - FAPI_TRY(l_cmeFir.put(), - "ERROR:Failed to write to the CME FIR MASK"); + FAPI_TRY(l_cmeFir.put(), + "ERROR:Failed to write to the CME FIR MASK"); + } } + } + if (firinit_done_flag == fapi2::ENUM_ATTR_PM_FIRINIT_DONE_ONCE_FLAG_NO_INIT) + { + firinit_done_flag = fapi2::ENUM_ATTR_PM_FIRINIT_DONE_ONCE_FLAG_FIRS_RESET_IN_HB; + FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_PM_FIRINIT_DONE_ONCE_FLAG, i_target, firinit_done_flag ), + "ERROR: Failed to set attribute PM_FIRINIT_DONE_ONCE_FLAG to RESET_IN_HB in pm_cme_fir_reset"); } fapi_try_exit: |