Skip to content

Commit

Permalink
Enable PM Malf Alert Handling & PM Complex FFDC to HOMER
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
am10dolkar authored and dcrowell77 committed Aug 1, 2018
1 parent b2cf0aa commit 4022351
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/usr/isteps/istep21/call_host_runtime_setup.C
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
9 changes: 9 additions & 0 deletions src/usr/isteps/pm/pm_common.C
Original file line number Diff line number Diff line change
Expand Up @@ -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>();
Expand All @@ -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,
Expand Down
4 changes: 4 additions & 0 deletions src/usr/targeting/targetservicestart.C
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 4022351

Please sign in to comment.