/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #pragma dictionary "PCI" #define PCI_DEV_FIT 1000 #define PCI_BUS_FIT 500 /* * SERD parameters. * * Nonfatal dpe errors have to be recovered by the hardened driver which may * cause intermittant performance/responsiveness problems, so we have tighter * serd parameters for these. These are most likely errors in buffers/caches * within devices and bridges, so use similar rates to cpu data cache parity * errors. * * We will be more conservative about nonfatal internal errors reported * by the driver. */ #define NONFATAL_COUNT 6 #define NONFATAL_TIME 2h #define NONFATAL_DPE_U_COUNT 3 #define NONFATAL_DPE_U_TIME 168h #define NONFATAL_DPE_D_COUNT 3 #define NONFATAL_DPE_D_TIME 168h #define IS_LEAF \ (confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") != "60400" && \ confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") != "60401") #define IS_BDG \ (confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") == "60400" || \ confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") == "60401") #define FD_IS_LEAF \ (confprop(asru(pcibus/pcidev[fromdev]/pcifn), "CLASS-CODE") != \ "60400" && \ confprop(asru(pcibus/pcidev[fromdev]/pcifn), "CLASS-CODE") != "60401") /* * note general rule for errors is that for upstream propagations * @pcibus/pcidev/pcifn is the sending device while for downstream * propagations it is the receiving device. */ asru pcibus/pcidev/pcifn; fru pcibus/pcidev; event fault.io.pci.device-interr@pcibus/pcidev/pcifn, FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; event fault.io.pci.device-invreq@pcibus/pcidev/pcifn, FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; event fault.io.pci.device-noresp@pcibus/pcidev/pcifn, FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * A faulty hostbridge may cause: * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * - nr-pw-d: the device not to respond to an upstream request * - nr-drw-d: the device not to respond to an upstream request * - ta-pw-d: the device to send a target abort to an upstream request * - ta-drw-d: the device to send a target abort to an upstream request * - serr-u: the device to report itself in error * - badreq-pw-d:a bad downstream request - not parity error (may cause target * to target abort or master abort) * - badreq-drw-d:a bad downstream request - not parity error (may cause * target to target abort or master abort) * - ape-d: address/parity to get corrupted during downstream transmission * - scpe-d: split completion to get corrupted during downstream transmission * - dpe-d: the device to transfer bad data and/or bad parity downstream * - retry-to-d: the device to exceed the set timeout for a delayed * transaction retry. */ #define PCI_TO_HB pcibus/pcidev/pcifn<> {fromdev != 32 && todev == 32} #define PCI_FROM_HB pcibus/pcidev/pcifn<> {fromdev == 32 && todev != 32} event error.io.pci.retry-to-d@pcibus/pcidev/pcifn; event error.io.pci.nr-pw-d@pcibus/pcidev/pcifn; event error.io.pci.nr-drw-d@pcibus/pcidev/pcifn; event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn; event error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn; event error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn; event error.io.pci.f-dpe-d@pcibus/pcidev/pcifn; event error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; event error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn; event error.io.pci.ape-d@pcibus/pcidev/pcifn; event error.io.pci.ape-u@pcibus/pcidev/pcifn; event error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn; event error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn; event error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn; event error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn; event error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn; event error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn; event error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; event error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; event error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; event error.io.pci.ta-u@pcibus/pcidev/pcifn; event error.io.pci.ma-u@pcibus/pcidev/pcifn; event error.io.pci.perr-dw-u@pcibus/pcidev/pcifn; event error.io.pci.perr-pw-u@pcibus/pcidev/pcifn; event error.io.pci.perr-dr-u@pcibus/pcidev/pcifn; event error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn; event error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn; event error.io.pci.device-serr@pcibus/pcidev/pcifn; event error.io.pci.device-ta@pcibus/pcidev/pcifn; event error.io.pci.device-par@pcibus/pcidev/pcifn; event error.io.pci.serr-u@pcibus/pcidev/pcifn; event error.io.pcix.scpe-d@pcibus/pcidev/pcifn; event error.io.pcix.scpe-u@pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; event ereport.io.pci.ma@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.rta@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.mdpe@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sta@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sserr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.dpe@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.target-rta@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.target-ma@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.discard@pcibus/pcidev/pcifn{within(5s)}; prop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)-> error.io.pci.nr-pw-d@PCI_FROM_HB, error.io.pci.nr-drw-d@PCI_FROM_HB, error.io.pci.retry-to-d@PCI_FROM_HB; prop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn (0)-> error.io.pci.badreq-pw-d@PCI_FROM_HB, error.io.pci.badreq-drw-d@PCI_FROM_HB; prop fault.io.pci.device-interr@pcibus/pcidev/pcifn (0)-> error.io.pci.device-par@pcibus/pcidev/pcifn, error.io.pci.device-ta@pcibus/pcidev/pcifn, error.io.pci.device-serr@pcibus/pcidev/pcifn; prop error.io.pci.device-par@pcibus/pcidev[fromdev]/pcifn (1)-> error.io.pci.f-dpe-d@PCI_FROM_HB, error.io.pci.nf-dpe-d@PCI_FROM_HB, error.io.pcix.scpe-d@PCI_FROM_HB, error.io.pci.ape-d@PCI_FROM_HB; prop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)-> error.io.pci.ta-pw-d@PCI_FROM_HB, error.io.pci.ta-drw-d@PCI_FROM_HB; prop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.sta@pcibus/pcidev/pcifn { todev == fromdev && fromdev == 32 }; prop error.io.pci.device-serr@pcibus/pcidev/pcifn (2)-> error.io.pci.serr-u@pcibus/pcidev/pcifn, ereport.io.pci.sserr@pcibus/pcidev/pcifn; prop error.io.pci.f-dpe-d@pcibus/pcidev/pcifn (1)-> error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn, error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn, error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn; prop error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn (1)-> error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn, error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn, error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * ereport generation rules for hostbridge * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ prop error.io.pci.dpdata-pw-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.dpe@PCI_TO_HB; prop error.io.pci.dpdata-dw-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.dpe@PCI_TO_HB; prop error.io.pci.dpdata-dr-u@pcibus/pcidev[fromdev]/pcifn (2)-> ereport.io.pci.mdpe@PCI_TO_HB, ereport.io.pci.dpe@PCI_TO_HB; prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (3)-> ereport.io.pci.dpe@PCI_TO_HB, error.io.pci.serr-u@PCI_TO_HB, ereport.io.pci.sserr@PCI_TO_HB; prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.sta@PCI_TO_HB; prop error.io.pci.ma-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.ma@PCI_TO_HB; prop error.io.pci.ta-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.rta@PCI_TO_HB; prop error.io.pci.perr-dw-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.mdpe@PCI_TO_HB; prop error.io.pci.perr-pw-u@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pci.mdpe@PCI_TO_HB; prop error.io.pci.badreq-drw-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.sta@PCI_TO_HB; prop error.io.pci.badreq-pw-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.sta@PCI_TO_HB; prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn, error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; prop error.io.pcix.scpe-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.dpe@PCI_TO_HB, error.io.pci.serr-u@PCI_TO_HB, ereport.io.pci.sserr@PCI_TO_HB, ereport.io.pci.sta@PCI_TO_HB; prop error.io.pcix.spl-comp-ma-u@pcibus/pcidev[fromdev]/pcifn (3)-> ereport.io.pcix.discard@PCI_TO_HB, error.io.pci.serr-u@PCI_TO_HB, ereport.io.pci.sserr@PCI_TO_HB; prop error.io.pcix.spl-comp-ta-u@pcibus/pcidev[fromdev]/pcifn (3)-> ereport.io.pcix.discard@PCI_TO_HB, error.io.pci.serr-u@PCI_TO_HB, ereport.io.pci.sserr@PCI_TO_HB; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * A faulty PCI leaf device or pci-pci bridge may cause: * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * - nr-pw-u: the device not to respond to a valid downstream request * - nr-drw-u: the device not to respond to a valid downstream request * - ta-pw-u: the device responds with a ta to a valid downstream * request * - ta-drw-u: the device responds with a ta to a valid downstream * request * - serr-u: the device to report itself in error * - badreq-pw-u: a bad upstream request (may cause target to target * abort or master abort) * - badreq-drw-u: a bad upstream request (may cause target to target * abort or master abort) * - ape-u: the transfer of bad address/parity upstream. * - scpe-u: the transfer of bad split completion upstream. * - dpe-u: the device to deliver bad data/parity upstream. * - retry-to-u: the device to exceed the set timeout for a delayed * transaction retry. * * A faulty PCI-X leaf device or bridge may also cause: * * - tx-oor: the device sends a byte count larger than the completers * address range. * - rx-unex-sc: the device recieved a split completion with a tag * which does not match any outstanding transaction. */ #define PCI_NOT_HB pcibus/pcidev[fromdev]/pcifn {fromdev != 32} event error.io.pci.retry-to-u@pcibus/pcidev/pcifn; event error.io.pci.nr-pw-u@pcibus/pcidev/pcifn; event error.io.pci.nr-drw-u@pcibus/pcidev/pcifn; event error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; event error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; event error.io.pci.f-dpe-u@pcibus/pcidev/pcifn; event error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; event error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn; event error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn; event error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn; event error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn; event error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn; event error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn; event error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn; event error.io.pci.perr-d@pcibus/pcidev/pcifn; event error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; event error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.target-rta-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.target-ma-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.tx-oor@pcibus/pcidev/pcifn; event error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn; event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn; event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn; event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn; event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn; event error.io.device.nf-device@pcibus/pcidev/pcifn; event error.io.device.f-device@pcibus/pcidev/pcifn; event error.io.pciex.flt-badreq-u@pcibus/pcidev/pcifn; event ereport.io.pcix.oor@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.unex-sc@pcibus/pcidev/pcifn{within(5s)}; prop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)-> error.io.pci.nr-pw-u@PCI_NOT_HB, error.io.pci.nr-drw-u@PCI_NOT_HB, error.io.pci.retry-to-u@PCI_NOT_HB; prop fault.io.pci.device-interr@pcibus/pcidev[fromdev]/pcifn (0)-> error.io.pci.ta-pw-u@PCI_NOT_HB, error.io.pci.ta-drw-u@PCI_NOT_HB, error.io.pci.serr-u@PCI_NOT_HB, error.io.pci.ape-u@PCI_NOT_HB, error.io.pci.f-dpe-u@PCI_NOT_HB, error.io.pci.nf-dpe-u@PCI_NOT_HB, error.io.device.f-device@PCI_NOT_HB, error.io.device.nf-device@PCI_NOT_HB, error.io.pcix.scpe-u@PCI_NOT_HB, error.io.pcix.tx-oor@PCI_NOT_HB, error.io.pcix.rx-unex-sc@PCI_NOT_HB; prop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn {FD_IS_LEAF} (0)-> error.io.pciex.flt-badreq-u@PCI_NOT_HB, error.io.pci.badreq-drw-u@PCI_NOT_HB, error.io.pci.badreq-pw-u@PCI_NOT_HB; prop error.io.pcix.tx-oor@pcibus/pcidev/pcifn (1)-> ereport.io.pcix.oor@pcibus/pcidev/pcifn; prop error.io.pcix.rx-unex-sc@pcibus/pcidev[fromdev]/pcifn (1)-> ereport.io.pcix.unex-sc@pcibus/pcidev/pcifn<> {fromdev != todev}; prop error.io.pci.f-dpe-u@pcibus/pcidev/pcifn (1)-> error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn, error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn, error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn (2)-> error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn, error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn (3)-> error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn, error.io.pci.perr-d@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn (2)-> error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn, error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn (1)-> error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; prop error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn (1)-> error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn, error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn, error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn (2)-> error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn, error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn (3)-> error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn, error.io.pci.perr-d@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn (2)-> error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn, error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; prop error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn (1)-> error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * A faulty pci-pci bridge may also cause * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * - nr-pw-d: the device not to respond to a valid upstream request * - nr-drw-d: the device not to respond to a valid upstream request * - ta-pw-d: the device responds with a ta to a valid upstream * request * - ta-drw-d: the device responds with a ta to a valid upstream * request * - ape-d: address/parity to get corrupted during downstream transmission. * - scpe-d: split completion gets corrupted during downstream transmission. * - dpe-d: data/parity to get corrupted during downstream transmission. * - retry-to-d: the device to exceed the set timeout for a delayed * transaction retry. */ event error.io.pci.ape-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.f-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.scpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; prop fault.io.pci.device-noresp@pcibus/pcidev/pcifn (0)-> error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; prop fault.io.pci.device-interr@pcibus/pcidev/pcifn (0)-> error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.ape-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pcix.scpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.f-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * A faulty PCI bus may cause: * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * - ape-d: address/parity to get corrupted during downstream transmission. * - scpe-d: split completion gets corrupted during downstream transmission. * - dpe-d: data/parity to get corrupted during downstream transmission. * - ape-u: address/parity to get corrupted during upstream transmission. * - dpe-u: data/parity to get corrupted during read upstream transmission. * - scpe-u: split completion to get corrupted during upstream transmission. */ fru pcibus; asru pcibus; event fault.io.pci.bus-linkerr@pcibus, FITrate=PCI_BUS_FIT, FRU=pcibus, ASRU=pcibus; prop fault.io.pci.bus-linkerr@pcibus (0)-> error.io.pci.ape-d@pcibus/pcidev/pcifn { todev != 32}, error.io.pci.f-dpe-d@pcibus/pcidev/pcifn { todev != 32}, error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { todev != 32}, error.io.pci.ape-u@pcibus/pcidev/pcifn { todev != 32}, error.io.pci.f-dpe-u@pcibus/pcidev/pcifn { todev != 32}, error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { todev != 32}, error.io.pcix.scpe-d@pcibus/pcidev/pcifn { todev != 32}, error.io.pcix.scpe-u@pcibus/pcidev/pcifn { todev != 32}, error.io.pcix.tx-oor@pcibus/pcidev/pcifn { todev != 32}, error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn { todev != 32}; /* * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * recursive rules for pci-pci bridges * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ event error.io.pci.serr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.perr-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.perr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.perr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn; event error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn; event error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn; event error.io.pci.ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-ape-u@pcibus/pcidev/pcifn; event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; event error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-d@pcibus/pcidev/pcifn; event error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.target-rta-d@pcibus/pcidev/pcifn; event error.io.pci.target-ma-d@pcibus/pcidev/pcifn; event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.nr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ta-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event ereport.io.pci.sec-ma@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sec-sta@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sec-rta@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pci.dto@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn{within(5s)}; /* * SERR# can propagate upstream and may be seen by other devices on the bus */ prop error.io.pci.serr-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.sserr@pcibus/pcidev/pcifn<> {todev!=fromdev}; prop error.io.pci.serr-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.sserr@pcibus/pcidev/pcifn; prop error.io.pci.serr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; /* * PERR# can propagate upstream for delayed writes. For posted writes * it turns into an SERR#. */ prop error.io.pci.perr-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.perr-dw-u@pcibus/pcidev/pcifn; prop error.io.pci.perr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; /* * PERR# can propagate downstream (only for downstream dw parity error) */ prop error.io.pci.perr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.perr-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.perr-d@pcibus/pcidev/pcifn (1)-> error.io.pci.perr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; /* * downstream target ereports are for any descendant device * * A hostbridge driver may generate "target-" ereports when knowledge of the * physical address associated with a fault allows the target device to be * determined. This is not a requirement of the Diagnosis Engine, but can be * valuable when available. */ prop error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn; prop error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn (1)-> error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.target-rta-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.target-rta@pcibus/pcidev/pcifn; prop error.io.pci.target-rta-d@pcibus/pcidev/pcifn (1)-> error.io.pci.target-rta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.target-ma-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.target-ma@pcibus/pcidev/pcifn; prop error.io.pci.target-ma-d@pcibus/pcidev/pcifn (1)-> error.io.pci.target-ma-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; /* * target aborts propagate upstream */ prop error.io.pci.ta-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-rta@pcibus/pcidev/pcifn, error.io.pci.ta-u@pcibus/pcidev/pcifn; /* * bad data (ie invalid but not an ape or dpe) can propagate downstream, * and at some point may result in a target or master abort */ prop error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; prop error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; prop error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, error.io.pci.nr-drw-u@pcibus/pcidev/pcifn, error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; prop error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> error.io.pci.nr-drw-u@pcibus/pcidev/pcifn, error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; prop error.io.pci.nr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-ma@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> ereport.io.pci.sec-rta@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-u@pcibus/pcidev/pcifn (1)-> error.io.pci.ma-u@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-u@pcibus/pcidev/pcifn (1)-> error.io.pci.target-rta-d@pcibus/pcidev/pcifn, error.io.pci.target-ma-d@pcibus/pcidev/pcifn; prop error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.sec-ma@pcibus/pcidev/pcifn; prop error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> error.io.pci.ma-u@pcibus/pcidev/pcifn, error.io.pci.ta-u@pcibus/pcidev/pcifn; prop error.io.pci.ta-drw-u@pcibus/pcidev/pcifn (1)-> error.io.pci.ta-u@pcibus/pcidev/pcifn; prop error.io.pci.ta-drw-u@pcibus/pcidev/pcifn (1)-> error.io.pci.target-rta-d@pcibus/pcidev/pcifn; /* * bad data (ie invalid but not an ape or dpe) can propagate upstream, * and at some point may result in a target or master abort */ prop error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn, error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; prop error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn (0)-> error.io.pci.nr-pw-d@pcibus/pcidev/pcifn, error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; prop error.io.pci.nr-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.ma@pcibus/pcidev/pcifn; prop error.io.pci.nr-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.ma@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.rta@pcibus/pcidev/pcifn; prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.rta@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; /* * for delayed writes we treat upstream badreq specially as rta always * propagates back downstream to the leaf */ prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.rta@pcibus/pcidev/pcifn, ereport.io.pci.ma@pcibus/pcidev/pcifn; prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.ma@pcibus/pcidev/pcifn, ereport.io.pci.rta@pcibus/pcidev/pcifn; prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.ma@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.ma@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; prop error.io.pci.ta-drw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.ta-d@pcibus/pcidev/pcifn; prop error.io.pci.ta-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.rta@pcibus/pcidev/pcifn; prop error.io.pci.ta-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn, ereport.io.pci.rta@pcibus/pcidev/pcifn; prop error.io.pci.ta-d@pcibus/pcidev/pcifn (1)-> error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; /* * Request with address parity error must be detected by parent device * and can optionally result in a target or master abort. * It may also be detected by sibling devices on a bus */ prop error.io.pci.ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.ape-u@pcibus/pcidev/pcifn (0)-> error.io.pci.nr-drw-d@pcibus/pcidev/pcifn, error.io.pci.ta-drw-d@pcibus/pcidev/pcifn, error.io.pci.nr-pw-d@pcibus/pcidev/pcifn, error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; prop error.io.pci.ape-u@pcibus/pcidev/pcifn (0)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn<> {fromdev != todev}, ereport.io.pci.sserr@pcibus/pcidev/pcifn<> {fromdev != todev}; prop error.io.pci.ape-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-ape-u@pcibus/pcidev/pcifn; /* * If the bridge sees an upstream split completion error (pci-x only) it could * result in a number of things * - for various faults in the split completion (eg address parity error) * we will respond with a target abort (which the child device will treat * as a split completion ta) * - for other faults we can't tell who send the split completion and so * just drop the request (which the child device sees as a split * completion ma) */ prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> ereport.io.pci.sec-sta@pcibus/pcidev/pcifn, ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn, error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn (1)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.sserr@pcibus/pcidev/pcifn, ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn, ereport.io.pci.ma@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn (1)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.sserr@pcibus/pcidev/pcifn, ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn, ereport.io.pci.rta@pcibus/pcidev/pcifn; prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn; /* * request with address parity error must be detected by child device * and can optionally result in a target or master abort. */ prop error.io.pci.ape-d@pcibus/pcidev/pcifn (1)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.ape-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn; prop error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn { IS_LEAF } (2)-> ereport.io.pci.sserr@pcibus/pcidev/pcifn, ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.ape-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.ape-d@pcibus/pcidev/pcifn (0)-> error.io.pci.ta-pw-u@pcibus/pcidev/pcifn, error.io.pci.ta-drw-u@pcibus/pcidev/pcifn, error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, error.io.pci.nr-drw-u@pcibus/pcidev/pcifn; /* * If the device sees a downstream split completion error (pci-x only) it could * result in a number of things * - for various faults in the split completion (eg address parity error) * we will respond with a target abort (which the parent bridge will treat * as a split completion ta) * - for other faults we can't tell who send the split completion and so * just drop the request (which the parent bridge sees as a split * completion ma) */ prop error.io.pcix.scpe-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.sta@pcibus/pcidev/pcifn, ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.sserr@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pcix.scpe-d@pcibus/pcidev/pcifn (1)-> error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn, error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn, ereport.io.pci.sec-ma@pcibus/pcidev/pcifn; prop error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, error.io.pci.serr-u@pcibus/pcidev/pcifn, ereport.io.pci.sec-rta@pcibus/pcidev/pcifn; /* * request with data parity error can propagate upstream * * for PCI/X (but not PCI) the split write can optionally be forwarded across * the bridge, maintaining bad parity/ecc * * if there is a dpe on a retry on a delayed write, we don't send another * retry, and eventually the dto timer will expire */ prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> ereport.io.pci.mdpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; prop error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; /* * Request with data parity error can propagate downstream. A hardened * leaf driver should handle the error, but may or may not be able to * avoid service impact. We handle to two cases separately. If there is * service impact we will fail immediately, if not we will feed into a SERD * engine. * * for PCI/X (but not PCI) the split write can optionally be forwarded across * the bridge, maintaining bad parity/ecc * * if there is a dpe on a retry on a delayed write, we don't send another * retry, and eventually the dto timer will expire */ prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn (1)-> error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn, error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> error.io.pci.retry-to-d@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn, error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> error.io.pci.retry-to-d@pcibus/pcidev/pcifn; prop error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> ereport.io.pci.dpe@pcibus/pcidev/pcifn, ereport.io.pci.mdpe@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; /* * delayed read/write retry timeout can cause dto at a bridge */ prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> error.io.pci.retry-to-u@pcibus/pcidev/pcifn; prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> ereport.io.pci.dto@pcibus/pcidev/pcifn; prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn (0)-> error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> ereport.io.pci.dto@pcibus/pcidev/pcifn; prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> error.io.pci.serr-u@pcibus/pcidev/pcifn; /* * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * source- propagations. * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; event error.io.service.restored@pcibus/pcidev/pcifn; event ereport.io.service.lost@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.service.degraded@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.service.unaffected@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.service.restored@pcibus/pcidev/pcifn{within(30s)}; prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.service.lost@pcibus/pcidev/pcifn, ereport.io.service.degraded@pcibus/pcidev/pcifn; prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.service.lost@pcibus/pcidev/pcifn, ereport.io.service.degraded@pcibus/pcidev/pcifn; prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.service.lost@pcibus/pcidev/pcifn, ereport.io.service.degraded@pcibus/pcidev/pcifn; prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pci.source-ape-u@pcibus/pcidev/pcifn (1)-> error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; prop error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn (1)-> error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; /* * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * Handling of leaf driver detected internal errors. Use serd engine if * no service impact - otherwise fail immediately * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ event ereport.io.device.inval_state@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.device.no_response@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.device.stall@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.device.badint_limit@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.device.nf-device@pcibus/pcidev/pcifn; prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.lost@pcibus/pcidev/pcifn, ereport.io.service.degraded@pcibus/pcidev/pcifn; prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.restored@pcibus/pcidev/pcifn; prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.device.inval_state@pcibus/pcidev/pcifn, ereport.io.device.no_response@pcibus/pcidev/pcifn, ereport.io.device.stall@pcibus/pcidev/pcifn, ereport.io.device.badint_limit@pcibus/pcidev/pcifn; prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.lost@pcibus/pcidev/pcifn, ereport.io.service.degraded@pcibus/pcidev/pcifn; engine serd.io.device.nonfatal@pcibus/pcidev/pcifn, N=NONFATAL_COUNT, T=NONFATAL_TIME, method=persistent, trip=ereport.io.device.nf-device@pcibus/pcidev/pcifn; event upset.io.device.nonfatal@pcibus/pcidev/pcifn, engine=serd.io.device.nonfatal@pcibus/pcidev/pcifn; prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.device.nf-device@pcibus/pcidev/pcifn; prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (0)-> ereport.io.device.inval_state@pcibus/pcidev/pcifn, ereport.io.device.no_response@pcibus/pcidev/pcifn, ereport.io.device.stall@pcibus/pcidev/pcifn, ereport.io.device.badint_limit@pcibus/pcidev/pcifn, ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.device.inval_state@pcibus/pcidev/pcifn, ereport.io.device.no_response@pcibus/pcidev/pcifn, ereport.io.device.stall@pcibus/pcidev/pcifn, ereport.io.device.badint_limit@pcibus/pcidev/pcifn; prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; /* * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * Handling of pci express nonfatal errors (dpe). Use serd engine if * no service impact - otherwise fail immediately * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ event ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; event ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; engine serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, N=NONFATAL_DPE_U_COUNT, T=NONFATAL_DPE_U_TIME, method=persistent, trip=ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; event upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, engine=serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn, ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn; prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; engine serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, N=NONFATAL_DPE_D_COUNT, T=NONFATAL_DPE_D_TIME, method=persistent, trip=ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; event upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, engine=serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn, ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn; prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> ereport.io.service.unaffected@pcibus/pcidev/pcifn, error.io.service.restored@pcibus/pcidev/pcifn; /* * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * stub unused ereports * - ignore rx-spl as we can't tell what message it was (and we should have * diagnosed the problem anyway from standard pci ereports) * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info) * - ignore unex-spl/sec-unex-spl * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe) * - ignore ecc.ce ereports for now (could do serd on these) * - ignore nr ereport * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ event ereport.io.pci.nr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.s-ce@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.s-ue@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn{within(5s)}; event ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn{within(5s)}; event upset.io.pcix.discard@pcibus/pcidev/pcifn; prop upset.io.pcix.discard@pcibus/pcidev/pcifn (1)-> ereport.io.pci.nr@pcibus/pcidev/pcifn, ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn, ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn, ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn, ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn, ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn, ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn, ereport.io.pcix.s-ce@pcibus/pcidev/pcifn, ereport.io.pcix.s-ue@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn, ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn, ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn, ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn;