diff options
author | Amit Tendolkar <amit.tendolkar@in.ibm.com> | 2018-07-18 03:24:30 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-08-01 13:35:39 -0500 |
commit | 4022351e16d2eb0368407c7a2e1d28507adcfee3 (patch) | |
tree | e7c255cb9bd303902235792669383dd32672f512 | |
parent | b2cf0aa44b39ba6ff6f09b2ebc3ec3942b020f24 (diff) | |
download | talos-hostboot-4022351e16d2eb0368407c7a2e1d28507adcfee3.tar.gz talos-hostboot-4022351e16d2eb0368407c7a2e1d28507adcfee3.zip |
Enable PM Malf Alert Handling & PM Complex FFDC to HOMER
1. Enable ATTR_PM_MALF_ALERT_ENABLE so that alerts due to a PM
Complex failure are sent to PHYP and related callouts, etc by PRD
are enabled. This is enabled only for PHYP loads.
2. Enable ATTR_PM_RESET_FFDC_ENABLE so that on a PM Complex Reset
triggered due to PM Errors (e.g. Malf alert, etc.), PM Complex FFDC
is captured and stored in the HOMER to enable debug.
Change-Id: I2c0b753e461a59e12f99ef029702759f508904cb
CQ: SW436197
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/62727
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/usr/isteps/istep21/call_host_runtime_setup.C | 7 | ||||
-rw-r--r-- | src/usr/isteps/pm/pm_common.C | 9 | ||||
-rwxr-xr-x | src/usr/targeting/targetservicestart.C | 4 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/usr/isteps/istep21/call_host_runtime_setup.C b/src/usr/isteps/istep21/call_host_runtime_setup.C index 2c2fa0f35..c3c77666a 100644 --- a/src/usr/isteps/istep21/call_host_runtime_setup.C +++ b/src/usr/isteps/istep21/call_host_runtime_setup.C @@ -584,6 +584,13 @@ void* call_host_runtime_setup (void *io_pArgs) do { + // Enable PM Complex Reset FFDC to HOMER + TARGETING::Target * sys = nullptr; + TARGETING::targetService().getTopLevelTarget (sys); + assert (sys != nullptr, + "call_host_runtime_setup() system target is nullptr"); + sys->trySetAttr <ATTR_PM_RESET_FFDC_ENABLE> (0x01); + // Send the master node frequency attribute info // to slave nodes l_err = sendFreqAttrData(); diff --git a/src/usr/isteps/pm/pm_common.C b/src/usr/isteps/pm/pm_common.C index 2a42338a2..dce924590 100644 --- a/src/usr/isteps/pm/pm_common.C +++ b/src/usr/isteps/pm/pm_common.C @@ -826,6 +826,10 @@ namespace HBPM errlHndl_t l_errl = nullptr; + TARGETING::Target * l_sys = nullptr; + TARGETING::targetService().getTopLevelTarget( l_sys ); + assert(l_sys != nullptr); + //Get homer image buffer uint64_t l_homerPhysAddr = 0x0; l_homerPhysAddr = i_target->getAttr<TARGETING::ATTR_HOMER_PHYS_ADDR>(); @@ -839,6 +843,11 @@ namespace HBPM do { // Init path // p9_pm_init.C enum: PM_INIT + if (TARGETING::is_phyp_load()) + { + l_sys->setAttr <TARGETING::ATTR_PM_MALF_ALERT_ENABLE> (0x1); + } + FAPI_INVOKE_HWP( l_errl, p9_pm_init, l_fapiTarg, diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C index ab32b3b28..77e602578 100755 --- a/src/usr/targeting/targetservicestart.C +++ b/src/usr/targeting/targetservicestart.C @@ -458,6 +458,10 @@ static void initializeAttributes(TargetService& i_targetService, l_pTopLevel->setAttr<ATTR_HB_RSV_MEM_NEXT_SECTION>(0); l_pTopLevel->setAttr<ATTR_ATTN_CHK_ALL_PROCS>(1); + //Clear out PM MALF and FFDC enabled attributes + l_pTopLevel->setAttr<ATTR_PM_MALF_ALERT_ENABLE> (0x0); + l_pTopLevel->setAttr<ATTR_PM_RESET_FFDC_ENABLE> (0x0); + //Assemble list of functional procs and zero out virtual address values //to ensure they get set again this IPL TARGETING::PredicateCTM l_chipFilter(CLASS_CHIP, TYPE_PROC); |