diff options
author | Prem Shanker Jha <premjha2@in.ibm.com> | 2014-11-19 00:21:09 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-02-16 12:00:27 -0600 |
commit | 87e0e35a7698818709c0b864f39e059b77ecea45 (patch) | |
tree | 90c1287ec874b17cd62352a05f708c892186cc54 | |
parent | 28253411cc210245e515edff5b166dd6114d711b (diff) | |
download | talos-hostboot-87e0e35a7698818709c0b864f39e059b77ecea45.tar.gz talos-hostboot-87e0e35a7698818709c0b864f39e059b77ecea45.zip |
PRD: Removed gard resolution and made changes in procedure callout.
Parent commit incorporates ability to specify gard policy in callout resolution.
As a result, gard resolution became redundant and has been removed in this
commit. Also, gard policy associated with procedure callout has been set to
no gard.
Change-Id: I1ff9dedc301814847bbbda2e77ba4fe0a5417901
RTC: 103773
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14639
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15740
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
27 files changed, 188 insertions, 377 deletions
diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C index e3eb70f65..d9ba1ab6e 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C @@ -252,11 +252,6 @@ Resolution & ResolutionFactory::GetDumpResolution( return iv_dumpResolutionFW.get(DumpResolution( iDumpRequestContent ) ); } -Resolution & ResolutionFactory::GetGardResolution(GardAction::ErrorType et) -{ - return iv_gardResolutionFW.get(GardResolution(et)); -} - Resolution & ResolutionFactory::GetCaptureResolution( int32_t i_group ) { return iv_captureResolutionFW.get( CaptureResolution( i_group ) ); diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h index 629e52b05..b943158c1 100755 --- a/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h +++ b/src/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h @@ -62,7 +62,6 @@ #include <xspprdTryResolution.h> #include <xspprdFlagResolution.h> #include <prdDumpResolution.H> -#include <xspprdGardResolution.h> #include <prdfCaptureResolution.H> #include <prdfClockResolution.H> #include <prdfCalloutGard.H> @@ -386,7 +385,6 @@ private: // Data typedef FlyWeight< TryResolution, 20 > TryResolutionFW; // dg06a typedef FlyWeight< FlagResolution, 5 > FlagResolutionFW; // dg06a typedef FlyWeight< DumpResolution, 5 > DumpResolutionFW; // dg06a - typedef FlyWeight< GardResolution, 5 > GardResolutionFW; // dg06a typedef FlyWeight< CaptureResolution, 5> CaptureResolutionFW; // pw01 typedef FlyWeight< ClockResolution, 8 > ClockResolutionFW; // jl01a typedef FlyWeight< CalloutGardResolution, 50 > CalloutGardResolFW; @@ -404,7 +402,6 @@ private: // Data TryResolutionFW iv_tryResolutionFW; // dg06a FlagResolutionFW iv_flagResolutionFW; // dg06a DumpResolutionFW iv_dumpResolutionFW; // dg06a - GardResolutionFW iv_gardResolutionFW; // dg06a CaptureResolutionFW iv_captureResolutionFW; // pw01 ClockResolutionFW iv_clockResolutionFW; // jl01a CalloutGardResolFW iv_calloutGardFW; ///< stores CalloutGardResolution diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C deleted file mode 100755 index 323994742..000000000 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C +++ /dev/null @@ -1,73 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* COPYRIGHT International Business Machines Corp. 1999,2014 */ -/* */ -/* Licensed under the Apache License, Version 2.0 (the "License"); */ -/* you may not use this file except in compliance with the License. */ -/* You may obtain a copy of the License at */ -/* */ -/* http://www.apache.org/licenses/LICENSE-2.0 */ -/* */ -/* Unless required by applicable law or agreed to in writing, software */ -/* distributed under the License is distributed on an "AS IS" BASIS, */ -/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ -/* implied. See the License for the specific language governing */ -/* permissions and limitations under the License. */ -/* */ -/* IBM_PROLOG_END_TAG */ - -// Module Description ************************************************** -// -// Description: -// -// End Module Description ********************************************** - -//---------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------- -#define xspprdGardResolution_C - -#include <xspprdGardResolution.h> -#include <iipServiceDataCollector.h> - -#undef xspprdGardResolution_C -//---------------------------------------------------------------------- -// User Types -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Constants -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Macros -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Internal Function Prototypes -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Global Variables -//---------------------------------------------------------------------- - -//--------------------------------------------------------------------- -// Member Function Specifications -//--------------------------------------------------------------------- - -namespace PRDF -{ - -int32_t GardResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData ) -{ - io_serviceData.service_data->Gard( xErrorType ); - return SUCCESS; -} - -} // end namespace PRDF - diff --git a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h b/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h deleted file mode 100755 index 73096f610..000000000 --- a/src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h +++ /dev/null @@ -1,102 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* COPYRIGHT International Business Machines Corp. 2001,2014 */ -/* */ -/* Licensed under the Apache License, Version 2.0 (the "License"); */ -/* you may not use this file except in compliance with the License. */ -/* You may obtain a copy of the License at */ -/* */ -/* http://www.apache.org/licenses/LICENSE-2.0 */ -/* */ -/* Unless required by applicable law or agreed to in writing, software */ -/* distributed under the License is distributed on an "AS IS" BASIS, */ -/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ -/* implied. See the License for the specific language governing */ -/* permissions and limitations under the License. */ -/* */ -/* IBM_PROLOG_END_TAG */ - -#ifndef xspprdGardResolution_h -#define xspprdGardResolution_h - -// Class Description ************************************************* -// -// Name: GardResolution -// Base class: Resolution -// -// Description: Set the error type for the failure (determines whether -// Gard will be called) -// Usage: -// -// End Class Description ********************************************* - -//-------------------------------------------------------------------- -// Includes -//-------------------------------------------------------------------- - -#include <iipResolution.h> -#include <prdfGardType.H> - -namespace PRDF -{ - -//-------------------------------------------------------------------- -// Forward References -//-------------------------------------------------------------------- -/** - Callout a mru and mark it for Gard (deallocation) - @author Doug Gilbert - */ -class GardResolution : public Resolution -{ -public: - - /** - * @brief Constructor - * @param[in] i_et error type - */ - GardResolution( GardAction::ErrorType i_et = GardAction::NoGard ) - : xErrorType( i_et ) - { } - - /* - Destructor - <ul> - <br><b>Parameters: </b> None. - <br><b>Returns: </b> No value returned - <br><b>Requirements:</b> None. - <br><b>Promises: </b> None. - <br><b>Exceptions: </b> None. - <br><b>Notes: </b> Compiler default sufficient - </ul><br> - */ - // ~xspprdGardResolution(); - - /** - * @brief gard resolution operation - * @param[io] io_serviceData Reference to STEP_CODE_DATA_STRUCT - * @return SUCCESS - */ - virtual int32_t Resolve( STEP_CODE_DATA_STRUCT & io_serviceData ); - - bool operator==(const GardResolution & r) const - { - return (xErrorType == r.xErrorType); - } - -private: // functions -private: // Data - - GardAction::ErrorType xErrorType; - -}; - -} // end namespace PRDF - -#endif /* xspprdGardResolution_h */ - diff --git a/src/usr/diag/prdf/common/framework/rule/prdfRuleMetaData.C b/src/usr/diag/prdf/common/framework/rule/prdfRuleMetaData.C index de390469e..d3e1a507e 100644 --- a/src/usr/diag/prdf/common/framework/rule/prdfRuleMetaData.C +++ b/src/usr/diag/prdf/common/framework/rule/prdfRuleMetaData.C @@ -875,11 +875,6 @@ Resolution * RuleMetaData::createResolution( Prdr::Expr * i_action, (hwTableContent) i_action->cv_value[0].i ); break; - case Prdr::ACT_GARD: // GARD - l_rc = &i_data.cv_reslFactory.GetGardResolution( - (GardAction::ErrorType) i_action->cv_value[0].i); - break; - case Prdr::ACT_ANALY: // ANALYZE l_rc = &i_data.cv_reslFactory.GetAnalyzeConnectedResolution( (TARGETING::TYPE) i_action->cv_value[0].i, @@ -919,7 +914,8 @@ Resolution * RuleMetaData::createResolution( Prdr::Expr * i_action, case Prdr::CALLOUT_PROC: // Procedure callout l_rc = &i_data.cv_reslFactory.getCalloutGardResol( (SymbolicFru) i_action->cv_value[2].i, - (CalloutPriorityEnum) i_action->cv_value[1].i ); + (CalloutPriorityEnum) i_action->cv_value[1].i, + (GARD_POLICY) i_action->cv_value[6].i ); break; case Prdr::CALLOUT_GARD_SELF: // self callout with gard option diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCommon.H b/src/usr/diag/prdf/common/framework/rule/prdrCommon.H index a09871a40..9d1656ad0 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCommon.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrCommon.H @@ -136,7 +136,6 @@ namespace Prdr ACT_ANALY = 'y', ACT_TRY = '{', ACT_DUMP = 'd', - ACT_GARD = '-', ACT_CALL = 'c', ACT_FUNC = 'f', ACT_FLAG = 'F', diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C index 67844c403..47d4758e2 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.C +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.C @@ -39,7 +39,6 @@ #include <prdrCommon.H> #include <prdrToken.H> #include <UtilHash.H> -#include <xspprdGardResolution.h> #include <prdfEnums.H> using namespace PRDR_COMPILER; @@ -473,18 +472,6 @@ uint32_t prdrActionArgMap(const std::string & i_arg) #undef iipServiceDataCollector_h #include <iipServiceDataCollector.h> - // Initialize Gard values. - GardAction::ErrorType errType = GardAction::NoGard; - string tmpStr = string(GardAction::ToString(errType)); - g_ActionArgMap[tmpStr] = errType; - - errType = GardAction::Predictive; - tmpStr = string(GardAction::ToString(errType)); - g_ActionArgMap[tmpStr] = errType; - - errType = GardAction::Fatal; - tmpStr = string(GardAction::ToString(errType)); - g_ActionArgMap[tmpStr] = errType; #ifdef __HOSTBOOT_MODULE //Note: Hostboot does not support dump.So,defining dump type here diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex b/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex index a1d503547..27678df71 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.lex @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -124,7 +124,6 @@ analyze { return PRDR_ACT_ANALYSE; } try { return PRDR_ACT_TRY; } dump { return PRDR_ACT_DUMP; } funccall { return PRDR_ACT_FUNCCALL; } -gard { return PRDR_ACT_GARD; } callout { return PRDR_ACT_CALLOUT; } flag { return PRDR_ACT_FLAG; } capture { return PRDR_ACT_CAPTURE; } diff --git a/src/usr/diag/prdf/common/framework/rule/prdrCompile.y b/src/usr/diag/prdf/common/framework/rule/prdrCompile.y index 581f35ce2..2087d6c4d 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrCompile.y +++ b/src/usr/diag/prdf/common/framework/rule/prdrCompile.y @@ -135,7 +135,6 @@ using namespace PRDR_COMPILER; %token PRDR_ACT_TRY %token PRDR_ACT_DUMP %token PRDR_ACT_FUNCCALL -%token PRDR_ACT_GARD %token PRDR_ACT_CALLOUT %token PRDR_ACT_FLAG %token PRDR_ACT_CAPTURE @@ -179,7 +178,7 @@ using namespace PRDR_COMPILER; %type <expr> actionline %type <expr> action_threshold action_shared_threshold action_analyse %type <expr> action_analyse_conn action_try action_capture -%type <expr> action_dump action_gard action_callout action_funccall action_flag +%type <expr> action_dump action_callout action_funccall action_flag %type <expr> action_callout_alt %type <strlist> grpattns grpattns_item @@ -829,7 +828,6 @@ actionline: | action_analyse_conn { $$ = $1; } | action_try { $$ = $1; } | action_dump { $$ = $1; } - | action_gard { $$ = $1; } | action_callout { $$ = $1; } | action_funccall { $$ = $1; } | action_flag { $$ = $1; } @@ -934,12 +932,6 @@ action_dump: PRDR_ACT_DUMP '(' PRDR_ID ')' } ; -action_gard: PRDR_ACT_GARD '(' PRDR_ID ')' - { - $$ = new ExprAct_Gard($3); - } -; - action_callout: PRDR_ACT_CALLOUT '(' PRDR_ID ')' { $$ = new ExprAct_Callout($3); diff --git a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H index 56cda4d49..6393da915 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H @@ -788,35 +788,6 @@ class ExprAct_Dump : public Expr //@ecdf }; -class ExprAct_Gard : public Expr -{ - public: - std::string * cv_1; - - ExprAct_Gard(std::string * i_1) : cv_1(i_1) {}; - - int output(FILE * i_file) - { - char l_op; - - l_op = Prdr::ACT_GARD; - PRDR_FWRITE(&l_op, 1, 1, i_file); - - uint32_t l_gType = htonl(prdrActionArgMap(*cv_1)); - PRDR_FWRITE(&l_gType, sizeof(l_gType), 1, i_file); - - return 0; - }; - - void generateDoxygen(std::ostream & o_stream, - std::string & o_trailing, - std::ostream & o_errFile = std::cerr) - { - o_stream << "gard( " << *cv_1 << " ) "; - }; - -}; - class ExprAct_Analyse : public Expr { public: @@ -916,9 +887,18 @@ class ExprAct_Callout : public Expr // Write gard state if( NULL == cv_4 ) { - // if no policy for gard has been specified, assume it to be - // GARD. - l_op = prdrActionArgMap("GARD"); + // if no policy for gard has been specified explicitly, assume + // it to be NO GARD for procedure callout. But for self or + // connected callout, assume it to be GARD. + + if( Prdr::CALLOUT_PROC == cv_type ) // is it a procedure callout + { + l_op = prdrActionArgMap("NO_GARD"); + } + else + { + l_op = prdrActionArgMap("GARD"); + } } else { @@ -947,8 +927,7 @@ class ExprAct_Callout : public Expr } else if ( Prdr::CALLOUT_PROC == cv_type ) { - o_stream << "procedure ( " << *cv_2 << " ), " << *cv_1 - << "NO GARD" << " ) "; + o_stream << "procedure ( " << *cv_2 << " ), " << *cv_1 << " ) "; } else { diff --git a/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.C b/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.C index de6737b80..8fca69624 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.C +++ b/src/usr/diag/prdf/common/framework/rule/prdrLoadChip.C @@ -355,7 +355,6 @@ void ReadExpr(UtilStream & i_stream, Expr & o_expr) break; case INTEGER: - case ACT_GARD: case ACT_FLAG: i_stream >> o_expr.cv_value[0].i; break; diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h index 91d16b348..2065389f9 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h @@ -79,7 +79,6 @@ PRDF_GARD_POLICY_MAP_END #if !defined(PRDFTIMER_H) #include <prdfTimer.H> #endif -#include <xspprdGardResolution.h> // for ErrorType #include <prdfAssert.h> #if( !defined(CONTEXT_x86_nfp) && !defined(_NFP) ) //only for ppc context (@54) #include <prdfPlatServices.H> @@ -93,6 +92,8 @@ PRDF_GARD_POLICY_MAP_END #endif #include <list> #include <prdfExtensibleChip.H> +#include <prdfGardType.H> +#include <iipstep.h> namespace PRDF { @@ -614,16 +615,15 @@ public: void clearPrimaryPass() { analysisFlags &= ~PASS_PRIMARY; } /** - Set ErrorType for Gard - <ul> - <br><b>Parameter </b> GardAction::ErrorType - <br><b>Returns: </b> None. - <br><b>Requirements:</b> None - <br><b>Promises </b> QueryRepeatGard() == et - <br><b>Notes: </b> - </ul><br> + * @brief set gard policy associated with target to given policy. + */ + void Gard( GardAction::ErrorType i_et ); + + /** + * @brief queries if we atleast one target is to be garded in callout list. + * @return true if there is a target to be garded else false. */ - void Gard(GardAction::ErrorType et) { errorType = et; } + bool isGardRequested(); /** Query for RepeatGard ErrorType diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl index 169c14cab..9b0a292a2 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -54,15 +54,11 @@ ServiceDataCollector::ServiceDataCollector() : inline void ServiceDataCollector::SetAttentionType( ATTENTION_TYPE attention ) { - attentionType = attention; - if(attention == MACHINE_CHECK) - { - flags |= SERVICE_CALL; - errorType = GardAction::Fatal; - } else - { - errorType = GardAction::Predictive; - } + attentionType = attention; + if( MACHINE_CHECK == attention ) + { + flags |= SERVICE_CALL; + } } // --------------------------------------------------------------- @@ -102,11 +98,21 @@ inline void ServiceDataCollector::SetTerminate(void) inline GardAction::ErrorType ServiceDataCollector::QueryGard(void) { - if (IsServiceCall()) - { - return errorType; - } - return GardAction::NoGard; + GardAction::ErrorType gardType = GardAction::NoGard; + + if( IsServiceCall() ) + { + if( attentionType == MACHINE_CHECK ) + { + gardType = GardAction::Fatal; + } + else + { + gardType = GardAction::Predictive; + } + } + + return gardType; } // dg12a -moved here from *.C -------------------------------------- diff --git a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C index f7e436da6..dc85f7f22 100644 --- a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C +++ b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C @@ -184,8 +184,6 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType, // This is a checkstop attention so some values will need // to be overridden. - io_sdc.Gard( origSdc.QueryGard() ); - io_sdc.SetAttentionType( origSdc.GetAttentionType() ); if ( origSdc.Terminate() ) @@ -211,8 +209,6 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType, // This is a checkstop attention so some values will need // to be overridden. - io_sdc.Gard( origSdc.QueryGard() ); - io_sdc.SetAttentionType( origSdc.GetAttentionType() ); if ( origSdc.Terminate() ) @@ -512,7 +508,6 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType, if( PRDcalloutData::TYPE_TARGET == thiscallout.getType() ) { - PRDF_HW_ADD_CALLOUT(thiscallout.getTarget(), thispriority, tmpDeconfig, diff --git a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C index 963227971..4035cec08 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C +++ b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C @@ -166,6 +166,43 @@ void ServiceDataCollector::SetCallout( PRDcallout mru, //------------------------------------------------------------------------------ +void ServiceDataCollector::Gard( GardAction::ErrorType i_et ) +{ + GARD_POLICY gardPolicy = GARD; + + if( GardAction::NoGard == i_et ) + { + gardPolicy = NO_GARD; + } + + for ( SDC_MRU_LIST::iterator i = xMruList.begin(); + i != xMruList.end(); ++i ) + { + i->gardState = gardPolicy; + } +} + +//------------------------------------------------------------------------------ + +bool ServiceDataCollector::isGardRequested() +{ + bool gardRecordExit = false; + + for ( SDC_MRU_LIST::iterator i = xMruList.begin(); + i != xMruList.end(); ++i ) + { + if( GARD == i->gardState ) + { + gardRecordExit = true; + break; + } + } + + return gardRecordExit; +} + +//------------------------------------------------------------------------------ + void ServiceDataCollector::AddSignatureList( TargetHandle_t i_target, uint32_t i_signature ) { diff --git a/src/usr/diag/prdf/common/plat/pegasus/CommonActions.rule b/src/usr/diag/prdf/common/plat/pegasus/CommonActions.rule index fa2b987b3..100227bab 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/CommonActions.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/CommonActions.rule @@ -155,6 +155,10 @@ actionclass calloutDmiBusSymFru actionclass calloutSelfMedNoGard { callout(MRU_MED, NO_GARD); }; +/** Callout self with low priority but don't gard it */ +actionclass calloutSelfLowNoGard +{ callout(MRU_LOW, NO_GARD); }; + ################################################################################ # Callouts with thresholds # ################################################################################ @@ -246,33 +250,31 @@ actionclass calloutSelfAndLevel2MedThr1 }; -/** Callout 2nd level support of afer 32 events per day, no gard */ -actionclass callout2ndLvlMedThr32NoGard +/** Callout 2nd level support of afer 32 events per day */ +actionclass callout2ndLvlMedThr32 { callout2ndLvlMed; threshold32pday; - gard(NoGard); }; -/** Callout 2nd Level support on first occurrence, no gard */ -actionclass callout2ndLvlMedThr1NoGard +/** Callout 2nd Level support on first occurrence */ +actionclass callout2ndLvlMedThr1 { callout2ndLvlMed; threshold1; - gard(NoGard); }; -/** Callout 2nd Level Medium, set SUE generation point, no gard */ -actionclass callout2ndLvlMedThr1UE_NoGard +/** Callout 2nd Level Medium, set SUE generation point*/ +actionclass callout2ndLvlMedThr1UE { - callout2ndLvlMedThr1NoGard; + callout2ndLvlMedThr1; SUEGenerationPoint; }; /** Callout 2nd Level Medium, initiate SH dump */ actionclass callout2ndLvlMedThr1dumpSh { - callout2ndLvlMedThr1NoGard; + callout2ndLvlMedThr1; dumpSH; }; ################################################################################ @@ -296,16 +298,16 @@ actionclass dumpSW ################################################################################ /** callout second lvl on first instance, initiaite SH dump */ -actionclass callout2ndLvlDumpShNoGard +actionclass callout2ndLvlDumpSh { - callout2ndLvlMedThr1NoGard; + callout2ndLvlMedThr1; dumpSH; }; -/** Callout 2nd Level and dump SW , no garding*/ -actionclass callout2ndLvlDumpSwNoGard +/** Callout 2nd Level and dump SW */ +actionclass callout2ndLvlDumpSw { - callout2ndLvlMedThr1NoGard; + callout2ndLvlMedThr1; dumpSW; }; ################################################################################ diff --git a/src/usr/diag/prdf/common/plat/pegasus/Ex.rule b/src/usr/diag/prdf/common/plat/pegasus/Ex.rule index 90f4cd84c..8af77c687 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Ex.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Ex.rule @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 # [+] International Business Machines Corp. # # @@ -1193,7 +1193,7 @@ group gCoreFir filter singlebit /** COREFIR[26] * RECOV_IN_MAINT_ERR: 26 = recov_in_maint */ - (CoreFir, bit(26)) ? callout2ndLvlMedThr1NoGard; + (CoreFir, bit(26)) ? callout2ndLvlMedThr1; /** COREFIR[27] * DU_LOG_REC_ERR: logic recoverable error @@ -1449,12 +1449,12 @@ group gL2Fir filter singlebit /** L2FIR[12] * RC_POWERBUS_DATA_TIMEOUT */ - (L2Fir, bit(12)) ? callout2ndLvlMedThr1NoGard; + (L2Fir, bit(12)) ? callout2ndLvlMedThr1; /** L2FIR[13] * NCU_POWERBUS_DATA_TIMEOUT */ - (L2Fir, bit(13)) ? callout2ndLvlMedThr1NoGard; + (L2Fir, bit(13)) ? callout2ndLvlMedThr1; /** L2FIR[14] * HW_CONTROL_ERROR @@ -2034,10 +2034,9 @@ actionclass calloutParentProcLow * garding not required */ actionclass SelfAndLevel2MedThr5PerHrNoGard { - calloutSelfMed; + calloutSelfMedNoGard; callout2ndLvlMed; threshold5phour; - gard(NoGard); }; /** callouts Proc on first instance. Calls for second level support as well */ @@ -2053,8 +2052,8 @@ actionclass calloutProcLow2ndLvlMedThr1 * Set SUE flag, garding not done */ actionclass calloutProcLow2ndLvlMedThr1SUE_NoGard { - calloutParentProcLow; - callout2ndLvlMedThr1NoGard; + callout(connected(TYPE_PROC),MRU_LOW, NO_GARD); + callout2ndLvlMedThr1; flag(SUE); }; diff --git a/src/usr/diag/prdf/common/plat/pegasus/Mcs.rule b/src/usr/diag/prdf/common/plat/pegasus/Mcs.rule index 008b4f1cb..d29652f56 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Mcs.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Mcs.rule @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 # [+] International Business Machines Corp. # # @@ -343,7 +343,7 @@ group gMciFir attntype CHECK_STOP, RECOVERABLE, SPECIAL, UNIT_CS /** MCIFIR[26] * MCIFIRQ_POWERBUS_PROTOCOL_ERROR */ - (MciFir, bit(26)) ? callout2ndLvlDumpSwNoGard; + (MciFir, bit(26)) ? callout2ndLvlDumpSw; /** MCIFIR[27] * MCIFIRQ_MCS_COMMAND_LIST_TIMEOUT_DUE_TO_POWERBUS @@ -381,7 +381,7 @@ group gMciFir attntype CHECK_STOP, RECOVERABLE, SPECIAL, UNIT_CS /** MCIFIR[33] * MCIFIRQ_NONFOREIGN_ACCESS_TO_FOREIGN_BAR */ - (MciFir, bit(33)) ? callout2ndLvlDumpSwNoGard; + (MciFir, bit(33)) ? callout2ndLvlDumpSw; /** MCIFIR[34] * MCIFIRQ_CENTAUR_SYNC_COMMAND_DETECTED @@ -406,12 +406,12 @@ group gMciFir attntype CHECK_STOP, RECOVERABLE, SPECIAL, UNIT_CS /** MCIFIR[38] * MCIFIRQ_HA_ILLEGAL_CONSUMER_ACCESS_ERROR */ - (MciFir, bit(38)) ? callout2ndLvlDumpSwNoGard; + (MciFir, bit(38)) ? callout2ndLvlDumpSw; /** MCIFIR[39] * MCIFIRQ_HA_ILLEGAL_PRODUCER_ACCESS_ERROR */ - (MciFir, bit(39)) ? callout2ndLvlDumpSwNoGard; + (MciFir, bit(39)) ? callout2ndLvlDumpSw; /** MCIFIR[40] * CHANNEL TIMEOUT ERROR diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule index 927a84572..5892ef2df 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 # [+] International Business Machines Corp. # # @@ -450,9 +450,9 @@ actionclass calloutProcLevel2MedThr1 * and dump type SH, garding not done */ actionclass calloutProcLevel2MedThr1dumpShNoGard { - calloutProcLevel2MedThr1; + calloutSelfLowNoGard; + callout2ndLvlMedThr1; dumpSH; - gard(NoGard); }; /** callout Proc with low priority ,Sec level Med priority, Thr 32per day @@ -463,7 +463,6 @@ actionclass calloutProcLevel2MedThr32dumpShNoGard callout2ndLvlMed; threshold32pday; dumpSH; - gard(NoGard); }; actionclass calloutProcHighThr1SUE diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule index bce8841d3..5b9486fcc 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule @@ -5,7 +5,9 @@ # # OpenPOWER HostBoot Project # -# COPYRIGHT International Business Machines Corp. 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 +# [+] International Business Machines Corp. +# # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -81,7 +83,7 @@ group gAbusLFir filter singlebit /** ABUS_LFIR[3] * Local errors from CC (OPCG, parity, scan collision, ...) */ - (AbusLFir, bit(3)) ? callout2ndLvlMedThr32NoGard; + (AbusLFir, bit(3)) ? callout2ndLvlMedThr32; /** ABUS_LFIR[4] * Local errors from PSC (PCB error) 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 85acc0b4f..1668ce967 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 @@ -486,7 +486,7 @@ group gNxCqFir filter singlebit /** NXCQFIR[6] * PowerBus data hang error */ - (NxCqFir, bit(6)) ? callout2ndLvlMedThr1NoGard; + (NxCqFir, bit(6)) ? callout2ndLvlMedThr1; /** NXCQFIR[7] * PowerBus command hang error @@ -506,7 +506,7 @@ group gNxCqFir filter singlebit /** NXCQFIR[10] * PowerBus miscellaneous error */ - (NxCqFir, bit(10)) ? callout2ndLvlMedThr1NoGard; + (NxCqFir, bit(10)) ? callout2ndLvlMedThr1; /** NXCQFIR[11] * MMIO BAR parity error @@ -607,7 +607,7 @@ group gNxCxaFir filter singlebit /** NXCXAFIR[8] * SNOOP_ARRAY_CE */ - (NxCxaFir, bit(8)) ? callout2ndLvlMedThr32NoGard; + (NxCxaFir, bit(8)) ? callout2ndLvlMedThr32; /** NXCXAFIR[9] * SNOOP_ARRAY_UE @@ -712,12 +712,12 @@ group gNxCxaFir filter singlebit /** NXCXAFIR[29] * LD_CLASS_CMD_ADDR_ERR */ - (NxCxaFir, bit(29)) ? callout2ndLvlMedThr1NoGard; + (NxCxaFir, bit(29)) ? callout2ndLvlMedThr1; /** NXCXAFIR[30] * ST_CLASS_CMD_ADDR_ERR */ - (NxCxaFir, bit(30)) ? callout2ndLvlMedThr1NoGard; + (NxCxaFir, bit(30)) ? callout2ndLvlMedThr1; /** NXCXAFIR[31] * PHB_LINK_DOWN @@ -737,7 +737,7 @@ group gNxCxaFir filter singlebit /** NXCXAFIR[34] * XPT_POWERBUS_CE */ - (NxCxaFir, bit(34)) ? callout2ndLvlMedThr32NoGard; + (NxCxaFir, bit(34)) ? callout2ndLvlMedThr32; /** NXCXAFIR[35] * XPT_POWERBUS_UE @@ -1379,17 +1379,17 @@ group gPsiHbFir filter singlebit /** PSIHBFIR[10] * PB_DATA_TIME_OUT */ - (PsiHbFir, bit(10)) ? callout2ndLvlMedThr1NoGard; + (PsiHbFir, bit(10)) ? callout2ndLvlMedThr1; /** PSIHBFIR[11] * PB_PARITY_ERROR */ - (PsiHbFir, bit(11)) ? callout2ndLvlMedThr1NoGard; + (PsiHbFir, bit(11)) ? callout2ndLvlMedThr1; /** PSIHBFIR[12] * FSP_ACCESS_TRUSTED_SPACE */ - (PsiHbFir, bit(12)) ? callout2ndLvlMedThr1NoGard; + (PsiHbFir, bit(12)) ? callout2ndLvlMedThr1; /** PSIHBFIR[13] * UNEXPECTED_PB @@ -1682,17 +1682,17 @@ group gPbaFir filter singlebit /** PBAFIR[1] * PBAFIR_PB_RDADRERR_FW */ - (PbaFir, bit(1)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(1)) ? callout2ndLvlMedThr1; /** PBAFIR[2] * PBAFIR_PB_RDDATATO_FW */ - (PbaFir, bit(2)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(2)) ? callout2ndLvlMedThr1; /** PBAFIR[3] * PBAFIR_PB_SUE_FW */ - (PbaFir, bit(3)) ? callout2ndLvlMedThr32NoGard; + (PbaFir, bit(3)) ? callout2ndLvlMedThr32; /** PBAFIR[4] * PBAFIR_PB_UE_FW @@ -1702,22 +1702,22 @@ group gPbaFir filter singlebit /** PBAFIR[3:4] * PBAFIR_PB_SUE_FW */ - (PbaFir, bit(3,4)) ? callout2ndLvlMedThr32NoGard; + (PbaFir, bit(3,4)) ? callout2ndLvlMedThr32; /** PBAFIR[5] * PBAFIR_PB_CE_FW */ - (PbaFir, bit(5)) ? callout2ndLvlMedThr32NoGard; + (PbaFir, bit(5)) ? callout2ndLvlMedThr32; /** PBAFIR[6] * PBAFIR_OCI_SLAVE_INIT */ - (PbaFir, bit(6)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(6)) ? callout2ndLvlMedThr1; /** PBAFIR[7] * PBAFIR_OCI_WRPAR_ERR */ - (PbaFir, bit(7)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(7)) ? callout2ndLvlMedThr1; /** PBAFIR[8] * PBAFIR_OCI_REREQTO @@ -1727,37 +1727,37 @@ group gPbaFir filter singlebit /** PBAFIR[9] * PBAFIR_PB_UNEXPCRESP */ - (PbaFir, bit(9)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(9)) ? callout2ndLvlMedThr1; /** PBAFIR[10] * PBAFIR_PB_UNEXPDATA */ - (PbaFir, bit(10)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(10)) ? callout2ndLvlMedThr1; /** PBAFIR[11] * PBAFIR_PB_PARITY_ERR */ - (PbaFir, bit(11)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(11)) ? callout2ndLvlMedThr1; /** PBAFIR[12] * PBAFIR_PB_WRADRERR_FW */ - (PbaFir, bit(12)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(12)) ? callout2ndLvlMedThr1; /** PBAFIR[13] * PBAFIR_PB_BADCRESP */ - (PbaFir, bit(13)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(13)) ? callout2ndLvlMedThr1; /** PBAFIR[14] * PBAFIR_PB_ACKDEAD_FW */ - (PbaFir, bit(14)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(14)) ? callout2ndLvlMedThr1; /** PBAFIR[15] * PBAFIR_PB_CRESPTO */ - (PbaFir, bit(15)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(15)) ? callout2ndLvlMedThr1; /** PBAFIR[16:19] * PBAFIR_BCUE @@ -1777,12 +1777,12 @@ group gPbaFir filter singlebit /** PBAFIR[29] * PBAFIR_ILLEGAL_CACHE_OP */ - (PbaFir, bit(29)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(29)) ? callout2ndLvlMedThr1; /** PBAFIR[30] * PBAFIR_OCI_BAD_REG_ADDR */ - (PbaFir, bit(30)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(30)) ? callout2ndLvlMedThr1; /** PBAFIR[31:39] * PBAFIR_AX @@ -1792,7 +1792,7 @@ group gPbaFir filter singlebit /** PBAFIR[40] * PBAFIR_PB_ACKDEAD_FW_WR */ - (PbaFir, bit(40)) ? callout2ndLvlMedThr1NoGard; + (PbaFir, bit(40)) ? callout2ndLvlMedThr1; /** PBAFIR[41:43] * RESERVED @@ -2383,32 +2383,32 @@ group gPciNestFir filter singlebit /** PCINESTFIR_0[18] * UNSOLICITIEDPBDATA */ - (PciNestFir_0, bit(18)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_0, bit(18)) ? callout2ndLvlMedThr1; /** PCINESTFIR_1[18] * UNSOLICITIEDPBDATA */ - (PciNestFir_1, bit(18)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_1, bit(18)) ? callout2ndLvlMedThr1; /** PCINESTFIR_2[18] * UNSOLICITIEDPBDATA */ - (PciNestFir_2, bit(18)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_2, bit(18)) ? callout2ndLvlMedThr1; /** PCINESTFIR_0[19] * UNEXPECTEDCRESP */ - (PciNestFir_0, bit(19)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_0, bit(19)) ? callout2ndLvlMedThr1; /** PCINESTFIR_1[19] * UNEXPECTEDCRESP */ - (PciNestFir_1, bit(19)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_1, bit(19)) ? callout2ndLvlMedThr1; /** PCINESTFIR_2[19] * UNEXPECTEDCRESP */ - (PciNestFir_2, bit(19)) ? callout2ndLvlMedThr1NoGard; + (PciNestFir_2, bit(19)) ? callout2ndLvlMedThr1; /** PCINESTFIR_0[20] * INVALIDCRESP @@ -2928,20 +2928,28 @@ group gIomcFir_1 filter priority( 10, 18, 26, 34, # Channel failure ################################################################################ /** Callout the connected PCI 0 controller. */ -actionclass calloutConnPci0 { callout(connected(TYPE_PCI,0), MRU_MED); }; +actionclass calloutConnPci0NoGard +{ + callout(connected(TYPE_PCI,0), MRU_MED, NO_GARD); +}; /** Callout the connected PCI 1 controller. */ -actionclass calloutConnPci1 { callout(connected(TYPE_PCI,1), MRU_MED); }; +actionclass calloutConnPci1NoGard +{ + callout(connected(TYPE_PCI,1), MRU_MED, NO_GARD); +}; /** Callout the connected PCI 2 controller. */ -actionclass calloutConnPci2 { callout(connected(TYPE_PCI,2), MRU_MED); }; +actionclass calloutConnPci2NoGard +{ + callout(connected(TYPE_PCI,2), MRU_MED, NO_GARD); +}; /** Callout the connected PCI 0 controller, threshold 1 , no garding */ actionclass calloutConnPci0Th1NoGard { - calloutConnPci0; + calloutConnPci0NoGard; threshold1; - gard(NoGard); }; /** Callout the connected PCI 1 controller, threshold 1, no garding */ @@ -2954,33 +2962,29 @@ actionclass calloutConnPci1Th1NoGard /** Callout the connected PCI 2 controller, threshold 1, no garding */ actionclass calloutConnPci2Th1NoGard { - calloutConnPci2; + calloutConnPci2NoGard; threshold1; - gard(NoGard); }; /** Callout the connected PCI 0 controller, threshold 32 per day, no garding */ actionclass calloutConnPci0Th32NoGard { - calloutConnPci0; + calloutConnPci0NoGard; threshold32pday; - gard(NoGard); }; /** Callout the connected PCI 1 controller, threshold 32 per day, no garding */ actionclass calloutConnPci1Th32NoGard { - calloutConnPci1; + calloutConnPci1NoGard; threshold32pday; - gard(NoGard); }; /** Callout the connected PCI 2 controller, threshold 32 per day , no garding */ actionclass calloutConnPci2Th32NoGard { - calloutConnPci2; + calloutConnPci2NoGard; threshold32pday; - gard(NoGard); }; /** Callout the DMI bus 0 */ @@ -3182,7 +3186,7 @@ actionclass forceMpIpl # in FW830. funccall("analyzeMpIPL"); #dumpSH; - callout2ndLvlMedThr1NoGard; + callout2ndLvlMedThr1; }; /** callout both ends of PSI Link.Threshold is 32 events per day. diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PCIE.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PCIE.rule index 761960755..436013858 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PCIE.rule +++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_PCIE.rule @@ -5,7 +5,9 @@ # # OpenPOWER HostBoot Project # -# COPYRIGHT International Business Machines Corp. 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 +# [+] International Business Machines Corp. +# # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -102,7 +104,7 @@ group gPcieLFir filter singlebit /** PCIE_LFIR[3] * Local errors from CC (OPCG, parity, scan collision, ...) */ - (PcieLFir, bit(3)) ? callout2ndLvlMedThr32NoGard; + (PcieLFir, bit(3)) ? callout2ndLvlMedThr32; /** PCIE_LFIR[4] * Local errors from PSC (PCB error) @@ -286,7 +288,6 @@ actionclass calloutPhbClkA_0_noGard { funccall("calloutPhbClkA_0"); threshold1; - gard(NoGard); }; /**callout PHB associated with IOPCIFIR0 clkB, no garding */ @@ -294,7 +295,6 @@ actionclass calloutPhbClkB_0_noGard { funccall("calloutPhbClkB_0"); threshold1; - gard(NoGard); }; /**callout PHB associated with IOPCIFIR1 clkA, no garding */ @@ -302,7 +302,6 @@ actionclass calloutPhbClkA_1_noGard { funccall("calloutPhbClkA_1"); threshold1; - gard(NoGard); }; /**callout PHB associated with IOPCIFIR1 clkB, no garding */ @@ -310,7 +309,6 @@ actionclass calloutPhbClkB_1_noGard { funccall("calloutPhbClkB_1"); threshold1; - gard(NoGard); }; /** callout all PHB associated with IOPCIFIR0, no garding */ @@ -318,7 +316,6 @@ actionclass calloutPhbBothClks_0 { funccall("calloutPhbBothClks_0"); threshold1; - gard(NoGard); }; /** callout all PHB associated with IOPCIFIR1, no garding */ @@ -326,6 +323,5 @@ actionclass calloutPhbBothClks_1 { funccall("calloutPhbBothClks_1"); threshold1; - gard(NoGard); }; diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C index 07e1900c6..ba6e40da7 100644 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -43,8 +45,8 @@ namespace CalloutUtil void defaultError( STEP_CODE_DATA_STRUCT & i_sc ) { - i_sc.service_data->SetCallout( NextLevelSupport_ENUM ); - i_sc.service_data->SetCallout( SP_CODE ); + i_sc.service_data->SetCallout( NextLevelSupport_ENUM, MRU_MED, NO_GARD ); + i_sc.service_data->SetCallout( SP_CODE, MRU_MED, NO_GARD ); i_sc.service_data->SetServiceCall(); } diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C index e6a46ab8d..66f9e0191 100755 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -820,7 +820,7 @@ int32_t calloutPhb( ExtensibleChip * i_procChip, STEP_CODE_DATA_STRUCT & io_sc, } else if ( NULL != phbATrgt ) { - io_sc.service_data->SetCallout( phbATrgt ); + io_sc.service_data->SetCallout( phbATrgt, MRU_MED, PRDF::NO_GARD ); } } @@ -835,13 +835,14 @@ int32_t calloutPhb( ExtensibleChip * i_procChip, STEP_CODE_DATA_STRUCT & io_sc, } else if ( (NULL != phbBTrgt) && (phbATrgt != phbBTrgt) ) { - io_sc.service_data->SetCallout( phbBTrgt ); + io_sc.service_data->SetCallout( phbBTrgt, MRU_MED, PRDF::NO_GARD ); } } // If no PHBs called out, callout 2nd level support. if ( (SUCCESS != l_rc) || (0 == io_sc.service_data->getMruListSize()) ) - io_sc.service_data->SetCallout( NextLevelSupport_ENUM ); + io_sc.service_data->SetCallout( NextLevelSupport_ENUM, + MRU_MED, NO_GARD ); return SUCCESS; // Intentionally returns SUCCESS so rule code does not get // confused by undefined error code. diff --git a/src/usr/diag/prdf/common/prdfMain_common.C b/src/usr/diag/prdf/common/prdfMain_common.C index efef31c94..7997275b0 100755 --- a/src/usr/diag/prdf/common/prdfMain_common.C +++ b/src/usr/diag/prdf/common/prdfMain_common.C @@ -44,6 +44,7 @@ #include <prdfRegisterCache.H> #include <prdfScanFacility.H> #include <prdfMfgThresholdMgr.H> +#include <prdfGardType.H> #include <prdfPegasusConfigurator.H> diff --git a/src/usr/diag/prdf/common/prdf_common_fsp_and_hb.mk b/src/usr/diag/prdf/common/prdf_common_fsp_and_hb.mk index 7776143da..16f41964a 100644 --- a/src/usr/diag/prdf/common/prdf_common_fsp_and_hb.mk +++ b/src/usr/diag/prdf/common/prdf_common_fsp_and_hb.mk @@ -96,7 +96,6 @@ prd_obj += prdfClockResolution.o prd_obj += prdfResolutionMap.o prd_obj += prdfThresholdResolutions.o prd_obj += xspprdFlagResolution.o -prd_obj += xspprdGardResolution.o # common/framework/rule/ prd_obj += iipTemplates.o diff --git a/src/usr/diag/prdf/plat/pegasus/prdfPlatCenPll.C b/src/usr/diag/prdf/plat/pegasus/prdfPlatCenPll.C index 1315173c0..4e338f249 100644 --- a/src/usr/diag/prdf/plat/pegasus/prdfPlatCenPll.C +++ b/src/usr/diag/prdf/plat/pegasus/prdfPlatCenPll.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2013,2014 */ +/* Contributors Listed Below - COPYRIGHT 2013,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -73,7 +73,7 @@ int32_t PllPostAnalysis( ExtensibleChip * i_cenChip, // Check to make sure we are at threshold and have something garded. if ( !i_sc.service_data->IsAtThreshold() || - (GardAction::NoGard == i_sc.service_data->QueryGard()) ) + ( !i_sc.service_data->isGardRequested() ) ) { break; // nothing to do } |