# IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/usr/diag/prdf/common/plat/cumulus/cumulus_mc_actions.rule $ # # OpenPOWER HostBoot Project # # Contributors Listed Below - COPYRIGHT 2017,2018 # [+] 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. # 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 /** Lane Repair: callout Bus Interface - DMI Bus */ /** Callout the DMI bus 0 */ actionclass calloutDmiBus0 { funccall("calloutBusInterface_DMI0"); }; /** Callout the DMI bus 1 */ actionclass calloutDmiBus1 { funccall("calloutBusInterface_DMI1"); }; /** Callout the DMI bus 2 */ actionclass calloutDmiBus2 { funccall("calloutBusInterface_DMI2"); }; /** Callout the DMI bus 3 */ actionclass calloutDmiBus3 { funccall("calloutBusInterface_DMI3"); }; actionclass calloutBusInterface_dmi0_th_1 { calloutDmiBus0; threshold1; }; actionclass calloutBusInterface_dmi1_th_1 { calloutDmiBus1; threshold1; }; actionclass calloutBusInterface_dmi2_th_1 { calloutDmiBus2; threshold1; }; actionclass calloutBusInterface_dmi3_th_1 { calloutDmiBus3; threshold1; }; /** Lane Repair: spare Deployed - DMI Bus */ actionclass spareDeployed_dmi0 { calloutDmiBus0; funccall("spareDeployed_DMI0"); }; actionclass spareDeployed_dmi1 { calloutDmiBus1; funccall("spareDeployed_DMI1"); }; actionclass spareDeployed_dmi2 { calloutDmiBus2; funccall("spareDeployed_DMI2"); }; actionclass spareDeployed_dmi3 { calloutDmiBus3; funccall("spareDeployed_DMI3"); }; /** Lane Repair: max spares exceeded - DMI Bus */ actionclass maxSparesExceeded_dmi0 { calloutBusInterface_dmi0_th_1; funccall("maxSparesExceeded_DMI0"); }; actionclass maxSparesExceeded_dmi1 { calloutBusInterface_dmi1_th_1; funccall("maxSparesExceeded_DMI1"); }; actionclass maxSparesExceeded_dmi2 { calloutBusInterface_dmi2_th_1; funccall("maxSparesExceeded_DMI2"); }; actionclass maxSparesExceeded_dmi3 { calloutBusInterface_dmi3_th_1; funccall("maxSparesExceeded_DMI3"); }; /** Lane Repair: too many Bus Errors - DMI Bus */ actionclass tooManyBusErrors_dmi0_UERE { calloutBusInterface_dmi0_th_1; funccall("tooManyBusErrors_DMI0"); }; actionclass tooManyBusErrors_dmi1_UERE { calloutBusInterface_dmi1_th_1; funccall("tooManyBusErrors_DMI1"); }; actionclass tooManyBusErrors_dmi2_UERE { calloutBusInterface_dmi2_th_1; funccall("tooManyBusErrors_DMI2"); }; actionclass tooManyBusErrors_dmi3_UERE { calloutBusInterface_dmi3_th_1; funccall("tooManyBusErrors_DMI3"); }; ############################################################################### # Analyze groups ############################################################################### actionclass analyzeMC_LFIR { analyze(gMC_LFIR); }; actionclass analyzeMCBISTFIR { analyze(gMCBISTFIR); }; actionclass analyzeIOMCFIR { analyze(gIOMCFIR); }; actionclass analyzeMCPPEFIR { analyze(gMCPPEFIR); }; ############################################################################### # Analyze connected ############################################################################### actionclass analyzeConnectedDMI0 { analyze(connected(TYPE_DMI, 0)); }; actionclass analyzeConnectedDMI1 { analyze(connected(TYPE_DMI, 1)); }; actionclass analyzeConnectedDMI2 { analyze(connected(TYPE_DMI, 2)); }; actionclass analyzeConnectedDMI3 { analyze(connected(TYPE_DMI, 3)); };