summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenjamin Weisenbeck <bweisenb@us.ibm.com>2014-01-21 16:16:39 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-02-06 17:33:39 -0600
commitdf5febf2843b9fcad4c74233646929d5d560f929 (patch)
treeaa3f588578ef008246298bd921d3bb11b5bac5e7 /src
parent9fd68c17cf40ecf7343ab51f49e2a6a538c27f1b (diff)
downloadblackbird-hostboot-df5febf2843b9fcad4c74233646929d5d560f929.tar.gz
blackbird-hostboot-df5febf2843b9fcad4c74233646929d5d560f929.zip
PRD: PRD handling of SLW malfunction alerts
Change-Id: I9e359734a893aaa13010e8f0f98337239b31dbb4 RTC: 63926 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8209 Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Bilicon Patil <bilpatil@in.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Squashed: I7e9209c669e7d441ac78555ff00c3a03c8c4f7f6 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8578 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H3
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfTargetServices.C26
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule17
-rwxr-xr-xsrc/usr/diag/prdf/common/prdfEnums.H4
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C19
5 files changed, 54 insertions, 15 deletions
diff --git a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H
index 758b08fff..90f9ad27b 100644
--- a/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H
+++ b/src/usr/diag/prdf/common/framework/resolution/prdfCalloutMap.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -81,6 +81,7 @@ PRDF_SYM_CALLOUT_ALIAS( NextLevelSupport_ENUM, EPUB_PRC_LVL_SUPP )
PRDF_SYM_CALLOUT_ALIAS( MEMBUS_ERROR_ENUM, EPUB_PRC_MEMBUS_ERROR )
PRDF_SYM_CALLOUT_ALIAS( PassiveFabric_OnNode_ENUM, EPUB_PRC_PROC_XYZ_BUS )
PRDF_SYM_CALLOUT_ALIAS( PassiveFabric_OffNode_ENUM, EPUB_PRC_PROC_AB_BUS )
+PRDF_SYM_CALLOUT_ALIAS( ErrorCausedByMemUE_ENUM, EPUB_PRC_MEMORY_UE )
PRDF_SYM_CALLOUT_MAP_END
diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
index 24f475fc4..24ef31040 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
@@ -381,17 +381,18 @@ struct conn_t
case TYPE_NODE: order = 1; break;
case TYPE_OSC: order = 2; break;
case TYPE_PROC: order = 3; break;
- case TYPE_NX: order = 4; break;
- case TYPE_OCC: order = 5; break;
- case TYPE_EX: order = 6; break;
- case TYPE_XBUS: order = 7; break;
- case TYPE_ABUS: order = 8; break;
- case TYPE_PCI: order = 9; break;
- case TYPE_MCS: order = 10; break;
- case TYPE_MEMBUF: order = 11; break;
- case TYPE_L4: order = 12; break;
- case TYPE_MBA: order = 13; break;
- case TYPE_DIMM: order = 14; break;
+ 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;
default: ;
}
@@ -440,6 +441,7 @@ int32_t getAssociationType( TARGETING::TargetHandle_t i_target,
{ TYPE_OSC, TYPE_NODE, TargetService::PARENT_BY_AFFINITY },
{ TYPE_PROC, TYPE_NODE, TargetService::PARENT_BY_AFFINITY },
+ { 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_EX, TargetService::CHILD_BY_AFFINITY },
@@ -452,6 +454,8 @@ int32_t getAssociationType( TARGETING::TargetHandle_t i_target,
{ TYPE_PROC, TYPE_MBA, TargetService::CHILD_BY_AFFINITY },
{ TYPE_PROC, TYPE_DIMM, TargetService::CHILD_BY_AFFINITY },
+ { TYPE_PORE, TYPE_PROC, TargetService::PARENT_BY_AFFINITY },
+
{ TYPE_NX, TYPE_PROC, TargetService::PARENT_BY_AFFINITY },
{ TYPE_OCC, TYPE_NODE, TargetService::PARENT_BY_AFFINITY },
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
index e554fce26..72f9dae98 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
@@ -797,10 +797,15 @@ group gPmcFir filter singlebit
*/
(PmcFir, bit(36)) ? defaultMaskedError;
- /** PMCFIR[37:46]
+ /** PMCFIR[37]
+ * SLW Malf Alert received by PHYP
+ */
+ (PmcFir, bit(37)) ? SLWRecovery;
+
+ /** PMCFIR[38:46]
* SPARE
*/
- (PmcFir, bit(37|38|39|40|41|42|43|44|45|46)) ? defaultMaskedError;
+ (PmcFir, bit(38|39|40|41|42|43|44|45|46)) ? defaultMaskedError;
/** PMCFIR[47|48]
* FIR_PARITY_ERR
@@ -1329,3 +1334,11 @@ actionclass calloutMasterCoreThr1
dumpSH;
};
+/**
+ * Handle SLW malfunction alert event
+ */
+actionclass SLWRecovery
+{
+ funccall("slwRecovery");
+ threshold1;
+};
diff --git a/src/usr/diag/prdf/common/prdfEnums.H b/src/usr/diag/prdf/common/prdfEnums.H
index 8251ee032..a7cf7ed71 100755
--- a/src/usr/diag/prdf/common/prdfEnums.H
+++ b/src/usr/diag/prdf/common/prdfEnums.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -56,6 +56,7 @@ enum MFG_THRES_SYNC_MSG_TYPE
#define EPUB_PRC_MEMBUS_ERROR HWAS::EPUB_PRC_MEMBUS_ERROR
#define EPUB_PRC_PROC_XYZ_BUS HWAS::EPUB_PRC_PROC_XYZ_BUS
#define EPUB_PRC_PROC_AB_BUS HWAS::EPUB_PRC_PROC_AB_BUS
+ #define EPUB_PRC_MEMORY_UE 0x4F
// FIXME: remove these mapping once the enums are made common
#define SRCI_PRIORITY_HIGH HWAS::SRCI_PRIORITY_HIGH
@@ -82,6 +83,7 @@ enum MFG_THRES_SYNC_MSG_TYPE
EPUB_PRC_PROC_AB_BUS = 0x30,
EPUB_PRC_PROC_XYZ_BUS = 0x31,
EPUB_PRC_MEMBUS_ERROR = 0x34,
+ EPUB_PRC_MEMORY_UE = 0x4F,
SRCI_PRIORITY_LOW = 1,
SRCI_PRIORITY_MEDC = 2,
diff --git a/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C b/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C
index f3baa5bf2..c0c72ca57 100644
--- a/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C
+++ b/src/usr/diag/prdf/plat/pegasus/prdfPlatP8Proc.C
@@ -30,6 +30,7 @@
#include <iipServiceDataCollector.h>
#include <prdfExtensibleChip.H>
#include <prdfPluginMap.H>
+#include <prdfCalloutUtil.H>
using namespace TARGETING;
@@ -56,6 +57,24 @@ int32_t analyzeMpIPL( ExtensibleChip * i_chip,
}
PRDF_PLUGIN_DEFINE( Proc, analyzeMpIPL );
+
+/**
+ * @brief Handle SLW Malfunction alert
+ * @param i_chip P8 chip
+ * @param i_sc The step code data struct
+ * @returns Failure or Success
+ * @note
+ */
+int32_t slwRecovery( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & i_sc )
+{
+ PRDF_ERR( "slwRecovery functionality not supported during hostboot: "
+ "PROC = 0x%08x", i_chip->GetId() );
+ CalloutUtil::defaultError( i_sc );
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( Proc, slwRecovery );
+
}//namespace Proc ends
}//namespace PRDF ends
OpenPOWER on IntegriCloud