xref: /onnv-gate/usr/src/cmd/fm/eversholt/files/common/pci.esc (revision 10124:5b9859ecb395)
10Sstevel@tonic-gate/*
20Sstevel@tonic-gate * CDDL HEADER START
30Sstevel@tonic-gate *
40Sstevel@tonic-gate * The contents of this file are subject to the terms of the
51865Sdilpreet * Common Development and Distribution License (the "License").
61865Sdilpreet * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate *
80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate * See the License for the specific language governing permissions
110Sstevel@tonic-gate * and limitations under the License.
120Sstevel@tonic-gate *
130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate *
190Sstevel@tonic-gate * CDDL HEADER END
200Sstevel@tonic-gate */
210Sstevel@tonic-gate/*
22*10124SStephen.Hanson@Sun.COM * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
230Sstevel@tonic-gate * Use is subject to license terms.
240Sstevel@tonic-gate */
250Sstevel@tonic-gate
260Sstevel@tonic-gate#pragma dictionary "PCI"
270Sstevel@tonic-gate
283062Scindi#include <fm/topo_hc.h>
293062Scindi
300Sstevel@tonic-gate#define PCI_DEV_FIT 1000
310Sstevel@tonic-gate#define PCI_BUS_FIT 500
320Sstevel@tonic-gate
331865Sdilpreet/*
341865Sdilpreet * SERD parameters.
351865Sdilpreet *
361865Sdilpreet * Nonfatal dpe errors have to be recovered by the hardened driver which may
371865Sdilpreet * cause intermittant performance/responsiveness problems, so we have tighter
381865Sdilpreet * serd parameters for these. These are most likely errors in buffers/caches
391865Sdilpreet * within devices and bridges, so use similar rates to cpu data cache parity
401865Sdilpreet * errors.
411865Sdilpreet *
421865Sdilpreet * We will be more conservative about nonfatal internal errors reported
431865Sdilpreet * by the driver.
441865Sdilpreet */
451865Sdilpreet#define NONFATAL_COUNT 6
461865Sdilpreet#define NONFATAL_TIME 2h
477197Sstephh#define NONFATAL_DPE_COUNT 3
487197Sstephh#define NONFATAL_DPE_TIME 168h
497197Sstephh
507197Sstephh#define	PCIFN		pcibus/pcidev/pcifn
517197Sstephh#define	PCIFNHZ		pcibus<>/pcidev<>/pcifn<>
527197Sstephh
537197Sstephhengine serd.io.device.nonfatal@PCIFN,
547197Sstephh	N=NONFATAL_COUNT, T=NONFATAL_TIME;
557197Sstephh
567197Sstephhengine serd.io.pci.nf-dpe@PCIFN,
577197Sstephh	N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME;
587197Sstephh
597197Sstephhengine serd.io.pci.nf-dpe-bus@pcibus,
607197Sstephh	N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME;
611865Sdilpreet
621865Sdilpreet#define	IS_LEAF \
637197Sstephh	(confprop_defined(PCIFN, TOPO_PCI_CLASS) && \
647197Sstephh	confprop(PCIFN, TOPO_PCI_CLASS) != "60400" && \
657197Sstephh	confprop(PCIFN, TOPO_PCI_CLASS) != "60401")
661865Sdilpreet
671865Sdilpreet#define	IS_BDG \
687197Sstephh	(confprop(PCIFN, TOPO_PCI_CLASS) == "60400" || \
697197Sstephh	confprop(PCIFN, TOPO_PCI_CLASS) == "60401")
701865Sdilpreet
711865Sdilpreet#define	FD_IS_LEAF \
727197Sstephh	(confprop_defined(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) && \
737197Sstephh	confprop(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) != "60400" && \
747197Sstephh	confprop(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) != "60401")
751865Sdilpreet
767197Sstephh#define	IS_LF(f)	(confprop_defined(f, TOPO_PCI_CLASS) && \
777197Sstephh			confprop(f, TOPO_PCI_CLASS) != "60400" && \
787197Sstephh			confprop(f, TOPO_PCI_CLASS) != "60401")
791865Sdilpreet/*
801865Sdilpreet * note general rule for errors is that for upstream propagations
817197Sstephh * @PCIFN is the sending device while  for downstream
821865Sdilpreet * propagations it is the receiving device.
831865Sdilpreet */
841865Sdilpreet
857197Sstephhevent fault.io.pci.device-interr-corr@PCIFN,
867197Sstephh	engine=serd.io.device.nonfatal@PCIFN, FITrate=PCI_DEV_FIT;
870Sstevel@tonic-gate
887197Sstephhevent fault.io.pci.device-interr-unaf@PCIFN,
897197Sstephh	engine=serd.io.pci.nf-dpe@PCIFN, FITrate=PCI_DEV_FIT;
901865Sdilpreet
917197Sstephhevent fault.io.pci.device-interr-deg@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
927197Sstephh
937197Sstephhevent fault.io.pci.device-interr@PCIFN, FITrate=PCI_DEV_FIT;
941865Sdilpreet
957197Sstephhevent fault.io.pci.device-invreq@PCIFN, FITrate=PCI_DEV_FIT;
967197Sstephh
977197Sstephhevent fault.io.pci.device-noresp@PCIFN, FITrate=PCI_DEV_FIT;
980Sstevel@tonic-gate
99*10124SStephen.Hanson@Sun.COMevent fault.io.pci.fw_corrupt@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
100*10124SStephen.Hanson@Sun.COM
101*10124SStephen.Hanson@Sun.COMevent fault.io.pci.fw_mismatch@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
102*10124SStephen.Hanson@Sun.COM
1031865Sdilpreet/*
1041865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1051865Sdilpreet * A faulty hostbridge may cause:
1061865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1071865Sdilpreet *  - nr-pw-d:	the device not to respond to an upstream request
1081865Sdilpreet *  - nr-drw-d:	the device not to respond to an upstream request
1091865Sdilpreet *  - ta-pw-d:	the device to send a target abort to an upstream request
1101865Sdilpreet *  - ta-drw-d:	the device to send a target abort to an upstream request
1111865Sdilpreet *  - serr-u:	the device to report itself in error
1121865Sdilpreet *  - badreq-pw-d:a bad downstream request - not parity error (may cause target
1131865Sdilpreet * 		to target abort or master abort)
1141865Sdilpreet *  - badreq-drw-d:a bad downstream request - not parity error (may cause
1151865Sdilpreet * 		target to target abort or master abort)
1161865Sdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission
1171865Sdilpreet *  - scpe-d:	split completion to get corrupted during downstream transmission
1181865Sdilpreet *  - dpe-d:	the device to transfer bad data and/or bad parity downstream
1191865Sdilpreet *  - retry-to-d:	the device to exceed the set timeout for a delayed
1201865Sdilpreet *			transaction retry.
1211865Sdilpreet */
1221865Sdilpreet#define	PCI_TO_HB pcibus/pcidev<todev>/pcifn<> {fromdev != 32 && todev == 32}
1231865Sdilpreet#define	PCI_FROM_HB pcibus/pcidev<todev>/pcifn<> {fromdev == 32 && todev != 32}
1240Sstevel@tonic-gate
1257197Sstephhevent error.io.pci.retry-to-d@PCIFN;
1267197Sstephhevent error.io.pci.nr-pw-d@PCIFN;
1277197Sstephhevent error.io.pci.nr-drw-d@PCIFN;
1287197Sstephhevent error.io.pci.ta-pw-d@PCIFN;
1297197Sstephhevent error.io.pci.ta-drw-d@PCIFN;
1307197Sstephhevent error.io.pci.badreq-pw-d@PCIFN;
1317197Sstephhevent error.io.pci.badreq-drw-d@PCIFN;
1327197Sstephhevent error.io.pci.f-dpe-d@PCIFN;
1337197Sstephhevent error.io.pci.deg-dpe-d@PCIFN;
1347197Sstephhevent error.io.pci.nf-dpe-d@PCIFN;
1357197Sstephhevent error.io.pci.ape-d@PCIFN;
1367197Sstephhevent error.io.pci.ape-u@PCIFN;
1377197Sstephhevent error.io.pci.dpdata-dw-d@PCIFN;
1387197Sstephhevent error.io.pci.dpdata-pw-d@PCIFN;
1397197Sstephhevent error.io.pci.dpdata-dr-d@PCIFN;
1407197Sstephhevent error.io.pci.dpdata-pw-u@PCIFN;
1417197Sstephhevent error.io.pci.dpdata-dw-u@PCIFN;
1427197Sstephhevent error.io.pci.dpdata-dr-u@PCIFN;
1437197Sstephhevent error.io.pci.ta-u@PCIFN;
1447197Sstephhevent error.io.pci.ma-u@PCIFN;
1457197Sstephhevent error.io.pci.perr-dw-u@PCIFN;
1467197Sstephhevent error.io.pci.perr-pw-u@PCIFN;
1477197Sstephhevent error.io.pci.perr-dr-u@PCIFN;
1487197Sstephhevent error.io.pci.badreq-drw-u@PCIFN;
1497197Sstephhevent error.io.pci.badreq-pw-u@PCIFN;
1507197Sstephhevent error.io.pci.device-serr@PCIFN;
1517197Sstephhevent error.io.pci.device-ta@PCIFN;
1527197Sstephhevent error.io.pci.device-par@PCIFN;
1537197Sstephhevent error.io.pci.serr-u@PCIFN;
1547197Sstephhevent error.io.pcix.scpe-d@PCIFN;
1557197Sstephhevent error.io.pcix.scpe-u@PCIFN;
1567197Sstephhevent error.io.pcix.spl-comp-ma-u@PCIFN;
1577197Sstephhevent error.io.pcix.spl-comp-ta-u@PCIFN;
1587197Sstephhevent error.io.pcix.spl-comp-ma-d@PCIFN;
1597197Sstephhevent error.io.pcix.spl-comp-ta-d@PCIFN;
1601865Sdilpreet
1617197Sstephhevent ereport.io.pci.ma@PCIFN{within(5s)};
1627197Sstephhevent ereport.io.pci.rta@PCIFN{within(5s)};
1637197Sstephhevent ereport.io.pci.mdpe@PCIFN{within(5s)};
1647197Sstephhevent ereport.io.pci.sta@PCIFN{within(5s)};
1657197Sstephhevent ereport.io.pci.sserr@PCIFN{within(5s)};
1667197Sstephhevent ereport.io.pci.dpe@PCIFN{within(5s)};
1677197Sstephhevent ereport.io.pci.target-mdpe@PCIFN{within(5s)};
1687197Sstephhevent ereport.io.pci.target-rta@PCIFN{within(5s)};
1697197Sstephhevent ereport.io.pci.target-ma@PCIFN{within(5s)};
1707197Sstephhevent ereport.io.pcix.discard@PCIFN{within(5s)};
1711865Sdilpreet
1721865Sdilpreetprop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)->
1731865Sdilpreet    error.io.pci.nr-pw-d@PCI_FROM_HB,
1741865Sdilpreet    error.io.pci.nr-drw-d@PCI_FROM_HB,
1751865Sdilpreet    error.io.pci.retry-to-d@PCI_FROM_HB;
1761865Sdilpreet
1771865Sdilpreetprop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn (0)->
1781865Sdilpreet    error.io.pci.badreq-pw-d@PCI_FROM_HB,
1791865Sdilpreet    error.io.pci.badreq-drw-d@PCI_FROM_HB;
1801865Sdilpreet
1817197Sstephhprop fault.io.pci.device-interr-unaf@pcibus/pcidev[fromdev]/pcifn (0)->
1827197Sstephh    error.io.pci.nf-dpe-d@PCI_FROM_HB;
1837197Sstephh
1847197Sstephhprop fault.io.pci.device-interr-deg@pcibus/pcidev[fromdev]/pcifn (0)->
1857197Sstephh    error.io.pci.deg-dpe-d@PCI_FROM_HB;
1867197Sstephh
1877197Sstephhprop fault.io.pci.device-interr@PCIFN (0)->
1887197Sstephh    error.io.pci.device-par@PCIFN,
1897197Sstephh    error.io.pci.device-ta@PCIFN,
1907197Sstephh    error.io.pci.device-serr@PCIFN;
1911865Sdilpreet
1921865Sdilpreetprop error.io.pci.device-par@pcibus/pcidev[fromdev]/pcifn (1)->
1931865Sdilpreet    error.io.pci.f-dpe-d@PCI_FROM_HB,
1941865Sdilpreet    error.io.pcix.scpe-d@PCI_FROM_HB,
1951865Sdilpreet    error.io.pci.ape-d@PCI_FROM_HB;
1961865Sdilpreet
1971865Sdilpreetprop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)->
1981865Sdilpreet    error.io.pci.ta-pw-d@PCI_FROM_HB,
1991865Sdilpreet    error.io.pci.ta-drw-d@PCI_FROM_HB;
2001865Sdilpreet
2011865Sdilpreetprop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)->
2021865Sdilpreet    ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn {
2031865Sdilpreet	todev == fromdev && fromdev == 32 };
2041865Sdilpreet
2057197Sstephhprop error.io.pci.device-serr@PCIFN (2)->
2067197Sstephh    error.io.pci.serr-u@PCIFN,
2077197Sstephh    ereport.io.pci.sserr@PCIFN;
2080Sstevel@tonic-gate
2090Sstevel@tonic-gate/*
2101865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2111865Sdilpreet * ereport generation rules for hostbridge
2121865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2130Sstevel@tonic-gate */
2141865Sdilpreetprop error.io.pci.dpdata-pw-u@pcibus/pcidev[fromdev]/pcifn (1)->
2151865Sdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
2161865Sdilpreet
2171865Sdilpreetprop error.io.pci.dpdata-dw-u@pcibus/pcidev[fromdev]/pcifn (1)->
2181865Sdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
2191865Sdilpreet
2201865Sdilpreetprop error.io.pci.dpdata-dr-u@pcibus/pcidev[fromdev]/pcifn (2)->
2211865Sdilpreet    ereport.io.pci.mdpe@PCI_TO_HB,
2221865Sdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
2231865Sdilpreet
2241865Sdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (3)->
2251865Sdilpreet    ereport.io.pci.dpe@PCI_TO_HB,
2261865Sdilpreet    error.io.pci.serr-u@PCI_TO_HB,
2271865Sdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
2281865Sdilpreet
2291865Sdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)->
2301865Sdilpreet    ereport.io.pci.sta@PCI_TO_HB;
2311865Sdilpreet
2321865Sdilpreetprop error.io.pci.ma-u@pcibus/pcidev[fromdev]/pcifn (1)->
2331865Sdilpreet    ereport.io.pci.ma@PCI_TO_HB;
2341865Sdilpreet
2351865Sdilpreetprop error.io.pci.ta-u@pcibus/pcidev[fromdev]/pcifn (1)->
2361865Sdilpreet    ereport.io.pci.rta@PCI_TO_HB;
2371865Sdilpreet
2381865Sdilpreetprop error.io.pci.perr-dw-u@pcibus/pcidev[fromdev]/pcifn (1)->
2391865Sdilpreet    ereport.io.pci.mdpe@PCI_TO_HB;
2400Sstevel@tonic-gate
2411865Sdilpreetprop error.io.pci.perr-pw-u@pcibus/pcidev[fromdev]/pcifn (1)->
2421865Sdilpreet    ereport.io.pci.mdpe@PCI_TO_HB;
2431865Sdilpreet
2441865Sdilpreetprop error.io.pci.badreq-drw-u@pcibus/pcidev[fromdev]/pcifn (0)->
2451865Sdilpreet    ereport.io.pci.sta@PCI_TO_HB;
2461865Sdilpreet
2471865Sdilpreetprop error.io.pci.badreq-pw-u@pcibus/pcidev[fromdev]/pcifn (0)->
2481865Sdilpreet    ereport.io.pci.sta@PCI_TO_HB;
2491865Sdilpreet
2507197Sstephhprop error.io.pcix.scpe-u@PCIFN (1)->
2517197Sstephh    error.io.pcix.spl-comp-ma-d@PCIFN,
2527197Sstephh    error.io.pcix.spl-comp-ta-d@PCIFN;
2531865Sdilpreet
2541865Sdilpreetprop error.io.pcix.scpe-u@pcibus/pcidev[fromdev]/pcifn (0)->
2551865Sdilpreet    ereport.io.pci.dpe@PCI_TO_HB,
2561865Sdilpreet    error.io.pci.serr-u@PCI_TO_HB,
2571865Sdilpreet    ereport.io.pci.sserr@PCI_TO_HB,
2581865Sdilpreet    ereport.io.pci.sta@PCI_TO_HB;
2591865Sdilpreet
2601865Sdilpreetprop error.io.pcix.spl-comp-ma-u@pcibus/pcidev[fromdev]/pcifn (3)->
2611865Sdilpreet    ereport.io.pcix.discard@PCI_TO_HB,
2621865Sdilpreet    error.io.pci.serr-u@PCI_TO_HB,
2631865Sdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
2641865Sdilpreet
2651865Sdilpreetprop error.io.pcix.spl-comp-ta-u@pcibus/pcidev[fromdev]/pcifn (3)->
2661865Sdilpreet    ereport.io.pcix.discard@PCI_TO_HB,
2671865Sdilpreet    error.io.pci.serr-u@PCI_TO_HB,
2681865Sdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
2690Sstevel@tonic-gate
2701865Sdilpreet/*
2711865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2721865Sdilpreet * A faulty PCI leaf device or pci-pci bridge may cause:
2731865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2741865Sdilpreet *  - nr-pw-u:		the device not to respond to a valid downstream request
2751865Sdilpreet *  - nr-drw-u:		the device not to respond to a valid downstream request
2761865Sdilpreet *  - ta-pw-u:		the device responds with a ta to a valid downstream
2771865Sdilpreet *			request
2781865Sdilpreet *  - ta-drw-u:		the device responds with a ta to a valid downstream
2791865Sdilpreet *			request
2801865Sdilpreet *  - serr-u:		the device to report itself in error
2811865Sdilpreet *  - badreq-pw-u:	a bad upstream request (may cause target to target
2821865Sdilpreet *			abort or master abort)
2831865Sdilpreet *  - badreq-drw-u:	a bad upstream request (may cause target to target
2841865Sdilpreet *			abort or master abort)
2851865Sdilpreet *  - ape-u:		the transfer of bad address/parity upstream.
2861865Sdilpreet *  - scpe-u:		the transfer of bad split completion upstream.
2871865Sdilpreet *  - dpe-u:		the device to deliver bad data/parity upstream.
2881865Sdilpreet *  - retry-to-u:	the device to exceed the set timeout for a delayed
2891865Sdilpreet *			transaction retry.
2901865Sdilpreet *
2911865Sdilpreet * A faulty PCI-X leaf device or bridge may also cause:
2921865Sdilpreet *
2931865Sdilpreet *  - tx-oor:		the device sends a byte count larger than the completers
2941865Sdilpreet *			address range.
2951865Sdilpreet *  - rx-unex-sc:	the device recieved a split completion with a tag
2961865Sdilpreet * 			which does not match any outstanding transaction.
2971865Sdilpreet */
2980Sstevel@tonic-gate
2991865Sdilpreet#define	PCI_NOT_HB pcibus/pcidev[fromdev]/pcifn {fromdev != 32}
3000Sstevel@tonic-gate
3017197Sstephhevent error.io.pci.retry-to-u@PCIFN;
3027197Sstephhevent error.io.pci.nr-pw-u@PCIFN;
3037197Sstephhevent error.io.pci.nr-drw-u@PCIFN;
3047197Sstephhevent error.io.pci.ta-pw-u@PCIFN;
3057197Sstephhevent error.io.pci.ta-drw-u@PCIFN;
3067197Sstephhevent error.io.pci.f-dpe-u@PCIFN;
3077197Sstephhevent error.io.pci.deg-dpe-u@PCIFN;
3087197Sstephhevent error.io.pci.nf-dpe-u@PCIFN;
3097197Sstephhevent error.io.pci.flt-dpdata-pw-u@PCIFN;
3107197Sstephhevent error.io.pci.flt-dpdata-dw-u@PCIFN;
3117197Sstephhevent error.io.pci.flt-dpdata-dr-u@PCIFN;
3127197Sstephhevent error.io.pci.source-dpdata-u@PCIFN;
3137197Sstephhevent error.io.pci.f-source-dpdata-u@PCIFN;
3147197Sstephhevent error.io.pci.f-source-dpdata-u@PCIFN/PCIFN;
3157197Sstephhevent error.io.pci.deg-source-dpdata-u@PCIFN;
3167197Sstephhevent error.io.pci.deg-source-dpdata-u@PCIFN/PCIFN;
3177197Sstephhevent error.io.pci.nf-source-dpdata-u@PCIFN;
3187197Sstephhevent error.io.pci.nf-source-dpdata-u@PCIFN/PCIFN;
3197197Sstephhevent error.io.pci.perr-d@PCIFN;
3207197Sstephhevent error.io.pci.target-mdpe-d@PCIFN;
3217197Sstephhevent error.io.pci.target-mdpe-d@PCIFN/PCIFN;
3227197Sstephhevent error.io.pci.target-rta-d@PCIFN/PCIFN;
3237197Sstephhevent error.io.pci.target-ma-d@PCIFN/PCIFN;
3247197Sstephhevent error.io.pcix.tx-oor@PCIFN;
3257197Sstephhevent error.io.pcix.rx-unex-sc@PCIFN;
3267197Sstephhevent error.io.device.nf-device@PCIFN;
3277197Sstephhevent error.io.device.f-device@PCIFN;
3287197Sstephhevent error.io.device.deg-device@PCIFN;
3297197Sstephhevent error.io.service.restored@PCIFN;
3300Sstevel@tonic-gate
3317197Sstephhevent ereport.io.pcix.oor@PCIFN{within(5s)};
3327197Sstephhevent ereport.io.pcix.unex-sc@PCIFN{within(5s)};
333*10124SStephen.Hanson@Sun.COMevent ereport.io.device.fw_corrupt@PCIFN{within(5s)};
334*10124SStephen.Hanson@Sun.COMevent ereport.io.device.fw_mismatch@PCIFN{within(5s)};
3357197Sstephhevent ereport.io.service.lost@PCIFN{within(5s)};
3367197Sstephhevent ereport.io.service.degraded@PCIFN{within(5s)};
3377197Sstephhevent ereport.io.service.unaffected@PCIFN{within(5s)};
3387197Sstephhevent ereport.io.service.restored@PCIFN{within(30s)};
3390Sstevel@tonic-gate
3401865Sdilpreetprop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)->
3411865Sdilpreet    error.io.pci.nr-pw-u@PCI_NOT_HB,
3421865Sdilpreet    error.io.pci.nr-drw-u@PCI_NOT_HB,
3431865Sdilpreet    error.io.pci.retry-to-u@PCI_NOT_HB;
3440Sstevel@tonic-gate
3457197Sstephhprop fault.io.pci.device-interr-corr@pcibus/pcidev[fromdev]/pcifn (0)->
3467197Sstephh    error.io.device.nf-device@PCI_NOT_HB;
3477197Sstephh
3487197Sstephhprop fault.io.pci.device-interr-unaf@pcibus/pcidev[fromdev]/pcifn (0)->
3497197Sstephh    error.io.pci.nf-dpe-u@PCI_NOT_HB;
3507197Sstephh
3517197Sstephhprop fault.io.pci.device-interr-deg@pcibus/pcidev[fromdev]/pcifn (0)->
3527197Sstephh    error.io.device.deg-device@PCI_NOT_HB,
3537197Sstephh    error.io.pci.deg-dpe-u@PCI_NOT_HB;
3547197Sstephh
3551865Sdilpreetprop fault.io.pci.device-interr@pcibus/pcidev[fromdev]/pcifn (0)->
3561865Sdilpreet    error.io.pci.ta-pw-u@PCI_NOT_HB,
3571865Sdilpreet    error.io.pci.ta-drw-u@PCI_NOT_HB,
3581865Sdilpreet    error.io.pci.serr-u@PCI_NOT_HB,
3591865Sdilpreet    error.io.pci.ape-u@PCI_NOT_HB,
3601865Sdilpreet    error.io.pci.f-dpe-u@PCI_NOT_HB,
3611865Sdilpreet    error.io.device.f-device@PCI_NOT_HB,
3621865Sdilpreet    error.io.pcix.scpe-u@PCI_NOT_HB,
3631865Sdilpreet    error.io.pcix.tx-oor@PCI_NOT_HB,
3641865Sdilpreet    error.io.pcix.rx-unex-sc@PCI_NOT_HB;
3650Sstevel@tonic-gate
366*10124SStephen.Hanson@Sun.COMprop fault.io.pci.fw_corrupt@PCIFN {IS_LEAF} (1)->
367*10124SStephen.Hanson@Sun.COM    ereport.io.device.fw_corrupt@PCIFN;
368*10124SStephen.Hanson@Sun.COM
369*10124SStephen.Hanson@Sun.COMprop fault.io.pci.fw_corrupt@PCIFN {IS_LEAF} (0)->
370*10124SStephen.Hanson@Sun.COM    ereport.io.service.lost@PCIFN,
371*10124SStephen.Hanson@Sun.COM    ereport.io.service.degraded@PCIFN;
372*10124SStephen.Hanson@Sun.COM
373*10124SStephen.Hanson@Sun.COMprop fault.io.pci.fw_mismatch@PCIFN {IS_LEAF} (1)->
374*10124SStephen.Hanson@Sun.COM    ereport.io.device.fw_mismatch@PCIFN;
375*10124SStephen.Hanson@Sun.COM
376*10124SStephen.Hanson@Sun.COMprop fault.io.pci.fw_mismatch@PCIFN {IS_LEAF} (0)->
377*10124SStephen.Hanson@Sun.COM    ereport.io.service.lost@PCIFN,
378*10124SStephen.Hanson@Sun.COM    ereport.io.service.degraded@PCIFN;
379*10124SStephen.Hanson@Sun.COM
3801865Sdilpreetprop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn {FD_IS_LEAF} (0)->
3811865Sdilpreet    error.io.pci.badreq-drw-u@PCI_NOT_HB,
3821865Sdilpreet    error.io.pci.badreq-pw-u@PCI_NOT_HB;
3830Sstevel@tonic-gate
3847197Sstephhprop error.io.pcix.tx-oor@PCIFN (1)->
3857197Sstephh    ereport.io.pcix.oor@PCIFN;
3860Sstevel@tonic-gate
3871865Sdilpreetprop error.io.pcix.rx-unex-sc@pcibus/pcidev[fromdev]/pcifn (1)->
3881865Sdilpreet    ereport.io.pcix.unex-sc@pcibus/pcidev<todev>/pcifn<> {fromdev != todev};
3891865Sdilpreet
3907197Sstephhprop error.io.pci.f-dpe-u@PCIFN (1)->
3917197Sstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
3927197Sstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
3937197Sstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
3941865Sdilpreet
3957197Sstephhprop error.io.pci.f-dpe-u@PCIFN (1)->
3967197Sstephh    error.io.pci.f-source-dpdata-u@PCIFN;
3971865Sdilpreet
3987197Sstephhprop error.io.pci.f-source-dpdata-u@PCIFN (1)->
3997197Sstephh    error.io.pci.f-source-dpdata-u@PCIFN/PCIFNHZ;
4007197Sstephh
4017197Sstephhprop error.io.pci.f-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
4027197Sstephh    error.io.pci.source-dpdata-u@PCIFN;
4031865Sdilpreet
4047197Sstephhprop error.io.pci.f-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (0)->
4057197Sstephh    ereport.io.service.lost@PCIFN;
4067197Sstephh
4077197Sstephhprop error.io.pci.deg-dpe-u@PCIFN (1)->
4087197Sstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
4097197Sstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
4107197Sstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
4111865Sdilpreet
4127197Sstephhprop error.io.pci.deg-dpe-u@PCIFN (1)->
4137197Sstephh    error.io.pci.deg-source-dpdata-u@PCIFN;
4140Sstevel@tonic-gate
4157197Sstephhprop error.io.pci.deg-source-dpdata-u@PCIFN (1)->
4167197Sstephh    error.io.pci.deg-source-dpdata-u@PCIFN/PCIFNHZ;
4177197Sstephh
4187197Sstephhprop error.io.pci.deg-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
4197197Sstephh    error.io.pci.source-dpdata-u@PCIFN;
4201865Sdilpreet
4217197Sstephhprop error.io.pci.deg-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
4227197Sstephh    ereport.io.service.degraded@PCIFN;
4237197Sstephh
4247197Sstephhprop error.io.pci.nf-dpe-u@PCIFN (1)->
4257197Sstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
4267197Sstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
4277197Sstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
4281865Sdilpreet
4297197Sstephhprop error.io.pci.nf-dpe-u@PCIFN (1)->
4307197Sstephh    error.io.pci.nf-source-dpdata-u@PCIFN;
4311865Sdilpreet
4327197Sstephhprop error.io.pci.nf-source-dpdata-u@PCIFN (1)->
4337197Sstephh    error.io.pci.nf-source-dpdata-u@PCIFN/PCIFNHZ;
4347197Sstephh
4357197Sstephhprop error.io.pci.nf-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
4367197Sstephh    error.io.pci.source-dpdata-u@PCIFN;
4371865Sdilpreet
4387197Sstephhprop error.io.pci.nf-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
4397197Sstephh    ereport.io.service.unaffected@PCIFN,
4407197Sstephh    error.io.service.restored@PCIFN;
4417197Sstephh
4427197Sstephhprop error.io.pci.flt-dpdata-pw-u@PCIFN (1)->
4437197Sstephh    error.io.pci.dpdata-pw-u@PCIFN;
4441865Sdilpreet
4457197Sstephhprop error.io.pci.flt-dpdata-pw-u@PCIFN { IS_BDG } (1)->
4467197Sstephh    error.io.pci.serr-u@PCIFN;
4471865Sdilpreet
4487197Sstephhprop error.io.pci.flt-dpdata-dw-u@PCIFN (2)->
4497197Sstephh    error.io.pci.perr-d@PCIFN,
4507197Sstephh    error.io.pci.dpdata-dw-u@PCIFN;
4517197Sstephh
4527197Sstephhprop error.io.pci.flt-dpdata-dr-u@PCIFN (2)->
4537197Sstephh    error.io.pci.dpdata-dr-u@PCIFN,
4547197Sstephh    error.io.pci.target-mdpe-d@PCIFN;
4550Sstevel@tonic-gate
4560Sstevel@tonic-gate/*
4571865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4581865Sdilpreet * A faulty pci-pci bridge may also cause
4591865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4601865Sdilpreet *  - nr-pw-d:		the device not to respond to a valid upstream request
4611865Sdilpreet *  - nr-drw-d:		the device not to respond to a valid upstream request
4621865Sdilpreet *  - ta-pw-d:		the device responds with a ta to a valid upstream
4631865Sdilpreet *			request
4641865Sdilpreet *  - ta-drw-d:		the device responds with a ta to a valid upstream
4651865Sdilpreet *			request
4661865Sdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission.
4671865Sdilpreet *  - scpe-d:	split completion gets corrupted during downstream transmission.
4681865Sdilpreet *  - dpe-d:	data/parity to get corrupted during downstream transmission.
4691865Sdilpreet *  - retry-to-d:	the device to exceed the set timeout for a delayed
4701865Sdilpreet *			transaction retry.
4710Sstevel@tonic-gate */
4720Sstevel@tonic-gate
4737197Sstephhevent error.io.pci.ape-d@PCIFN/PCIFN;
4747197Sstephhevent error.io.pci.f-dpe-d@PCIFN/PCIFN;
4757197Sstephhevent error.io.pci.deg-dpe-d@PCIFN/PCIFN;
4767197Sstephhevent error.io.pci.nf-dpe-d@PCIFN/PCIFN;
4777197Sstephhevent error.io.pci.retry-to-d@PCIFN/PCIFN;
4787197Sstephhevent error.io.pci.nr-pw-d@PCIFN/PCIFN;
4797197Sstephhevent error.io.pci.nr-drw-d@PCIFN/PCIFN;
4807197Sstephhevent error.io.pci.ta-pw-d@PCIFN/PCIFN;
4817197Sstephhevent error.io.pci.ta-drw-d@PCIFN/PCIFN;
4827197Sstephhevent error.io.pcix.scpe-d@PCIFN/PCIFN;
4830Sstevel@tonic-gate
4847197Sstephhprop fault.io.pci.device-noresp@PCIFN (0)->
4857197Sstephh    error.io.pci.nr-pw-d@PCIFN/PCIFN,
4867197Sstephh    error.io.pci.nr-drw-d@PCIFN/PCIFN,
4877197Sstephh    error.io.pci.retry-to-d@PCIFN/PCIFN;
4887197Sstephh
4897197Sstephhprop fault.io.pci.device-interr-unaf@PCIFN (0)->
4907197Sstephh    error.io.pci.nf-dpe-d@PCIFN/PCIFN;
4910Sstevel@tonic-gate
4927197Sstephhprop fault.io.pci.device-interr-deg@PCIFN (0)->
4937197Sstephh    error.io.pci.deg-dpe-d@PCIFN/PCIFN;
4947197Sstephh
4957197Sstephhprop fault.io.pci.device-interr@PCIFN (0)->
4967197Sstephh    error.io.pci.ta-pw-d@PCIFN/PCIFN,
4977197Sstephh    error.io.pci.ta-drw-d@PCIFN/PCIFN,
4987197Sstephh    error.io.pci.ape-d@PCIFN/PCIFN,
4997197Sstephh    error.io.pcix.scpe-d@PCIFN/PCIFN,
5007197Sstephh    error.io.pci.f-dpe-d@PCIFN/PCIFN;
5010Sstevel@tonic-gate
5020Sstevel@tonic-gate/*
5031865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5041865Sdilpreet * A faulty PCI bus may cause:
5051865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5061865Sdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission.
5071865Sdilpreet *  - scpe-d:	split completion gets corrupted during downstream transmission.
5081865Sdilpreet *  - dpe-d:	data/parity to get corrupted during downstream transmission.
5091865Sdilpreet *  - ape-u:	address/parity to get corrupted during upstream transmission.
5101865Sdilpreet *  - dpe-u:	data/parity to get corrupted during read upstream transmission.
5111865Sdilpreet *  - scpe-u:	split completion to get corrupted during upstream transmission.
5120Sstevel@tonic-gate */
5130Sstevel@tonic-gate
5147197Sstephhevent fault.io.pci.bus-linkerr-unaf@pcibus,
5157197Sstephh	engine=serd.io.pci.nf-dpe-bus@pcibus, FITrate=PCI_BUS_FIT;
5167197Sstephh
5177197Sstephhevent fault.io.pci.bus-linkerr-deg@pcibus, FITrate=PCI_BUS_FIT, retire=0;
5187197Sstephh
5197197Sstephhevent fault.io.pci.bus-linkerr@pcibus, FITrate=PCI_BUS_FIT;
5200Sstevel@tonic-gate
5217197Sstephhprop fault.io.pci.bus-linkerr-unaf@pcibus (0)->
5227197Sstephh    error.io.pci.nf-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
5237197Sstephh    error.io.pci.nf-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32};
5247197Sstephh
5257197Sstephhprop fault.io.pci.bus-linkerr-deg@pcibus (0)->
5267197Sstephh    error.io.pci.deg-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
5277197Sstephh    error.io.pci.deg-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32};
5280Sstevel@tonic-gate
5291865Sdilpreetprop fault.io.pci.bus-linkerr@pcibus (0)->
5301865Sdilpreet    error.io.pci.ape-d@pcibus/pcidev<todev>/pcifn { todev != 32},
5311865Sdilpreet    error.io.pci.f-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
5321865Sdilpreet    error.io.pci.ape-u@pcibus/pcidev<todev>/pcifn { todev != 32},
5331865Sdilpreet    error.io.pci.f-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32},
5341865Sdilpreet    error.io.pcix.scpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
5351865Sdilpreet    error.io.pcix.scpe-u@pcibus/pcidev<todev>/pcifn { todev != 32},
5361865Sdilpreet    error.io.pcix.tx-oor@pcibus/pcidev<todev>/pcifn { todev != 32},
5371865Sdilpreet    error.io.pcix.rx-unex-sc@pcibus/pcidev<todev>/pcifn { todev != 32};
5380Sstevel@tonic-gate
5390Sstevel@tonic-gate/*
5401865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5411865Sdilpreet * recursive rules for pci-pci bridges
5421865Sdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5430Sstevel@tonic-gate */
5440Sstevel@tonic-gate
5457197Sstephhevent error.io.pci.serr-u@PCIFN/PCIFN;
5467197Sstephhevent error.io.pci.perr-dw-u@PCIFN/PCIFN;
5477197Sstephhevent error.io.pci.perr-pw-u@PCIFN/PCIFN;
5487197Sstephhevent error.io.pci.perr-d@PCIFN/PCIFN;
5497197Sstephhevent error.io.pci.dpdata-pw-u@PCIFN/PCIFN;
5507197Sstephhevent error.io.pci.dpdata-dw-u@PCIFN/PCIFN;
5517197Sstephhevent error.io.pci.dpdata-dr-u@PCIFN/PCIFN;
5527197Sstephhevent error.io.pci.dpdata-pw-fwd-d@PCIFN;
5537197Sstephhevent error.io.pci.dpdata-pw-fwd-d@PCIFN/PCIFN;
5547197Sstephhevent error.io.pci.dpdata-dw-fwd-d@PCIFN;
5557197Sstephhevent error.io.pci.dpdata-dw-fwd-d@PCIFN/PCIFN;
5567197Sstephhevent error.io.pci.dpdata-dr-fwd-d@PCIFN;
5577197Sstephhevent error.io.pci.dpdata-dr-fwd-d@PCIFN/PCIFN;
5587197Sstephhevent error.io.pci.source-perr-u@PCIFN;
5597197Sstephhevent error.io.pci.leaf-ape-d@PCIFN;
5607197Sstephhevent error.io.pci.ape-u@PCIFN/PCIFN;
5617197Sstephhevent error.io.pci.source-ape-u@PCIFN;
5627197Sstephhevent error.io.pci.badreq-pw-d@PCIFN/PCIFN;
5637197Sstephhevent error.io.pci.badreq-drw-d@PCIFN/PCIFN;
5647197Sstephhevent error.io.pci.badreq-pw-u@PCIFN/PCIFN;
5657197Sstephhevent error.io.pci.badreq-drw-u@PCIFN/PCIFN;
5667197Sstephhevent error.io.pci.ta-d@PCIFN;
5677197Sstephhevent error.io.pci.ta-d@PCIFN/PCIFN;
5687197Sstephhevent error.io.pci.ta-u@PCIFN/PCIFN;
5697197Sstephhevent error.io.pci.target-rta-d@PCIFN;
5707197Sstephhevent error.io.pci.target-ma-d@PCIFN;
5717197Sstephhevent error.io.pci.nr-pw-u@PCIFN/PCIFN;
5727197Sstephhevent error.io.pci.ta-pw-u@PCIFN/PCIFN;
5737197Sstephhevent error.io.pci.retry-to-u@PCIFN/PCIFN;
5747197Sstephhevent error.io.pcix.scpe-u@PCIFN/PCIFN;
5757197Sstephhevent error.io.pcix.source-scpe-u@PCIFN;
5767197Sstephhevent error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN;
5777197Sstephhevent error.io.pcix.spl-comp-ta-u@PCIFN/PCIFN;
5787197Sstephhevent error.io.pci.ma-u@PCIFN/PCIFN;
5790Sstevel@tonic-gate
5807197Sstephhevent ereport.io.pci.sec-ma@PCIFN{within(5s)};
5817197Sstephhevent ereport.io.pci.sec-sta@PCIFN{within(5s)};
5827197Sstephhevent ereport.io.pci.sec-rta@PCIFN{within(5s)};
5837197Sstephhevent ereport.io.pci.sec-mdpe@PCIFN{within(5s)};
5847197Sstephhevent ereport.io.pci.sec-dpe@PCIFN{within(5s)};
5857197Sstephhevent ereport.io.pci.sec-rserr@PCIFN{within(5s)};
5867197Sstephhevent ereport.io.pci.dto@PCIFN{within(5s)};
5877197Sstephhevent ereport.io.pcix.sec-spl-dis@PCIFN{within(5s)};
5887197Sstephhevent ereport.io.pcix.spl-dis@PCIFN{within(5s)};
5891865Sdilpreet
5901865Sdilpreet/*
5911865Sdilpreet * SERR# can propagate upstream and may be seen by other devices on the bus
5921865Sdilpreet */
5931865Sdilpreetprop error.io.pci.serr-u@pcibus/pcidev[fromdev]/pcifn (0)->
5941865Sdilpreet    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {todev!=fromdev};
5951865Sdilpreet
5967197Sstephhprop error.io.pci.serr-u@PCIFN { IS_BDG } (1)->
5977197Sstephh    ereport.io.pci.sserr@PCIFN;
5981865Sdilpreet
5997197Sstephhprop error.io.pci.serr-u@PCIFN/PCIFN (2)->
6007197Sstephh    ereport.io.pci.sec-rserr@PCIFN,
6017197Sstephh    error.io.pci.serr-u@PCIFN;
6020Sstevel@tonic-gate
6031865Sdilpreet/*
6041865Sdilpreet * PERR# can propagate upstream for delayed writes. For posted writes
6051865Sdilpreet * it turns into an SERR#.
6061865Sdilpreet */
6077197Sstephhprop error.io.pci.perr-dw-u@PCIFN/PCIFN (2)->
6087197Sstephh    ereport.io.pci.sec-mdpe@PCIFN,
6097197Sstephh    error.io.pci.perr-dw-u@PCIFN;
6101865Sdilpreet
6117197Sstephhprop error.io.pci.perr-pw-u@PCIFN/PCIFN (2)->
6127197Sstephh    ereport.io.pci.sec-mdpe@PCIFN,
6137197Sstephh    error.io.pci.serr-u@PCIFN;
6141865Sdilpreet
6151865Sdilpreet/*
6161865Sdilpreet * PERR# can propagate downstream (only for downstream dw parity error)
6171865Sdilpreet */
6187197Sstephhprop error.io.pci.perr-d@PCIFN { IS_LEAF } (0)->
6197197Sstephh    ereport.io.pci.mdpe@PCIFN;
6201865Sdilpreet
6217197Sstephhprop error.io.pci.perr-d@PCIFN { IS_BDG } (1)->
6227197Sstephh    ereport.io.pci.mdpe@PCIFN;
6231865Sdilpreet
6247197Sstephhprop error.io.pci.perr-d@PCIFN (1)->
6257197Sstephh    error.io.pci.perr-d@PCIFN/PCIFNHZ;
6260Sstevel@tonic-gate
6271865Sdilpreet/*
6281865Sdilpreet * downstream target ereports are for any descendant device
6291865Sdilpreet *
6301865Sdilpreet * A hostbridge driver may generate "target-" ereports when knowledge of the
6311865Sdilpreet * physical address associated with a fault allows the target device to be
6321865Sdilpreet * determined. This is not a requirement of the Diagnosis Engine, but can be
6331865Sdilpreet * valuable when available.
6341865Sdilpreet */
6357197Sstephhprop error.io.pci.target-mdpe-d@PCIFN (0)->
6367197Sstephh    ereport.io.pci.target-mdpe@PCIFN;
6371865Sdilpreet
6387197Sstephhprop error.io.pci.target-mdpe-d@PCIFN (1)->
6397197Sstephh    error.io.pci.target-mdpe-d@PCIFN/PCIFNHZ;
6401865Sdilpreet
6417197Sstephhprop error.io.pci.target-rta-d@PCIFN (0)->
6427197Sstephh    ereport.io.pci.target-rta@PCIFN;
6431865Sdilpreet
6447197Sstephhprop error.io.pci.target-rta-d@PCIFN (1)->
6457197Sstephh    error.io.pci.target-rta-d@PCIFN/PCIFNHZ;
6461865Sdilpreet
6477197Sstephhprop error.io.pci.target-ma-d@PCIFN (0)->
6487197Sstephh    ereport.io.pci.target-ma@PCIFN;
6491865Sdilpreet
6507197Sstephhprop error.io.pci.target-ma-d@PCIFN (1)->
6517197Sstephh    error.io.pci.target-ma-d@PCIFN/PCIFNHZ;
6521865Sdilpreet
6531865Sdilpreet/*
6541865Sdilpreet * target aborts propagate upstream
6551865Sdilpreet */
6567197Sstephhprop error.io.pci.ta-u@PCIFN { IS_BDG } (1)->
6577197Sstephh    ereport.io.pci.sta@PCIFN;
6581865Sdilpreet
6597197Sstephhprop error.io.pci.ta-u@PCIFN { IS_LEAF } (0)->
6607197Sstephh    ereport.io.pci.sta@PCIFN;
6611865Sdilpreet
6627197Sstephhprop error.io.pci.ta-u@PCIFN/PCIFN (2)->
6637197Sstephh    ereport.io.pci.sec-rta@PCIFN,
6647197Sstephh    error.io.pci.ta-u@PCIFN;
6650Sstevel@tonic-gate
6661865Sdilpreet/*
6671865Sdilpreet * bad data (ie invalid but not an ape or dpe) can propagate downstream,
6681865Sdilpreet * and at some point may result in a target or master abort
6691865Sdilpreet */
6707197Sstephhprop error.io.pci.badreq-pw-d@PCIFN (1)->
6717197Sstephh    error.io.pci.badreq-pw-d@PCIFN/PCIFNHZ,
6727197Sstephh    error.io.pci.nr-pw-u@PCIFN,
6737197Sstephh    error.io.pci.ta-pw-u@PCIFN;
6741865Sdilpreet
6757197Sstephhprop error.io.pci.badreq-pw-d@PCIFN { IS_LEAF } (0)->
6767197Sstephh    error.io.pci.nr-pw-u@PCIFN,
6777197Sstephh    error.io.pci.ta-pw-u@PCIFN;
6781865Sdilpreet
6797197Sstephhprop error.io.pci.badreq-drw-d@PCIFN (1)->
6807197Sstephh    error.io.pci.badreq-drw-d@PCIFN/PCIFNHZ,
6817197Sstephh    error.io.pci.nr-drw-u@PCIFN,
6827197Sstephh    error.io.pci.ta-drw-u@PCIFN;
6831865Sdilpreet
6847197Sstephhprop error.io.pci.badreq-drw-d@PCIFN { IS_LEAF } (0)->
6857197Sstephh    error.io.pci.nr-drw-u@PCIFN,
6867197Sstephh    error.io.pci.ta-drw-u@PCIFN;
6871865Sdilpreet
6887197Sstephhprop error.io.pci.nr-pw-u@PCIFN/PCIFN (2)->
6897197Sstephh    ereport.io.pci.sec-ma@PCIFN,
6907197Sstephh    error.io.pci.serr-u@PCIFN;
6911865Sdilpreet
6927197Sstephhprop error.io.pci.ta-pw-u@PCIFN { IS_LEAF } (0)->
6937197Sstephh    ereport.io.pci.sta@PCIFN;
6941865Sdilpreet
6957197Sstephhprop error.io.pci.ta-pw-u@PCIFN { IS_BDG } (1)->
6967197Sstephh    ereport.io.pci.sta@PCIFN;
6971865Sdilpreet
6987197Sstephhprop error.io.pci.ta-pw-u@PCIFN/PCIFN (2)->
6997197Sstephh    ereport.io.pci.sec-rta@PCIFN,
7007197Sstephh    error.io.pci.serr-u@PCIFN;
7011865Sdilpreet
7027197Sstephhprop error.io.pci.nr-drw-u@PCIFN (1)->
7037197Sstephh    error.io.pci.ma-u@PCIFN;
7041865Sdilpreet
7057197Sstephhprop error.io.pci.nr-drw-u@PCIFN (1)->
7067197Sstephh    error.io.pci.target-rta-d@PCIFN,
7077197Sstephh    error.io.pci.target-ma-d@PCIFN;
7081865Sdilpreet
7097197Sstephhprop error.io.pci.ma-u@PCIFN/PCIFN (1)->
7107197Sstephh    ereport.io.pci.sec-ma@PCIFN;
7111865Sdilpreet
7127197Sstephhprop error.io.pci.ma-u@PCIFN/PCIFN (1)->
7137197Sstephh    error.io.pci.ma-u@PCIFN,
7147197Sstephh    error.io.pci.ta-u@PCIFN;
7151865Sdilpreet
7167197Sstephhprop error.io.pci.ta-drw-u@PCIFN (1)->
7177197Sstephh    error.io.pci.ta-u@PCIFN;
7181865Sdilpreet
7197197Sstephhprop error.io.pci.ta-drw-u@PCIFN (1)->
7207197Sstephh    error.io.pci.target-rta-d@PCIFN;
7211865Sdilpreet
7221865Sdilpreet/*
7231865Sdilpreet * bad data (ie invalid but not an ape or dpe) can propagate upstream,
7241865Sdilpreet * and at some point may result in a target or master abort
7251865Sdilpreet */
7267197Sstephhprop error.io.pci.badreq-pw-u@PCIFN/PCIFN (1)->
7277197Sstephh    error.io.pci.badreq-pw-u@PCIFN,
7287197Sstephh    error.io.pci.nr-pw-d@PCIFN/PCIFN,
7297197Sstephh    error.io.pci.ta-pw-d@PCIFN/PCIFN;
7300Sstevel@tonic-gate
7317197Sstephhprop error.io.pci.badreq-pw-u@PCIFN (0)->
7327197Sstephh    error.io.pci.nr-pw-d@PCIFN,
7337197Sstephh    error.io.pci.ta-pw-d@PCIFN;
7341865Sdilpreet
7357197Sstephhprop error.io.pci.nr-pw-d@PCIFN { IS_LEAF } (0)->
7367197Sstephh    ereport.io.pci.ma@PCIFN;
7371865Sdilpreet
7387197Sstephhprop error.io.pci.nr-pw-d@PCIFN { IS_BDG } (2)->
7397197Sstephh    ereport.io.pci.ma@PCIFN,
7407197Sstephh    error.io.pci.serr-u@PCIFN;
7411865Sdilpreet
7427197Sstephhprop error.io.pci.ta-pw-d@PCIFN/PCIFN (1)->
7437197Sstephh    ereport.io.pci.sec-sta@PCIFN;
7441865Sdilpreet
7457197Sstephhprop error.io.pci.ta-pw-d@PCIFN { IS_LEAF } (0)->
7467197Sstephh    ereport.io.pci.rta@PCIFN;
7471865Sdilpreet
7487197Sstephhprop error.io.pci.ta-pw-d@PCIFN { IS_BDG } (2)->
7497197Sstephh    ereport.io.pci.rta@PCIFN,
7507197Sstephh    error.io.pci.serr-u@PCIFN;
7511865Sdilpreet
7521865Sdilpreet/*
7531865Sdilpreet * for delayed writes we treat upstream badreq specially as rta always
7541865Sdilpreet * propagates back downstream to the leaf
7551865Sdilpreet */
7567197Sstephhprop error.io.pci.badreq-drw-u@PCIFN { IS_LEAF } (0)->
7577197Sstephh    ereport.io.pci.rta@PCIFN,
7587197Sstephh    ereport.io.pci.ma@PCIFN;
7591865Sdilpreet
7607197Sstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (1)->
7617197Sstephh    ereport.io.pci.ma@PCIFN,
7627197Sstephh    ereport.io.pci.rta@PCIFN;
7631865Sdilpreet
7647197Sstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (0)->
7657197Sstephh    ereport.io.pci.sec-sta@PCIFN;
7661865Sdilpreet
7677197Sstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (0)->
7687197Sstephh    error.io.pci.badreq-drw-u@PCIFN;
7691865Sdilpreet
7707197Sstephhprop error.io.pci.nr-drw-d@PCIFN { IS_LEAF } (0)->
7717197Sstephh    ereport.io.pci.ma@PCIFN;
7721865Sdilpreet
7737197Sstephhprop error.io.pci.nr-drw-d@PCIFN { IS_BDG } (1)->
7747197Sstephh    ereport.io.pci.ma@PCIFN;
7751865Sdilpreet
7767197Sstephhprop error.io.pci.nr-drw-d@PCIFN { IS_BDG } (0)->
7777197Sstephh    ereport.io.pci.sec-sta@PCIFN;
7781865Sdilpreet
7797197Sstephhprop error.io.pci.nr-drw-d@PCIFN (1)->
7807197Sstephh    error.io.pci.ta-d@PCIFN/PCIFNHZ,
7817197Sstephh    error.io.pci.nr-drw-d@PCIFN/PCIFNHZ;
7821865Sdilpreet
7837197Sstephhprop error.io.pci.ta-drw-d@PCIFN/PCIFN (1)->
7847197Sstephh    ereport.io.pci.sec-sta@PCIFN;
7851865Sdilpreet
7867197Sstephhprop error.io.pci.ta-drw-d@PCIFN (1)->
7877197Sstephh    error.io.pci.ta-d@PCIFN;
7881865Sdilpreet
7897197Sstephhprop error.io.pci.ta-d@PCIFN { IS_LEAF } (0)->
7907197Sstephh    ereport.io.pci.rta@PCIFN;
7911865Sdilpreet
7927197Sstephhprop error.io.pci.ta-d@PCIFN { IS_BDG } (2)->
7937197Sstephh    ereport.io.pci.sec-sta@PCIFN,
7947197Sstephh    ereport.io.pci.rta@PCIFN;
7951865Sdilpreet
7967197Sstephhprop error.io.pci.ta-d@PCIFN (1)->
7977197Sstephh    error.io.pci.ta-d@PCIFN/PCIFNHZ;
7980Sstevel@tonic-gate
7990Sstevel@tonic-gate/*
8001865Sdilpreet * Request with address parity error must be detected by parent device
8011865Sdilpreet * and can optionally result in a target or master abort.
8021865Sdilpreet * It may also be detected by sibling devices on a bus
8031865Sdilpreet */
8047197Sstephhprop error.io.pci.ape-u@PCIFN/PCIFN (3)->
8057197Sstephh    ereport.io.pci.sec-dpe@PCIFN,
8067197Sstephh    ereport.io.pci.sec-rserr@PCIFN,
8077197Sstephh    error.io.pci.serr-u@PCIFN;
8081865Sdilpreet
8097197Sstephhprop error.io.pci.ape-u@PCIFN (0)->
8107197Sstephh    error.io.pci.nr-drw-d@PCIFN,
8117197Sstephh    error.io.pci.ta-drw-d@PCIFN,
8127197Sstephh    error.io.pci.nr-pw-d@PCIFN,
8137197Sstephh    error.io.pci.ta-pw-d@PCIFN;
8141865Sdilpreet
8157197Sstephhprop error.io.pci.ape-u@PCIFN (0)->
8167197Sstephh    ereport.io.pci.mdpe@PCIFN;
8171865Sdilpreet
8181865Sdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)->
8191865Sdilpreet    ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<> {fromdev != todev},
8201865Sdilpreet    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {fromdev != todev};
8211865Sdilpreet
8227197Sstephhprop error.io.pci.ape-u@PCIFN (1)->
8237197Sstephh    error.io.pci.source-ape-u@PCIFN;
8241865Sdilpreet
8251865Sdilpreet/*
8261865Sdilpreet * If the bridge sees an upstream split completion error (pci-x only) it could
8271865Sdilpreet * result in a number of things
8281865Sdilpreet * - for various faults in the split completion (eg address parity error)
8291865Sdilpreet *   we will respond with a target abort (which the child device will treat
8301865Sdilpreet *   as a split completion ta)
8311865Sdilpreet * - for other faults we can't tell who send the split completion and so
8321865Sdilpreet *   just drop the request (which the child device sees as a split
8331865Sdilpreet *   completion ma)
8341865Sdilpreet */
8357197Sstephhprop error.io.pcix.scpe-u@PCIFN/PCIFN (0)->
8367197Sstephh    ereport.io.pci.sec-sta@PCIFN,
8377197Sstephh    ereport.io.pci.sec-dpe@PCIFN,
8387197Sstephh    ereport.io.pci.sec-rserr@PCIFN,
8397197Sstephh    error.io.pci.serr-u@PCIFN;
8401865Sdilpreet
8417197Sstephhprop error.io.pcix.scpe-u@PCIFN (1)->
8427197Sstephh    error.io.pcix.spl-comp-ma-d@PCIFN,
8437197Sstephh    error.io.pcix.spl-comp-ta-d@PCIFN;
8441865Sdilpreet
8457197Sstephhprop error.io.pcix.spl-comp-ma-d@PCIFN (1)->
8467197Sstephh    error.io.pci.serr-u@PCIFN;
8471865Sdilpreet
8487197Sstephhprop error.io.pcix.spl-comp-ma-d@PCIFN { IS_LEAF } (0)->
8497197Sstephh    ereport.io.pci.sserr@PCIFN,
8507197Sstephh    ereport.io.pcix.spl-dis@PCIFN;
8511865Sdilpreet
8527197Sstephhprop error.io.pcix.spl-comp-ma-d@PCIFN { IS_BDG } (2)->
8537197Sstephh    ereport.io.pcix.spl-dis@PCIFN,
8547197Sstephh    ereport.io.pci.ma@PCIFN;
8551865Sdilpreet
8567197Sstephhprop error.io.pcix.spl-comp-ta-d@PCIFN (1)->
8577197Sstephh    error.io.pci.serr-u@PCIFN;
8581865Sdilpreet
8597197Sstephhprop error.io.pcix.spl-comp-ta-d@PCIFN { IS_LEAF } (0)->
8607197Sstephh    ereport.io.pci.sserr@PCIFN,
8617197Sstephh    ereport.io.pcix.spl-dis@PCIFN;
8621865Sdilpreet
8637197Sstephhprop error.io.pcix.spl-comp-ta-d@PCIFN { IS_BDG } (2)->
8647197Sstephh    ereport.io.pcix.spl-dis@PCIFN,
8657197Sstephh    ereport.io.pci.rta@PCIFN;
8661865Sdilpreet
8677197Sstephhprop error.io.pcix.scpe-u@PCIFN (1)->
8687197Sstephh    error.io.pcix.source-scpe-u@PCIFN;
8691865Sdilpreet
8701865Sdilpreet/*
8711865Sdilpreet * request with address parity error must be detected by child device
8721865Sdilpreet * and can optionally result in a target or master abort.
8731865Sdilpreet */
8747197Sstephhprop error.io.pci.ape-d@PCIFN (1)->
8757197Sstephh    error.io.pci.serr-u@PCIFN;
8761865Sdilpreet
8777197Sstephhprop error.io.pci.ape-d@PCIFN { IS_LEAF } (0)->
8787197Sstephh    error.io.pci.leaf-ape-d@PCIFN;
8791865Sdilpreet
8807197Sstephhprop error.io.pci.leaf-ape-d@PCIFN { IS_LEAF } (2)->
8817197Sstephh    ereport.io.pci.sserr@PCIFN,
8827197Sstephh    ereport.io.pci.dpe@PCIFN;
8831865Sdilpreet
8847197Sstephhprop error.io.pci.ape-d@PCIFN { IS_BDG } (1)->
8857197Sstephh    ereport.io.pci.dpe@PCIFN;
8861865Sdilpreet
8877197Sstephhprop error.io.pci.ape-d@PCIFN (0)->
8887197Sstephh    error.io.pci.ta-pw-u@PCIFN,
8897197Sstephh    error.io.pci.ta-drw-u@PCIFN,
8907197Sstephh    error.io.pci.nr-pw-u@PCIFN,
8917197Sstephh    error.io.pci.nr-drw-u@PCIFN;
8921865Sdilpreet
8931865Sdilpreet/*
8941865Sdilpreet * If the device sees a downstream split completion error (pci-x only) it could
8951865Sdilpreet * result in a number of things
8961865Sdilpreet * - for various faults in the split completion (eg address parity error)
8971865Sdilpreet *   we will respond with a target abort (which the parent bridge will treat
8981865Sdilpreet *   as a split completion ta)
8991865Sdilpreet * - for other faults we can't tell who send the split completion and so
9001865Sdilpreet *   just drop the request (which the parent bridge sees as a split
9011865Sdilpreet *   completion ma)
9021865Sdilpreet */
9037197Sstephhprop error.io.pcix.scpe-d@PCIFN (0)->
9047197Sstephh    ereport.io.pci.sta@PCIFN,
9057197Sstephh    ereport.io.pci.dpe@PCIFN,
9067197Sstephh    ereport.io.pci.sserr@PCIFN,
9077197Sstephh    error.io.pci.serr-u@PCIFN;
9081865Sdilpreet
9097197Sstephhprop error.io.pcix.scpe-d@PCIFN (1)->
9107197Sstephh    error.io.pcix.spl-comp-ma-u@PCIFN,
9117197Sstephh    error.io.pcix.spl-comp-ta-u@PCIFN;
9121865Sdilpreet
9137197Sstephhprop error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN (2)->
9147197Sstephh    ereport.io.pcix.sec-spl-dis@PCIFN,
9157197Sstephh    error.io.pci.serr-u@PCIFN;
9163159Sstephh
9177197Sstephhprop error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN (0)->
9187197Sstephh    ereport.io.pci.sec-ma@PCIFN;
9191865Sdilpreet
9207197Sstephhprop error.io.pcix.spl-comp-ta-u@PCIFN/PCIFN (3)->
9217197Sstephh    ereport.io.pcix.sec-spl-dis@PCIFN,
9227197Sstephh    error.io.pci.serr-u@PCIFN,
9237197Sstephh    ereport.io.pci.sec-rta@PCIFN;
9241865Sdilpreet
9251865Sdilpreet/*
9261865Sdilpreet * request with data parity error can propagate upstream
9271865Sdilpreet *
9281865Sdilpreet * for PCI/X (but not PCI) the split write can optionally be forwarded across
9291865Sdilpreet * the bridge, maintaining bad parity/ecc
9300Sstevel@tonic-gate *
9311865Sdilpreet * if there is a dpe on a retry on a delayed write, we don't send another
9321865Sdilpreet * retry, and eventually the dto timer will expire
9331865Sdilpreet */
9347197Sstephhprop error.io.pci.dpdata-pw-u@PCIFN { IS_LEAF } (0)->
9357197Sstephh    ereport.io.pci.mdpe@PCIFN;
9361865Sdilpreet
9377197Sstephhprop error.io.pci.dpdata-pw-u@PCIFN/PCIFN (3)->
9387197Sstephh    ereport.io.pci.mdpe@PCIFN,
9397197Sstephh    ereport.io.pci.sec-dpe@PCIFN,
9407197Sstephh    error.io.pci.dpdata-pw-u@PCIFN;
9411865Sdilpreet
9427197Sstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (1)->
9437197Sstephh    ereport.io.pci.sec-dpe@PCIFN;
9441865Sdilpreet
9457197Sstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (0)->
9467197Sstephh    ereport.io.pci.mdpe@PCIFN,
9477197Sstephh    error.io.pci.dpdata-dw-u@PCIFN;
9481865Sdilpreet
9497197Sstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (0)->
9507197Sstephh    error.io.pci.retry-to-u@PCIFN/PCIFN;
9511865Sdilpreet
9527197Sstephhprop error.io.pci.dpdata-dr-u@PCIFN/PCIFN (3)->
9537197Sstephh    ereport.io.pci.sec-dpe@PCIFN,
9547197Sstephh    ereport.io.pci.sec-mdpe@PCIFN,
9557197Sstephh    error.io.pci.dpdata-dr-u@PCIFN;
9561865Sdilpreet
9571865Sdilpreet/*
9581865Sdilpreet * Request with data parity error can propagate downstream. A hardened
9591865Sdilpreet * leaf driver should handle the error, but may or may not be able to
9601865Sdilpreet * avoid service impact. We handle to two cases separately. If there is
9611865Sdilpreet * service impact we will fail immediately, if not we will feed into a SERD
9621865Sdilpreet * engine.
9631865Sdilpreet *
9641865Sdilpreet * for PCI/X (but not PCI) the split write can optionally be forwarded across
9651865Sdilpreet * the bridge, maintaining bad parity/ecc
9661865Sdilpreet *
9671865Sdilpreet * if there is a dpe on a retry on a delayed write, we don't send another
9681865Sdilpreet * retry, and eventually the dto timer will expire
9690Sstevel@tonic-gate */
9707197Sstephhprop error.io.pci.f-dpe-d@PCIFN (1)->
9717197Sstephh    error.io.pci.dpdata-pw-d@PCIFN,
9727197Sstephh    error.io.pci.dpdata-dw-d@PCIFN,
9737197Sstephh    error.io.pci.dpdata-dr-d@PCIFN;
9741865Sdilpreet
9757197Sstephhprop error.io.pci.f-dpe-d@PCIFN (1)->
9767197Sstephh    error.io.pci.f-source-dpdata-u@PCIFN;
9771865Sdilpreet
9787197Sstephhprop error.io.pci.deg-dpe-d@PCIFN (1)->
9797197Sstephh    error.io.pci.dpdata-pw-d@PCIFN,
9807197Sstephh    error.io.pci.dpdata-dw-d@PCIFN,
9817197Sstephh    error.io.pci.dpdata-dr-d@PCIFN;
9821865Sdilpreet
9837197Sstephhprop error.io.pci.deg-dpe-d@PCIFN (1)->
9847197Sstephh    error.io.pci.deg-source-dpdata-u@PCIFN;
9851865Sdilpreet
9867197Sstephhprop error.io.pci.nf-dpe-d@PCIFN (1)->
9877197Sstephh    error.io.pci.dpdata-pw-d@PCIFN,
9887197Sstephh    error.io.pci.dpdata-dw-d@PCIFN,
9897197Sstephh    error.io.pci.dpdata-dr-d@PCIFN;
9901865Sdilpreet
9917197Sstephhprop error.io.pci.nf-dpe-d@PCIFN (1)->
9927197Sstephh    error.io.pci.nf-source-dpdata-u@PCIFN;
9931865Sdilpreet
9947197Sstephhprop error.io.pci.dpdata-pw-d@PCIFN (2)->
9957197Sstephh    error.io.pci.perr-pw-u@PCIFN,
9967197Sstephh    error.io.pci.dpdata-pw-fwd-d@PCIFN;
9971865Sdilpreet
9987197Sstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_LEAF } (1)->
9997197Sstephh    error.io.pci.source-perr-u@PCIFN;
10007197Sstephh
10017197Sstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_LEAF } (0)->
10027197Sstephh    ereport.io.pci.dpe@PCIFN;
10031865Sdilpreet
10047197Sstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_BDG } (2)->
10057197Sstephh    ereport.io.pci.dpe@PCIFN,
10067197Sstephh    ereport.io.pci.sec-mdpe@PCIFN;
10071865Sdilpreet
10087197Sstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN (1)->
10097197Sstephh    error.io.pci.dpdata-pw-fwd-d@PCIFN/PCIFNHZ;
10101865Sdilpreet
10117197Sstephhprop error.io.pci.dpdata-dw-d@PCIFN (3)->
10127197Sstephh    error.io.pci.perr-dw-u@PCIFN,
10137197Sstephh    error.io.pci.target-mdpe-d@PCIFN,
10147197Sstephh    error.io.pci.dpdata-dw-fwd-d@PCIFN;
10150Sstevel@tonic-gate
10167197Sstephhprop error.io.pci.dpdata-dw-d@PCIFN { IS_BDG } (1)->
10177197Sstephh    ereport.io.pci.dpe@PCIFN;
10181865Sdilpreet
10197197Sstephhprop error.io.pci.dpdata-dw-d@PCIFN { IS_BDG } (0)->
10207197Sstephh    error.io.pci.retry-to-d@PCIFN;
10211865Sdilpreet
10227197Sstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_LEAF } (1)->
10237197Sstephh    error.io.pci.source-perr-u@PCIFN;
10241865Sdilpreet
10257197Sstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_LEAF } (0)->
10267197Sstephh    ereport.io.pci.dpe@PCIFN;
10271865Sdilpreet
10287197Sstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_BDG } (0)->
10297197Sstephh    ereport.io.pci.dpe@PCIFN,
10307197Sstephh    ereport.io.pci.sec-mdpe@PCIFN;
10311865Sdilpreet
10327197Sstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN (0)->
10337197Sstephh    error.io.pci.dpdata-dw-fwd-d@PCIFN/PCIFNHZ;
10341865Sdilpreet
10357197Sstephhprop error.io.pci.dpdata-dr-d@PCIFN (2)->
10367197Sstephh    error.io.pci.dpdata-dr-fwd-d@PCIFN,
10377197Sstephh    error.io.pci.perr-dr-u@PCIFN;
10381865Sdilpreet
10397197Sstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_LEAF } (1)->
10407197Sstephh    error.io.pci.source-perr-u@PCIFN;
10411865Sdilpreet
10427197Sstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_LEAF } (0)->
10437197Sstephh    ereport.io.pci.dpe@PCIFN,
10447197Sstephh    ereport.io.pci.mdpe@PCIFN;
10451865Sdilpreet
10467197Sstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_BDG } (2)->
10477197Sstephh    ereport.io.pci.dpe@PCIFN,
10487197Sstephh    ereport.io.pci.mdpe@PCIFN;
10491865Sdilpreet
10507197Sstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN (1)->
10517197Sstephh    error.io.pci.dpdata-dr-fwd-d@PCIFN/PCIFNHZ;
10521865Sdilpreet
10531865Sdilpreet/*
10541865Sdilpreet * delayed read/write retry timeout can cause dto at a bridge
10551865Sdilpreet */
10567197Sstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (0)->
10577197Sstephh    error.io.pci.retry-to-u@PCIFN;
10581865Sdilpreet
10597197Sstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (1)->
10607197Sstephh    ereport.io.pci.dto@PCIFN;
10610Sstevel@tonic-gate
10627197Sstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (0)->
10637197Sstephh    error.io.pci.serr-u@PCIFN;
10640Sstevel@tonic-gate
10657197Sstephhprop error.io.pci.retry-to-d@PCIFN (0)->
10667197Sstephh    error.io.pci.retry-to-d@PCIFN/PCIFN;
10670Sstevel@tonic-gate
10687197Sstephhprop error.io.pci.retry-to-d@PCIFN { IS_BDG } (1)->
10697197Sstephh    ereport.io.pci.dto@PCIFN;
10700Sstevel@tonic-gate
10717197Sstephhprop error.io.pci.retry-to-d@PCIFN { IS_BDG } (0)->
10727197Sstephh    error.io.pci.serr-u@PCIFN;
10730Sstevel@tonic-gate
10740Sstevel@tonic-gate/*
10751865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10761865Sdilpreet * source- propagations.
10771865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10780Sstevel@tonic-gate */
10797197Sstephhevent error.io.pci.source-ape-u@PCIFN/PCIFN;
10807197Sstephhevent error.io.pcix.source-scpe-u@PCIFN/PCIFN;
10811865Sdilpreet
10827197Sstephhprop error.io.pci.source-ape-u@PCIFN (1)->
10837197Sstephh    error.io.pci.source-ape-u@PCIFN/PCIFNHZ;
10841865Sdilpreet
10857197Sstephhprop error.io.pcix.source-scpe-u@PCIFN (1)->
10867197Sstephh    error.io.pcix.source-scpe-u@PCIFN/PCIFNHZ;
10871865Sdilpreet
10881865Sdilpreet/*
10891865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10901865Sdilpreet * Handling of leaf driver detected internal errors. Use serd engine if
10911865Sdilpreet * no service impact - otherwise fail immediately
10921865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10931865Sdilpreet */
10947197Sstephhevent ereport.io.device.inval_state@PCIFN{within(5s)};
10957197Sstephhevent ereport.io.device.no_response@PCIFN{within(5s)};
10967197Sstephhevent ereport.io.device.stall@PCIFN{within(5s)};
10977197Sstephhevent ereport.io.device.badint_limit@PCIFN{within(5s)};
10987197Sstephhevent ereport.io.device.intern_corr@PCIFN{within(5s)};
10997197Sstephhevent ereport.io.device.intern_uncorr@PCIFN{within(5s)};
11001865Sdilpreet
11017197Sstephhprop error.io.service.restored@PCIFN { IS_LEAF } (1)->
11027197Sstephh    ereport.io.service.lost@PCIFN,
11037197Sstephh    ereport.io.service.degraded@PCIFN;
11041865Sdilpreet
11057197Sstephhprop error.io.service.restored@PCIFN { IS_LEAF } (1)->
11067197Sstephh    ereport.io.service.restored@PCIFN;
11071865Sdilpreet
11087197Sstephhprop error.io.device.f-device@PCIFN { IS_LEAF } (1)->
11097197Sstephh    ereport.io.device.inval_state@PCIFN,
11107197Sstephh    ereport.io.device.no_response@PCIFN,
11117197Sstephh    ereport.io.device.stall@PCIFN,
11127197Sstephh    ereport.io.device.badint_limit@PCIFN,
11137197Sstephh    ereport.io.device.intern_corr@PCIFN,
11147197Sstephh    ereport.io.device.intern_uncorr@PCIFN;
11151865Sdilpreet
11167197Sstephhprop error.io.device.f-device@PCIFN { IS_LEAF } (1)->
11177197Sstephh    ereport.io.service.lost@PCIFN;
11181865Sdilpreet
11197197Sstephhprop error.io.device.deg-device@PCIFN { IS_LEAF } (1)->
11207197Sstephh    ereport.io.device.inval_state@PCIFN,
11217197Sstephh    ereport.io.device.no_response@PCIFN,
11227197Sstephh    ereport.io.device.stall@PCIFN,
11237197Sstephh    ereport.io.device.badint_limit@PCIFN,
11247197Sstephh    ereport.io.device.intern_corr@PCIFN,
11257197Sstephh    ereport.io.device.intern_uncorr@PCIFN;
11261865Sdilpreet
11277197Sstephhprop error.io.device.deg-device@PCIFN { IS_LEAF } (1)->
11287197Sstephh    ereport.io.service.degraded@PCIFN;
11291865Sdilpreet
11307197Sstephhprop error.io.device.nf-device@PCIFN { IS_LEAF } (1)->
11317197Sstephh    ereport.io.device.inval_state@PCIFN,
11327197Sstephh    ereport.io.device.no_response@PCIFN,
11337197Sstephh    ereport.io.device.stall@PCIFN,
11347197Sstephh    ereport.io.device.badint_limit@PCIFN,
11357197Sstephh    ereport.io.device.intern_corr@PCIFN,
11367197Sstephh    ereport.io.device.intern_uncorr@PCIFN;
11371865Sdilpreet
11387197Sstephhprop error.io.device.nf-device@PCIFN { IS_LEAF } (1)->
11397197Sstephh    ereport.io.service.unaffected@PCIFN,
11407197Sstephh    error.io.service.restored@PCIFN;
11411865Sdilpreet
11421865Sdilpreet/*
11431865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11441865Sdilpreet * stub unused ereports
11451865Sdilpreet * - ignore rx-spl as we can't tell what message it was (and we should have
11461865Sdilpreet *   diagnosed the problem anyway from standard pci ereports)
11471865Sdilpreet * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info)
11481865Sdilpreet * - ignore unex-spl/sec-unex-spl
11491865Sdilpreet * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe)
11501865Sdilpreet * - ignore ecc.ce ereports for now (could do serd on these)
11511865Sdilpreet * - ignore nr ereport
11521865Sdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11530Sstevel@tonic-gate */
11540Sstevel@tonic-gate
11557197Sstephhevent ereport.io.pci.nr@PCIFN{within(5s)};
11567197Sstephhevent ereport.io.pcix.unex-spl@PCIFN{within(5s)};
11577197Sstephhevent ereport.io.pcix.rx-spl@PCIFN{within(5s)};
11587197Sstephhevent ereport.io.pcix.sec-unex-spl@PCIFN{within(5s)};
11597197Sstephhevent ereport.io.pcix.sec-spl-or@PCIFN{within(5s)};
11607197Sstephhevent ereport.io.pcix.sec-spl-dly@PCIFN{within(5s)};
11617197Sstephhevent ereport.io.pcix.ecc.ce-addr@PCIFN{within(5s)};
11627197Sstephhevent ereport.io.pcix.ecc.ce-attr@PCIFN{within(5s)};
11637197Sstephhevent ereport.io.pcix.ecc.ce-data@PCIFN{within(5s)};
11647197Sstephhevent ereport.io.pcix.ecc.ue-addr@PCIFN{within(5s)};
11657197Sstephhevent ereport.io.pcix.ecc.ue-attr@PCIFN{within(5s)};
11667197Sstephhevent ereport.io.pcix.ecc.ue-data@PCIFN{within(5s)};
11677197Sstephhevent ereport.io.pcix.s-ce@PCIFN{within(5s)};
11687197Sstephhevent ereport.io.pcix.s-ue@PCIFN{within(5s)};
11697197Sstephhevent ereport.io.pcix.sec-ecc.ce-addr@PCIFN{within(5s)};
11707197Sstephhevent ereport.io.pcix.sec-ecc.ce-attr@PCIFN{within(5s)};
11717197Sstephhevent ereport.io.pcix.sec-ecc.ce-data@PCIFN{within(5s)};
11727197Sstephhevent ereport.io.pcix.sec-ecc.ue-addr@PCIFN{within(5s)};
11737197Sstephhevent ereport.io.pcix.sec-ecc.ue-attr@PCIFN{within(5s)};
11747197Sstephhevent ereport.io.pcix.sec-ecc.ue-data@PCIFN{within(5s)};
11757197Sstephhevent ereport.io.pcix.sec-s-ce@PCIFN{within(5s)};
11767197Sstephhevent ereport.io.pcix.sec-s-ue@PCIFN{within(5s)};
11770Sstevel@tonic-gate
11787197Sstephhevent upset.io.pcix.discard@PCIFN;
11791865Sdilpreet
11807197Sstephhprop upset.io.pcix.discard@PCIFN (1)->
11817197Sstephh    ereport.io.pci.nr@PCIFN,
11827197Sstephh    ereport.io.pcix.rx-spl@PCIFN,
11837197Sstephh    ereport.io.pcix.unex-spl@PCIFN,
11847197Sstephh    ereport.io.pcix.sec-unex-spl@PCIFN,
11857197Sstephh    ereport.io.pcix.sec-spl-or@PCIFN,
11867197Sstephh    ereport.io.pcix.sec-spl-dly@PCIFN,
11877197Sstephh    ereport.io.pcix.ecc.ce-addr@PCIFN,
11887197Sstephh    ereport.io.pcix.ecc.ce-attr@PCIFN,
11897197Sstephh    ereport.io.pcix.ecc.ce-data@PCIFN,
11907197Sstephh    ereport.io.pcix.ecc.ue-addr@PCIFN,
11917197Sstephh    ereport.io.pcix.ecc.ue-attr@PCIFN,
11927197Sstephh    ereport.io.pcix.ecc.ue-data@PCIFN,
11937197Sstephh    ereport.io.pcix.s-ce@PCIFN,
11947197Sstephh    ereport.io.pcix.s-ue@PCIFN,
11957197Sstephh    ereport.io.pcix.sec-ecc.ce-addr@PCIFN,
11967197Sstephh    ereport.io.pcix.sec-ecc.ce-attr@PCIFN,
11977197Sstephh    ereport.io.pcix.sec-ecc.ce-data@PCIFN,
11987197Sstephh    ereport.io.pcix.sec-ecc.ue-addr@PCIFN,
11997197Sstephh    ereport.io.pcix.sec-ecc.ue-attr@PCIFN,
12007197Sstephh    ereport.io.pcix.sec-ecc.ue-data@PCIFN,
12017197Sstephh    ereport.io.pcix.sec-s-ce@PCIFN,
12027197Sstephh    ereport.io.pcix.sec-s-ue@PCIFN;
1203