diff options
Diffstat (limited to 'src')
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 |

