diff options
| author | Benjamin Weisenbeck <bweisenb@us.ibm.com> | 2014-01-21 16:16:39 -0600 | 
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-02-06 17:33:39 -0600 | 
| commit | df5febf2843b9fcad4c74233646929d5d560f929 (patch) | |
| tree | aa3f588578ef008246298bd921d3bb11b5bac5e7 /src | |
| parent | 9fd68c17cf40ecf7343ab51f49e2a6a538c27f1b (diff) | |
| download | blackbird-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')
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 | 

