From 6279c2d6b6938e63243558ce60184fa3725113bb Mon Sep 17 00:00:00 2001 From: Prem Shanker Jha Date: Tue, 18 Feb 2014 02:59:03 -0600 Subject: PRD:Corrected action for PSIHBFIR[5,6] Change-Id: Ib0a9fa11204d0323615f052d1b652d203de656a5 CQ:SW247024 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8947 Tested-by: Jenkins Server Reviewed-by: Christopher T. Phan Reviewed-by: Sachin Gupta Reviewed-by: Bilicon Patil Reviewed-by: BENJAMIN J. WEISENBECK Reviewed-by: A. Patrick Williams III Reviewed-by: Zane Shelley Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9613 --- .../diag/prdf/common/framework/rule/prdrCompile.C | 1 + .../common/framework/service/prdfTargetServices.C | 25 ++++++++++++++-------- .../prdf/common/plat/pegasus/Proc_acts_PB.rule | 25 ++++++++++++++++++++-- src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C | 18 ++++++++++++++++ 4 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C index 2d2f5784c..e28d26612 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C @@ -455,6 +455,7 @@ uint32_t prdrActionArgMap(const std::string & i_arg) g_ActionArgMap["TYPE_L4"] = TARGETING::TYPE_L4; g_ActionArgMap["TYPE_MBA"] = TARGETING::TYPE_MBA; g_ActionArgMap["TYPE_OCC"] = TARGETING::TYPE_OCC; + g_ActionArgMap["TYPE_PSI"] = TARGETING::TYPE_PSI; g_ActionArgMap["TYPE_NA"] = TARGETING::TYPE_NA; // Initialize symbolic callouts. diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C index fc5bcf249..228b06c55 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C +++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C @@ -384,15 +384,16 @@ struct conn_t case TYPE_PORE: order = 4; break; case TYPE_NX: order = 5; break; case TYPE_OCC: order = 6; break; - case TYPE_EX: order = 7; break; - case TYPE_XBUS: order = 8; break; - case TYPE_ABUS: order = 9; break; - case TYPE_PCI: order = 10; break; - case TYPE_MCS: order = 11; break; - case TYPE_MEMBUF: order = 12; break; - case TYPE_L4: order = 13; break; - case TYPE_MBA: order = 14; break; - case TYPE_DIMM: order = 15; break; + case TYPE_PSI: order = 7; break; + case TYPE_EX: order = 8; break; + case TYPE_XBUS: order = 9; break; + case TYPE_ABUS: order = 10; break; + case TYPE_PCI: order = 11; break; + case TYPE_MCS: order = 12; break; + case TYPE_MEMBUF: order = 13; break; + case TYPE_L4: order = 14; break; + case TYPE_MBA: order = 15; break; + case TYPE_DIMM: order = 16; break; default: ; } @@ -428,6 +429,7 @@ int32_t getAssociationType( TARGETING::TargetHandle_t i_target, { TYPE_NODE, TYPE_OSC, TargetService::CHILD_BY_AFFINITY }, { TYPE_NODE, TYPE_PROC, TargetService::CHILD_BY_AFFINITY }, { TYPE_NODE, TYPE_OCC, TargetService::CHILD_BY_AFFINITY }, + { TYPE_NODE, TYPE_PSI, TargetService::CHILD_BY_AFFINITY }, { TYPE_NODE, TYPE_EX, TargetService::CHILD_BY_AFFINITY }, { TYPE_NODE, TYPE_XBUS, TargetService::CHILD_BY_AFFINITY }, { TYPE_NODE, TYPE_ABUS, TargetService::CHILD_BY_AFFINITY }, @@ -444,6 +446,7 @@ int32_t getAssociationType( TARGETING::TargetHandle_t i_target, { TYPE_PROC, TYPE_PORE, TargetService::CHILD_BY_AFFINITY }, { TYPE_PROC, TYPE_NX, TargetService::CHILD_BY_AFFINITY }, { TYPE_PROC, TYPE_OCC, TargetService::CHILD_BY_AFFINITY }, + { TYPE_PROC, TYPE_PSI, TargetService::CHILD_BY_AFFINITY }, { TYPE_PROC, TYPE_EX, TargetService::CHILD_BY_AFFINITY }, { TYPE_PROC, TYPE_XBUS, TargetService::CHILD_BY_AFFINITY }, { TYPE_PROC, TYPE_ABUS, TargetService::CHILD_BY_AFFINITY }, @@ -461,6 +464,9 @@ int32_t getAssociationType( TARGETING::TargetHandle_t i_target, { TYPE_OCC, TYPE_NODE, TargetService::PARENT_BY_AFFINITY }, { TYPE_OCC, TYPE_PROC, TargetService::PARENT_BY_AFFINITY }, + { TYPE_PSI, TYPE_NODE, TargetService::PARENT_BY_AFFINITY }, + { TYPE_PSI, TYPE_PROC, TargetService::PARENT_BY_AFFINITY }, + { TYPE_EX, TYPE_NODE, TargetService::PARENT_BY_AFFINITY }, { TYPE_EX, TYPE_PROC, TargetService::PARENT_BY_AFFINITY }, @@ -711,6 +717,7 @@ TargetHandle_t getConnectedPeerTarget( TargetHandle_t i_target ) { case TYPE_XBUS: case TYPE_ABUS: + case TYPE_PSI: o_target = i_target->getAttr(); break; diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule index 071994f3f..cd3b2f662 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule @@ -1345,12 +1345,12 @@ group gPsiHbFir filter singlebit /** PSIHBFIR[5] * FSP_ECC_ERR_CE */ - (PsiHbFir, bit(5)) ? defaultMaskedError; + (PsiHbFir, bit(5)) ? calloutPsiThr32; /** PSIHBFIR[6] * FSP_ECC_ERR_UE */ - (PsiHbFir, bit(6)) ? defaultMaskedError; + (PsiHbFir, bit(6)) ? calloutPsiThr1; /** PSIHBFIR[7] * ERROR_STATE @@ -3163,3 +3163,24 @@ actionclass forceMpIpl funccall("analyzeMpIPL"); }; +/** callout both ends of PSI Link.Threshold is 32 events per day. + */ +actionclass calloutPsiThr32 +{ + calloutPsiLink; + threshold32pday; +}; + +/** callout both ends of PSI Link on first instance.*/ +actionclass calloutPsiThr1 +{ + calloutPsiLink; + threshold1; +}; + +/** callout both ends of PSI link */ +actionclass calloutPsiLink +{ + funccall("calloutPeerPsiBusTgt"); +}; + diff --git a/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C b/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C index c0c72ca57..93df9913f 100644 --- a/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C +++ b/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C @@ -75,6 +75,24 @@ int32_t slwRecovery( ExtensibleChip * i_chip, } PRDF_PLUGIN_DEFINE( Proc, slwRecovery ); +/** + * @brief Callout Peer PSI connected to given Proc target + * @param i_chip P8 chip + * @param i_sc The step code data struct + * @returns Failure or Success + * @note A NOP version of plugin required by FSP PRDF + */ +int32_t calloutPeerPsiBusTgt( ExtensibleChip * i_chip, + STEP_CODE_DATA_STRUCT & i_sc ) +{ + PRDF_ERR( "[Proc::calloutPeerPsiBusTgt] unexpected call: PSI target not " + "supported in hostboot PROC = 0x%08x", i_chip->GetId() ); + + CalloutUtil::defaultError( i_sc ); + return SUCCESS; +} +PRDF_PLUGIN_DEFINE( Proc, calloutPeerPsiBusTgt ); + }//namespace Proc ends }//namespace PRDF ends -- cgit v1.2.1