# IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/usr/diag/prdf/common/plat/pegasus/CommonActions.rule $ # # OpenPOWER HostBoot Project # # COPYRIGHT International Business Machines Corp. 2012,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 ################################################################################ # This file is intended to create a common set of actionclasses for all rule # files. These actionclasses will be created for all rule files, regardless if # they are actually used. Please limit this file to relatively common actions. # Otherwise, it will cause unwanted code size and memory usage. # # Simply add the following line at the top the actionclass section of each rule # file: # # .include "CommonActions.rule" # # Note that no indentation can be used for the .include keyword. ################################################################################ ################################################################################ # Thresholds # ################################################################################ # Threshold syntax: # threshold( field() [, mfg()|mfg_file()] ); # # Timebase syntax: # [/ [timbase_count] ] # # Note that can be found in prdfMfgThresholds.lst # # Examples: # threshold( field( 1 ) ); # threshold( field(32 / day) ); # threshold( field( 5 / 2 min) ); # threshold( field(32 / 1 day), mfg(2 / hour) ); # threshold( field( 2 / min), mfg(1 ) ); # threshold( field(32 / day), mfg_file(P8CHIP_OFFNODE_BUS_CES) ); /** Threshold of 1 */ actionclass threshold1 { threshold( field(1) ); }; /** Threshold of 2 per day */ actionclass threshold2pday { threshold( field(2 / day) ); }; /** Threshold of 32 per day */ actionclass threshold32pday { threshold( field(32 / day) ); }; /** Threshold of 5 per hour */ actionclass threshold5phour { threshold( field(5 / hour) ); }; /** Threshold of 5 per day */ actionclass threshold5pday { threshold( field(5 / day) ); }; /** Threshold OnNode Bus CE */ actionclass thresholdOnNode { threshold( field(32 / day), mfg_file(P8CHIP_ONNODE_BUS_CES)); }; ################################################################################ # Threshold and Mask policy ################################################################################ /** * Threshold 32/day (field) and 1 (mnfg). Do not predictively callout on * threshold in the field, instead just mask. */ actionclass thresholdAndMask { threshold32pday; funccall("ClearServiceCallFlag"); }; /** Callout self with "Threshold and Mask" policy. */ actionclass thresholdAndMask_self { calloutSelfMed; thresholdAndMask; }; ################################################################################ # Special Flags # ################################################################################ /** Set SUE generation point */ actionclass SUEGenerationPoint { flag(UERE); }; ################################################################################ # Simple Callouts # ################################################################################ # Callout self actionclass calloutSelfHigh { callout(MRU_HIGH); }; actionclass calloutSelfMed { callout(MRU_MED); }; actionclass calloutSelfMedA { callout(MRU_MEDA); }; actionclass calloutSelfLow { callout(MRU_LOW); }; # 2nd Level Support actionclass callout2ndLvlMed { callout(procedure(NextLevelSupport_ENUM), MRU_MED); }; actionclass callout2ndLvlLow { callout(procedure(NextLevelSupport_ENUM), MRU_LOW); }; /** Callout the DMI bus symbolic FRU */ actionclass calloutDmiBusSymFru { callout(procedure(MEMBUS_ERROR_ENUM), MRU_LOW); }; ################################################################################ # Callouts with thresholds # ################################################################################ actionclass calloutParentProcMedThr1 { callout(connected(TYPE_PROC),MRU_MED); threshold1; }; actionclass calloutParentProcHighThr1 { callout(connected(TYPE_PROC),MRU_HIGH); threshold1; }; actionclass SelfMedThr1 { calloutSelfMed; threshold1; }; actionclass SelfHighThr1 { calloutSelfHigh; threshold1; }; actionclass SelfMedThr1UE { SelfMedThr1; SUEGenerationPoint; }; actionclass SelfHighThr1UE { SelfHighThr1; SUEGenerationPoint; }; actionclass SelfLowLevel2MedThr1 { calloutSelfLow; callout2ndLvlMed; threshold1; }; actionclass SelfMedThr32PerDay { calloutSelfMed; threshold32pday; }; actionclass SelfMedThr5PerHour { calloutSelfMed; threshold5phour; }; actionclass SelfHighThr5PerHour { calloutSelfHigh; threshold5phour; }; actionclass SelfHighThr32PerDay { calloutSelfHigh; threshold32pday; }; actionclass calloutSelfAndLevel2MedThr1 { calloutSelfMed; callout2ndLvlMed; threshold1; }; /** Callout 2nd level support of afer 32 events per day, no gard */ actionclass callout2ndLvlMedThr32NoGard { callout2ndLvlMed; threshold32pday; gard(NoGard); }; /** Callout 2nd Level support on first occurrence, no gard */ actionclass callout2ndLvlMedThr1NoGard { callout2ndLvlMed; threshold1; gard(NoGard); }; /** Callout 2nd Level Medium, set SUE generation point, no gard */ actionclass callout2ndLvlMedThr1UE_NoGard { callout2ndLvlMedThr1NoGard; SUEGenerationPoint; }; /** Callout 2nd Level Medium, initiate SH dump */ actionclass callout2ndLvlMedThr1dumpSh { callout2ndLvlMedThr1NoGard; dumpSH; }; ################################################################################ # Dump Types # ################################################################################ /** Dump SH */ actionclass dumpSH { dump(DUMP_CONTENT_SH); }; /** Dump SW */ actionclass dumpSW { dump(DUMP_CONTENT_SW); }; ################################################################################ # Callout sec lvl support with dump # ################################################################################ /** callout second lvl on first instance, initiaite SH dump */ actionclass callout2ndLvlDumpShNoGard { callout2ndLvlMedThr1NoGard; dumpSH; }; /** Callout 2nd Level and dump SW , no garding*/ actionclass callout2ndLvlDumpSwNoGard { callout2ndLvlMedThr1NoGard; dumpSW; }; ################################################################################ # Default callouts # ################################################################################ /** Default action for an unexpected unmasked bit */ actionclass defaultMaskedError { dumpSH; callout2ndLvlMed; threshold1; }; /** Default TBD action */ actionclass TBDDefaultCallout { dumpSH; callout2ndLvlMed; threshold( field(32 / day), mfg(32 / day) ); };