summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2018-10-22 08:52:49 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-10-31 22:20:55 -0500
commitad52fe4087a24997857752c2526807021c14ef5f (patch)
treed502b7f187265f3ed7f71f8b2c093b90b3c86bf3 /src/import/chips/p9/procedures/hwp/pm
parent46edcd4b4dee9858a5039a204d4ad35fd03de853 (diff)
downloadtalos-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.C22
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:
OpenPOWER on IntegriCloud