summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2014-02-18 02:59:03 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-03-13 15:45:26 -0500
commit6279c2d6b6938e63243558ce60184fa3725113bb (patch)
treeeb6939bf9a418801e8c3a94e9838b5a9668b7038
parentefecaba1829f952d6f3d315ecc220dd510a44b0e (diff)
downloadtalos-hostboot-6279c2d6b6938e63243558ce60184fa3725113bb.tar.gz
talos-hostboot-6279c2d6b6938e63243558ce60184fa3725113bb.zip
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 <cphan@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: Bilicon Patil <bilpatil@in.ibm.com> Reviewed-by: BENJAMIN J. WEISENBECK <bweisenb@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9613
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrCompile.C1
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfTargetServices.C25
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule25
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C18
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<ATTR_PEER_TARGET>();
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
OpenPOWER on IntegriCloud