summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2014-11-19 00:21:09 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-02-16 12:00:27 -0600
commit87e0e35a7698818709c0b864f39e059b77ecea45 (patch)
tree90c1287ec874b17cd62352a05f708c892186cc54
parent28253411cc210245e515edff5b166dd6114d711b (diff)
downloadtalos-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>
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.C5
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/resolution/iipResolutionFactory.h3
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.C73
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/resolution/xspprdGardResolution.h102
-rw-r--r--src/usr/diag/prdf/common/framework/rule/prdfRuleMetaData.C8
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrCommon.H1
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrCompile.C13
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrCompile.lex3
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrCompile.y10
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrExpr.H47
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrLoadChip.C1
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h20
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl36
-rw-r--r--src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C5
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C37
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/CommonActions.rule32
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Ex.rule15
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Mcs.rule10
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc.rule7
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_PB.rule96
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_PCIE.rule12
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C8
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfP8Proc.C9
-rwxr-xr-xsrc/usr/diag/prdf/common/prdfMain_common.C1
-rw-r--r--src/usr/diag/prdf/common/prdf_common_fsp_and_hb.mk1
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfPlatCenPll.C4
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
}
OpenPOWER on IntegriCloud