xref: /titanic_41/usr/src/cmd/fm/eversholt/files/common/pci.esc (revision 05dd151b48459b1282a9ba09a1012307693cf4b9)
17c478bd9Sstevel@tonic-gate/*
27c478bd9Sstevel@tonic-gate * CDDL HEADER START
37c478bd9Sstevel@tonic-gate *
47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the
500d0963fSdilpreet * Common Development and Distribution License (the "License").
600d0963fSdilpreet * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate *
87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate * and limitations under the License.
127c478bd9Sstevel@tonic-gate *
137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate *
197c478bd9Sstevel@tonic-gate * CDDL HEADER END
207c478bd9Sstevel@tonic-gate */
217c478bd9Sstevel@tonic-gate/*
22*05dd151bSStephen Hanson * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate * Use is subject to license terms.
247c478bd9Sstevel@tonic-gate */
257c478bd9Sstevel@tonic-gate
267c478bd9Sstevel@tonic-gate#pragma dictionary "PCI"
277c478bd9Sstevel@tonic-gate
280eb822a1Scindi#include <fm/topo_hc.h>
290eb822a1Scindi
307c478bd9Sstevel@tonic-gate#define PCI_DEV_FIT 1000
317c478bd9Sstevel@tonic-gate#define PCI_BUS_FIT 500
327c478bd9Sstevel@tonic-gate
3300d0963fSdilpreet/*
3400d0963fSdilpreet * SERD parameters.
3500d0963fSdilpreet *
3600d0963fSdilpreet * Nonfatal dpe errors have to be recovered by the hardened driver which may
3700d0963fSdilpreet * cause intermittant performance/responsiveness problems, so we have tighter
3800d0963fSdilpreet * serd parameters for these. These are most likely errors in buffers/caches
3900d0963fSdilpreet * within devices and bridges, so use similar rates to cpu data cache parity
4000d0963fSdilpreet * errors.
4100d0963fSdilpreet *
4200d0963fSdilpreet * We will be more conservative about nonfatal internal errors reported
4300d0963fSdilpreet * by the driver.
4400d0963fSdilpreet */
4500d0963fSdilpreet#define NONFATAL_COUNT 6
4600d0963fSdilpreet#define NONFATAL_TIME 2h
47b7d3956bSstephh#define NONFATAL_DPE_COUNT 3
48b7d3956bSstephh#define NONFATAL_DPE_TIME 168h
49b7d3956bSstephh
50b7d3956bSstephh#define	PCIFN		pcibus/pcidev/pcifn
51b7d3956bSstephh#define	PCIFNHZ		pcibus<>/pcidev<>/pcifn<>
52b7d3956bSstephh
53b7d3956bSstephhengine serd.io.device.nonfatal@PCIFN,
54b7d3956bSstephh	N=NONFATAL_COUNT, T=NONFATAL_TIME;
55b7d3956bSstephh
56b7d3956bSstephhengine serd.io.pci.nf-dpe@PCIFN,
57b7d3956bSstephh	N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME;
58b7d3956bSstephh
59b7d3956bSstephhengine serd.io.pci.nf-dpe-bus@pcibus,
60b7d3956bSstephh	N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME;
6100d0963fSdilpreet
6200d0963fSdilpreet#define	IS_LEAF \
63b7d3956bSstephh	(confprop_defined(PCIFN, TOPO_PCI_CLASS) && \
64b7d3956bSstephh	confprop(PCIFN, TOPO_PCI_CLASS) != "60400" && \
65b7d3956bSstephh	confprop(PCIFN, TOPO_PCI_CLASS) != "60401")
6600d0963fSdilpreet
6700d0963fSdilpreet#define	IS_BDG \
68b7d3956bSstephh	(confprop(PCIFN, TOPO_PCI_CLASS) == "60400" || \
69b7d3956bSstephh	confprop(PCIFN, TOPO_PCI_CLASS) == "60401")
7000d0963fSdilpreet
7100d0963fSdilpreet#define	FD_IS_LEAF \
72b7d3956bSstephh	(confprop_defined(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) && \
73b7d3956bSstephh	confprop(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) != "60400" && \
74b7d3956bSstephh	confprop(pcibus/pcidev[fromdev]/pcifn, TOPO_PCI_CLASS) != "60401")
7500d0963fSdilpreet
76b7d3956bSstephh#define	IS_LF(f)	(confprop_defined(f, TOPO_PCI_CLASS) && \
77b7d3956bSstephh			confprop(f, TOPO_PCI_CLASS) != "60400" && \
78b7d3956bSstephh			confprop(f, TOPO_PCI_CLASS) != "60401")
7900d0963fSdilpreet/*
8000d0963fSdilpreet * note general rule for errors is that for upstream propagations
81b7d3956bSstephh * @PCIFN is the sending device while  for downstream
8200d0963fSdilpreet * propagations it is the receiving device.
8300d0963fSdilpreet */
8400d0963fSdilpreet
85b7d3956bSstephhevent fault.io.pci.device-interr-corr@PCIFN,
86b7d3956bSstephh	engine=serd.io.device.nonfatal@PCIFN, FITrate=PCI_DEV_FIT;
877c478bd9Sstevel@tonic-gate
88b7d3956bSstephhevent fault.io.pci.device-interr-unaf@PCIFN,
89b7d3956bSstephh	engine=serd.io.pci.nf-dpe@PCIFN, FITrate=PCI_DEV_FIT;
907c478bd9Sstevel@tonic-gate
91b7d3956bSstephhevent fault.io.pci.device-interr-deg@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
927c478bd9Sstevel@tonic-gate
93b7d3956bSstephhevent fault.io.pci.device-interr@PCIFN, FITrate=PCI_DEV_FIT;
94b7d3956bSstephh
95b7d3956bSstephhevent fault.io.pci.device-invreq@PCIFN, FITrate=PCI_DEV_FIT;
96b7d3956bSstephh
97b7d3956bSstephhevent fault.io.pci.device-noresp@PCIFN, FITrate=PCI_DEV_FIT;
987c478bd9Sstevel@tonic-gate
99*05dd151bSStephen Hansonevent fault.io.pci.fw_corrupt@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
100*05dd151bSStephen Hanson
101*05dd151bSStephen Hansonevent fault.io.pci.fw_mismatch@PCIFN, FITrate=PCI_DEV_FIT, retire=0;
102*05dd151bSStephen Hanson
1037c478bd9Sstevel@tonic-gate/*
10400d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10500d0963fSdilpreet * A faulty hostbridge may cause:
10600d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10700d0963fSdilpreet *  - nr-pw-d:	the device not to respond to an upstream request
10800d0963fSdilpreet *  - nr-drw-d:	the device not to respond to an upstream request
10900d0963fSdilpreet *  - ta-pw-d:	the device to send a target abort to an upstream request
11000d0963fSdilpreet *  - ta-drw-d:	the device to send a target abort to an upstream request
11100d0963fSdilpreet *  - serr-u:	the device to report itself in error
11200d0963fSdilpreet *  - badreq-pw-d:a bad downstream request - not parity error (may cause target
11300d0963fSdilpreet * 		to target abort or master abort)
11400d0963fSdilpreet *  - badreq-drw-d:a bad downstream request - not parity error (may cause
11500d0963fSdilpreet * 		target to target abort or master abort)
11600d0963fSdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission
11700d0963fSdilpreet *  - scpe-d:	split completion to get corrupted during downstream transmission
11800d0963fSdilpreet *  - dpe-d:	the device to transfer bad data and/or bad parity downstream
11900d0963fSdilpreet *  - retry-to-d:	the device to exceed the set timeout for a delayed
12000d0963fSdilpreet *			transaction retry.
12100d0963fSdilpreet */
12200d0963fSdilpreet#define	PCI_TO_HB pcibus/pcidev<todev>/pcifn<> {fromdev != 32 && todev == 32}
12300d0963fSdilpreet#define	PCI_FROM_HB pcibus/pcidev<todev>/pcifn<> {fromdev == 32 && todev != 32}
12400d0963fSdilpreet
125b7d3956bSstephhevent error.io.pci.retry-to-d@PCIFN;
126b7d3956bSstephhevent error.io.pci.nr-pw-d@PCIFN;
127b7d3956bSstephhevent error.io.pci.nr-drw-d@PCIFN;
128b7d3956bSstephhevent error.io.pci.ta-pw-d@PCIFN;
129b7d3956bSstephhevent error.io.pci.ta-drw-d@PCIFN;
130b7d3956bSstephhevent error.io.pci.badreq-pw-d@PCIFN;
131b7d3956bSstephhevent error.io.pci.badreq-drw-d@PCIFN;
132b7d3956bSstephhevent error.io.pci.f-dpe-d@PCIFN;
133b7d3956bSstephhevent error.io.pci.deg-dpe-d@PCIFN;
134b7d3956bSstephhevent error.io.pci.nf-dpe-d@PCIFN;
135b7d3956bSstephhevent error.io.pci.ape-d@PCIFN;
136b7d3956bSstephhevent error.io.pci.ape-u@PCIFN;
137b7d3956bSstephhevent error.io.pci.dpdata-dw-d@PCIFN;
138b7d3956bSstephhevent error.io.pci.dpdata-pw-d@PCIFN;
139b7d3956bSstephhevent error.io.pci.dpdata-dr-d@PCIFN;
140b7d3956bSstephhevent error.io.pci.dpdata-pw-u@PCIFN;
141b7d3956bSstephhevent error.io.pci.dpdata-dw-u@PCIFN;
142b7d3956bSstephhevent error.io.pci.dpdata-dr-u@PCIFN;
143b7d3956bSstephhevent error.io.pci.ta-u@PCIFN;
144b7d3956bSstephhevent error.io.pci.ma-u@PCIFN;
145b7d3956bSstephhevent error.io.pci.perr-dw-u@PCIFN;
146b7d3956bSstephhevent error.io.pci.perr-pw-u@PCIFN;
147b7d3956bSstephhevent error.io.pci.perr-dr-u@PCIFN;
148b7d3956bSstephhevent error.io.pci.badreq-drw-u@PCIFN;
149b7d3956bSstephhevent error.io.pci.badreq-pw-u@PCIFN;
150b7d3956bSstephhevent error.io.pci.device-serr@PCIFN;
151b7d3956bSstephhevent error.io.pci.device-ta@PCIFN;
152b7d3956bSstephhevent error.io.pci.device-par@PCIFN;
153b7d3956bSstephhevent error.io.pci.serr-u@PCIFN;
154b7d3956bSstephhevent error.io.pcix.scpe-d@PCIFN;
155b7d3956bSstephhevent error.io.pcix.scpe-u@PCIFN;
156b7d3956bSstephhevent error.io.pcix.spl-comp-ma-u@PCIFN;
157b7d3956bSstephhevent error.io.pcix.spl-comp-ta-u@PCIFN;
158b7d3956bSstephhevent error.io.pcix.spl-comp-ma-d@PCIFN;
159b7d3956bSstephhevent error.io.pcix.spl-comp-ta-d@PCIFN;
16000d0963fSdilpreet
161b7d3956bSstephhevent ereport.io.pci.ma@PCIFN{within(5s)};
162b7d3956bSstephhevent ereport.io.pci.rta@PCIFN{within(5s)};
163b7d3956bSstephhevent ereport.io.pci.mdpe@PCIFN{within(5s)};
164b7d3956bSstephhevent ereport.io.pci.sta@PCIFN{within(5s)};
165b7d3956bSstephhevent ereport.io.pci.sserr@PCIFN{within(5s)};
166b7d3956bSstephhevent ereport.io.pci.dpe@PCIFN{within(5s)};
167b7d3956bSstephhevent ereport.io.pci.target-mdpe@PCIFN{within(5s)};
168b7d3956bSstephhevent ereport.io.pci.target-rta@PCIFN{within(5s)};
169b7d3956bSstephhevent ereport.io.pci.target-ma@PCIFN{within(5s)};
170b7d3956bSstephhevent ereport.io.pcix.discard@PCIFN{within(5s)};
17100d0963fSdilpreet
17200d0963fSdilpreetprop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)->
17300d0963fSdilpreet    error.io.pci.nr-pw-d@PCI_FROM_HB,
17400d0963fSdilpreet    error.io.pci.nr-drw-d@PCI_FROM_HB,
17500d0963fSdilpreet    error.io.pci.retry-to-d@PCI_FROM_HB;
17600d0963fSdilpreet
17700d0963fSdilpreetprop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn (0)->
17800d0963fSdilpreet    error.io.pci.badreq-pw-d@PCI_FROM_HB,
17900d0963fSdilpreet    error.io.pci.badreq-drw-d@PCI_FROM_HB;
18000d0963fSdilpreet
181b7d3956bSstephhprop fault.io.pci.device-interr-unaf@pcibus/pcidev[fromdev]/pcifn (0)->
182b7d3956bSstephh    error.io.pci.nf-dpe-d@PCI_FROM_HB;
183b7d3956bSstephh
184b7d3956bSstephhprop fault.io.pci.device-interr-deg@pcibus/pcidev[fromdev]/pcifn (0)->
185b7d3956bSstephh    error.io.pci.deg-dpe-d@PCI_FROM_HB;
186b7d3956bSstephh
187b7d3956bSstephhprop fault.io.pci.device-interr@PCIFN (0)->
188b7d3956bSstephh    error.io.pci.device-par@PCIFN,
189b7d3956bSstephh    error.io.pci.device-ta@PCIFN,
190b7d3956bSstephh    error.io.pci.device-serr@PCIFN;
19100d0963fSdilpreet
19200d0963fSdilpreetprop error.io.pci.device-par@pcibus/pcidev[fromdev]/pcifn (1)->
19300d0963fSdilpreet    error.io.pci.f-dpe-d@PCI_FROM_HB,
19400d0963fSdilpreet    error.io.pcix.scpe-d@PCI_FROM_HB,
19500d0963fSdilpreet    error.io.pci.ape-d@PCI_FROM_HB;
19600d0963fSdilpreet
19700d0963fSdilpreetprop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)->
19800d0963fSdilpreet    error.io.pci.ta-pw-d@PCI_FROM_HB,
19900d0963fSdilpreet    error.io.pci.ta-drw-d@PCI_FROM_HB;
20000d0963fSdilpreet
20100d0963fSdilpreetprop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)->
20200d0963fSdilpreet    ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn {
20300d0963fSdilpreet	todev == fromdev && fromdev == 32 };
20400d0963fSdilpreet
205b7d3956bSstephhprop error.io.pci.device-serr@PCIFN (2)->
206b7d3956bSstephh    error.io.pci.serr-u@PCIFN,
207b7d3956bSstephh    ereport.io.pci.sserr@PCIFN;
20800d0963fSdilpreet
20900d0963fSdilpreet/*
21000d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21100d0963fSdilpreet * ereport generation rules for hostbridge
21200d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21300d0963fSdilpreet */
21400d0963fSdilpreetprop error.io.pci.dpdata-pw-u@pcibus/pcidev[fromdev]/pcifn (1)->
21500d0963fSdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
21600d0963fSdilpreet
21700d0963fSdilpreetprop error.io.pci.dpdata-dw-u@pcibus/pcidev[fromdev]/pcifn (1)->
21800d0963fSdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
21900d0963fSdilpreet
22000d0963fSdilpreetprop error.io.pci.dpdata-dr-u@pcibus/pcidev[fromdev]/pcifn (2)->
22100d0963fSdilpreet    ereport.io.pci.mdpe@PCI_TO_HB,
22200d0963fSdilpreet    ereport.io.pci.dpe@PCI_TO_HB;
22300d0963fSdilpreet
22400d0963fSdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (3)->
22500d0963fSdilpreet    ereport.io.pci.dpe@PCI_TO_HB,
22600d0963fSdilpreet    error.io.pci.serr-u@PCI_TO_HB,
22700d0963fSdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
22800d0963fSdilpreet
22900d0963fSdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)->
23000d0963fSdilpreet    ereport.io.pci.sta@PCI_TO_HB;
23100d0963fSdilpreet
23200d0963fSdilpreetprop error.io.pci.ma-u@pcibus/pcidev[fromdev]/pcifn (1)->
23300d0963fSdilpreet    ereport.io.pci.ma@PCI_TO_HB;
23400d0963fSdilpreet
23500d0963fSdilpreetprop error.io.pci.ta-u@pcibus/pcidev[fromdev]/pcifn (1)->
23600d0963fSdilpreet    ereport.io.pci.rta@PCI_TO_HB;
23700d0963fSdilpreet
23800d0963fSdilpreetprop error.io.pci.perr-dw-u@pcibus/pcidev[fromdev]/pcifn (1)->
23900d0963fSdilpreet    ereport.io.pci.mdpe@PCI_TO_HB;
24000d0963fSdilpreet
24100d0963fSdilpreetprop error.io.pci.perr-pw-u@pcibus/pcidev[fromdev]/pcifn (1)->
24200d0963fSdilpreet    ereport.io.pci.mdpe@PCI_TO_HB;
24300d0963fSdilpreet
24400d0963fSdilpreetprop error.io.pci.badreq-drw-u@pcibus/pcidev[fromdev]/pcifn (0)->
24500d0963fSdilpreet    ereport.io.pci.sta@PCI_TO_HB;
24600d0963fSdilpreet
24700d0963fSdilpreetprop error.io.pci.badreq-pw-u@pcibus/pcidev[fromdev]/pcifn (0)->
24800d0963fSdilpreet    ereport.io.pci.sta@PCI_TO_HB;
24900d0963fSdilpreet
250b7d3956bSstephhprop error.io.pcix.scpe-u@PCIFN (1)->
251b7d3956bSstephh    error.io.pcix.spl-comp-ma-d@PCIFN,
252b7d3956bSstephh    error.io.pcix.spl-comp-ta-d@PCIFN;
25300d0963fSdilpreet
25400d0963fSdilpreetprop error.io.pcix.scpe-u@pcibus/pcidev[fromdev]/pcifn (0)->
25500d0963fSdilpreet    ereport.io.pci.dpe@PCI_TO_HB,
25600d0963fSdilpreet    error.io.pci.serr-u@PCI_TO_HB,
25700d0963fSdilpreet    ereport.io.pci.sserr@PCI_TO_HB,
25800d0963fSdilpreet    ereport.io.pci.sta@PCI_TO_HB;
25900d0963fSdilpreet
26000d0963fSdilpreetprop error.io.pcix.spl-comp-ma-u@pcibus/pcidev[fromdev]/pcifn (3)->
26100d0963fSdilpreet    ereport.io.pcix.discard@PCI_TO_HB,
26200d0963fSdilpreet    error.io.pci.serr-u@PCI_TO_HB,
26300d0963fSdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
26400d0963fSdilpreet
26500d0963fSdilpreetprop error.io.pcix.spl-comp-ta-u@pcibus/pcidev[fromdev]/pcifn (3)->
26600d0963fSdilpreet    ereport.io.pcix.discard@PCI_TO_HB,
26700d0963fSdilpreet    error.io.pci.serr-u@PCI_TO_HB,
26800d0963fSdilpreet    ereport.io.pci.sserr@PCI_TO_HB;
26900d0963fSdilpreet
27000d0963fSdilpreet/*
27100d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27200d0963fSdilpreet * A faulty PCI leaf device or pci-pci bridge may cause:
27300d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27400d0963fSdilpreet *  - nr-pw-u:		the device not to respond to a valid downstream request
27500d0963fSdilpreet *  - nr-drw-u:		the device not to respond to a valid downstream request
27600d0963fSdilpreet *  - ta-pw-u:		the device responds with a ta to a valid downstream
27700d0963fSdilpreet *			request
27800d0963fSdilpreet *  - ta-drw-u:		the device responds with a ta to a valid downstream
27900d0963fSdilpreet *			request
28000d0963fSdilpreet *  - serr-u:		the device to report itself in error
28100d0963fSdilpreet *  - badreq-pw-u:	a bad upstream request (may cause target to target
28200d0963fSdilpreet *			abort or master abort)
28300d0963fSdilpreet *  - badreq-drw-u:	a bad upstream request (may cause target to target
28400d0963fSdilpreet *			abort or master abort)
28500d0963fSdilpreet *  - ape-u:		the transfer of bad address/parity upstream.
28600d0963fSdilpreet *  - scpe-u:		the transfer of bad split completion upstream.
28700d0963fSdilpreet *  - dpe-u:		the device to deliver bad data/parity upstream.
28800d0963fSdilpreet *  - retry-to-u:	the device to exceed the set timeout for a delayed
28900d0963fSdilpreet *			transaction retry.
2907c478bd9Sstevel@tonic-gate *
29100d0963fSdilpreet * A faulty PCI-X leaf device or bridge may also cause:
2927c478bd9Sstevel@tonic-gate *
2937c478bd9Sstevel@tonic-gate *  - tx-oor:		the device sends a byte count larger than the completers
2947c478bd9Sstevel@tonic-gate *			address range.
29500d0963fSdilpreet *  - rx-unex-sc:	the device recieved a split completion with a tag
2967c478bd9Sstevel@tonic-gate * 			which does not match any outstanding transaction.
2977c478bd9Sstevel@tonic-gate */
2987c478bd9Sstevel@tonic-gate
29900d0963fSdilpreet#define	PCI_NOT_HB pcibus/pcidev[fromdev]/pcifn {fromdev != 32}
3007c478bd9Sstevel@tonic-gate
301b7d3956bSstephhevent error.io.pci.retry-to-u@PCIFN;
302b7d3956bSstephhevent error.io.pci.nr-pw-u@PCIFN;
303b7d3956bSstephhevent error.io.pci.nr-drw-u@PCIFN;
304b7d3956bSstephhevent error.io.pci.ta-pw-u@PCIFN;
305b7d3956bSstephhevent error.io.pci.ta-drw-u@PCIFN;
306b7d3956bSstephhevent error.io.pci.f-dpe-u@PCIFN;
307b7d3956bSstephhevent error.io.pci.deg-dpe-u@PCIFN;
308b7d3956bSstephhevent error.io.pci.nf-dpe-u@PCIFN;
309b7d3956bSstephhevent error.io.pci.flt-dpdata-pw-u@PCIFN;
310b7d3956bSstephhevent error.io.pci.flt-dpdata-dw-u@PCIFN;
311b7d3956bSstephhevent error.io.pci.flt-dpdata-dr-u@PCIFN;
312b7d3956bSstephhevent error.io.pci.source-dpdata-u@PCIFN;
313b7d3956bSstephhevent error.io.pci.f-source-dpdata-u@PCIFN;
314b7d3956bSstephhevent error.io.pci.f-source-dpdata-u@PCIFN/PCIFN;
315b7d3956bSstephhevent error.io.pci.deg-source-dpdata-u@PCIFN;
316b7d3956bSstephhevent error.io.pci.deg-source-dpdata-u@PCIFN/PCIFN;
317b7d3956bSstephhevent error.io.pci.nf-source-dpdata-u@PCIFN;
318b7d3956bSstephhevent error.io.pci.nf-source-dpdata-u@PCIFN/PCIFN;
319b7d3956bSstephhevent error.io.pci.perr-d@PCIFN;
320b7d3956bSstephhevent error.io.pci.target-mdpe-d@PCIFN;
321b7d3956bSstephhevent error.io.pci.target-mdpe-d@PCIFN/PCIFN;
322b7d3956bSstephhevent error.io.pci.target-rta-d@PCIFN/PCIFN;
323b7d3956bSstephhevent error.io.pci.target-ma-d@PCIFN/PCIFN;
324b7d3956bSstephhevent error.io.pcix.tx-oor@PCIFN;
325b7d3956bSstephhevent error.io.pcix.rx-unex-sc@PCIFN;
326b7d3956bSstephhevent error.io.device.nf-device@PCIFN;
327b7d3956bSstephhevent error.io.device.f-device@PCIFN;
328b7d3956bSstephhevent error.io.device.deg-device@PCIFN;
329b7d3956bSstephhevent error.io.service.restored@PCIFN;
3307c478bd9Sstevel@tonic-gate
331b7d3956bSstephhevent ereport.io.pcix.oor@PCIFN{within(5s)};
332b7d3956bSstephhevent ereport.io.pcix.unex-sc@PCIFN{within(5s)};
333*05dd151bSStephen Hansonevent ereport.io.device.fw_corrupt@PCIFN{within(5s)};
334*05dd151bSStephen Hansonevent ereport.io.device.fw_mismatch@PCIFN{within(5s)};
335b7d3956bSstephhevent ereport.io.service.lost@PCIFN{within(5s)};
336b7d3956bSstephhevent ereport.io.service.degraded@PCIFN{within(5s)};
337b7d3956bSstephhevent ereport.io.service.unaffected@PCIFN{within(5s)};
338b7d3956bSstephhevent ereport.io.service.restored@PCIFN{within(30s)};
3397c478bd9Sstevel@tonic-gate
34000d0963fSdilpreetprop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)->
34100d0963fSdilpreet    error.io.pci.nr-pw-u@PCI_NOT_HB,
34200d0963fSdilpreet    error.io.pci.nr-drw-u@PCI_NOT_HB,
34300d0963fSdilpreet    error.io.pci.retry-to-u@PCI_NOT_HB;
3447c478bd9Sstevel@tonic-gate
345b7d3956bSstephhprop fault.io.pci.device-interr-corr@pcibus/pcidev[fromdev]/pcifn (0)->
346b7d3956bSstephh    error.io.device.nf-device@PCI_NOT_HB;
347b7d3956bSstephh
348b7d3956bSstephhprop fault.io.pci.device-interr-unaf@pcibus/pcidev[fromdev]/pcifn (0)->
349b7d3956bSstephh    error.io.pci.nf-dpe-u@PCI_NOT_HB;
350b7d3956bSstephh
351b7d3956bSstephhprop fault.io.pci.device-interr-deg@pcibus/pcidev[fromdev]/pcifn (0)->
352b7d3956bSstephh    error.io.device.deg-device@PCI_NOT_HB,
353b7d3956bSstephh    error.io.pci.deg-dpe-u@PCI_NOT_HB;
354b7d3956bSstephh
35500d0963fSdilpreetprop fault.io.pci.device-interr@pcibus/pcidev[fromdev]/pcifn (0)->
35600d0963fSdilpreet    error.io.pci.ta-pw-u@PCI_NOT_HB,
35700d0963fSdilpreet    error.io.pci.ta-drw-u@PCI_NOT_HB,
35800d0963fSdilpreet    error.io.pci.serr-u@PCI_NOT_HB,
35900d0963fSdilpreet    error.io.pci.ape-u@PCI_NOT_HB,
36000d0963fSdilpreet    error.io.pci.f-dpe-u@PCI_NOT_HB,
36100d0963fSdilpreet    error.io.device.f-device@PCI_NOT_HB,
36200d0963fSdilpreet    error.io.pcix.scpe-u@PCI_NOT_HB,
36300d0963fSdilpreet    error.io.pcix.tx-oor@PCI_NOT_HB,
36400d0963fSdilpreet    error.io.pcix.rx-unex-sc@PCI_NOT_HB;
3657c478bd9Sstevel@tonic-gate
366*05dd151bSStephen Hansonprop fault.io.pci.fw_corrupt@PCIFN {IS_LEAF} (1)->
367*05dd151bSStephen Hanson    ereport.io.device.fw_corrupt@PCIFN;
368*05dd151bSStephen Hanson
369*05dd151bSStephen Hansonprop fault.io.pci.fw_corrupt@PCIFN {IS_LEAF} (0)->
370*05dd151bSStephen Hanson    ereport.io.service.lost@PCIFN,
371*05dd151bSStephen Hanson    ereport.io.service.degraded@PCIFN;
372*05dd151bSStephen Hanson
373*05dd151bSStephen Hansonprop fault.io.pci.fw_mismatch@PCIFN {IS_LEAF} (1)->
374*05dd151bSStephen Hanson    ereport.io.device.fw_mismatch@PCIFN;
375*05dd151bSStephen Hanson
376*05dd151bSStephen Hansonprop fault.io.pci.fw_mismatch@PCIFN {IS_LEAF} (0)->
377*05dd151bSStephen Hanson    ereport.io.service.lost@PCIFN,
378*05dd151bSStephen Hanson    ereport.io.service.degraded@PCIFN;
379*05dd151bSStephen Hanson
38000d0963fSdilpreetprop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn {FD_IS_LEAF} (0)->
38100d0963fSdilpreet    error.io.pci.badreq-drw-u@PCI_NOT_HB,
38200d0963fSdilpreet    error.io.pci.badreq-pw-u@PCI_NOT_HB;
3837c478bd9Sstevel@tonic-gate
384b7d3956bSstephhprop error.io.pcix.tx-oor@PCIFN (1)->
385b7d3956bSstephh    ereport.io.pcix.oor@PCIFN;
3867c478bd9Sstevel@tonic-gate
38700d0963fSdilpreetprop error.io.pcix.rx-unex-sc@pcibus/pcidev[fromdev]/pcifn (1)->
38800d0963fSdilpreet    ereport.io.pcix.unex-sc@pcibus/pcidev<todev>/pcifn<> {fromdev != todev};
3897c478bd9Sstevel@tonic-gate
390b7d3956bSstephhprop error.io.pci.f-dpe-u@PCIFN (1)->
391b7d3956bSstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
392b7d3956bSstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
393b7d3956bSstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
39400d0963fSdilpreet
395b7d3956bSstephhprop error.io.pci.f-dpe-u@PCIFN (1)->
396b7d3956bSstephh    error.io.pci.f-source-dpdata-u@PCIFN;
39700d0963fSdilpreet
398b7d3956bSstephhprop error.io.pci.f-source-dpdata-u@PCIFN (1)->
399b7d3956bSstephh    error.io.pci.f-source-dpdata-u@PCIFN/PCIFNHZ;
40000d0963fSdilpreet
401b7d3956bSstephhprop error.io.pci.f-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
402b7d3956bSstephh    error.io.pci.source-dpdata-u@PCIFN;
40300d0963fSdilpreet
404b7d3956bSstephhprop error.io.pci.f-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (0)->
405b7d3956bSstephh    ereport.io.service.lost@PCIFN;
40600d0963fSdilpreet
407b7d3956bSstephhprop error.io.pci.deg-dpe-u@PCIFN (1)->
408b7d3956bSstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
409b7d3956bSstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
410b7d3956bSstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
41100d0963fSdilpreet
412b7d3956bSstephhprop error.io.pci.deg-dpe-u@PCIFN (1)->
413b7d3956bSstephh    error.io.pci.deg-source-dpdata-u@PCIFN;
41400d0963fSdilpreet
415b7d3956bSstephhprop error.io.pci.deg-source-dpdata-u@PCIFN (1)->
416b7d3956bSstephh    error.io.pci.deg-source-dpdata-u@PCIFN/PCIFNHZ;
41700d0963fSdilpreet
418b7d3956bSstephhprop error.io.pci.deg-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
419b7d3956bSstephh    error.io.pci.source-dpdata-u@PCIFN;
42000d0963fSdilpreet
421b7d3956bSstephhprop error.io.pci.deg-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
422b7d3956bSstephh    ereport.io.service.degraded@PCIFN;
42300d0963fSdilpreet
424b7d3956bSstephhprop error.io.pci.nf-dpe-u@PCIFN (1)->
425b7d3956bSstephh    error.io.pci.flt-dpdata-pw-u@PCIFN,
426b7d3956bSstephh    error.io.pci.flt-dpdata-dw-u@PCIFN,
427b7d3956bSstephh    error.io.pci.flt-dpdata-dr-u@PCIFN;
42800d0963fSdilpreet
429b7d3956bSstephhprop error.io.pci.nf-dpe-u@PCIFN (1)->
430b7d3956bSstephh    error.io.pci.nf-source-dpdata-u@PCIFN;
431b7d3956bSstephh
432b7d3956bSstephhprop error.io.pci.nf-source-dpdata-u@PCIFN (1)->
433b7d3956bSstephh    error.io.pci.nf-source-dpdata-u@PCIFN/PCIFNHZ;
434b7d3956bSstephh
435b7d3956bSstephhprop error.io.pci.nf-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
436b7d3956bSstephh    error.io.pci.source-dpdata-u@PCIFN;
437b7d3956bSstephh
438b7d3956bSstephhprop error.io.pci.nf-source-dpdata-u@PCIFN { IS_LF(PCIFN) } (1)->
439b7d3956bSstephh    ereport.io.service.unaffected@PCIFN,
440b7d3956bSstephh    error.io.service.restored@PCIFN;
441b7d3956bSstephh
442b7d3956bSstephhprop error.io.pci.flt-dpdata-pw-u@PCIFN (1)->
443b7d3956bSstephh    error.io.pci.dpdata-pw-u@PCIFN;
444b7d3956bSstephh
445b7d3956bSstephhprop error.io.pci.flt-dpdata-pw-u@PCIFN { IS_BDG } (1)->
446b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
447b7d3956bSstephh
448b7d3956bSstephhprop error.io.pci.flt-dpdata-dw-u@PCIFN (2)->
449b7d3956bSstephh    error.io.pci.perr-d@PCIFN,
450b7d3956bSstephh    error.io.pci.dpdata-dw-u@PCIFN;
451b7d3956bSstephh
452b7d3956bSstephhprop error.io.pci.flt-dpdata-dr-u@PCIFN (2)->
453b7d3956bSstephh    error.io.pci.dpdata-dr-u@PCIFN,
454b7d3956bSstephh    error.io.pci.target-mdpe-d@PCIFN;
4557c478bd9Sstevel@tonic-gate
4567c478bd9Sstevel@tonic-gate/*
45700d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
45800d0963fSdilpreet * A faulty pci-pci bridge may also cause
45900d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
46000d0963fSdilpreet *  - nr-pw-d:		the device not to respond to a valid upstream request
46100d0963fSdilpreet *  - nr-drw-d:		the device not to respond to a valid upstream request
46200d0963fSdilpreet *  - ta-pw-d:		the device responds with a ta to a valid upstream
46300d0963fSdilpreet *			request
46400d0963fSdilpreet *  - ta-drw-d:		the device responds with a ta to a valid upstream
46500d0963fSdilpreet *			request
46600d0963fSdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission.
46700d0963fSdilpreet *  - scpe-d:	split completion gets corrupted during downstream transmission.
46800d0963fSdilpreet *  - dpe-d:	data/parity to get corrupted during downstream transmission.
46900d0963fSdilpreet *  - retry-to-d:	the device to exceed the set timeout for a delayed
47000d0963fSdilpreet *			transaction retry.
4717c478bd9Sstevel@tonic-gate */
4727c478bd9Sstevel@tonic-gate
473b7d3956bSstephhevent error.io.pci.ape-d@PCIFN/PCIFN;
474b7d3956bSstephhevent error.io.pci.f-dpe-d@PCIFN/PCIFN;
475b7d3956bSstephhevent error.io.pci.deg-dpe-d@PCIFN/PCIFN;
476b7d3956bSstephhevent error.io.pci.nf-dpe-d@PCIFN/PCIFN;
477b7d3956bSstephhevent error.io.pci.retry-to-d@PCIFN/PCIFN;
478b7d3956bSstephhevent error.io.pci.nr-pw-d@PCIFN/PCIFN;
479b7d3956bSstephhevent error.io.pci.nr-drw-d@PCIFN/PCIFN;
480b7d3956bSstephhevent error.io.pci.ta-pw-d@PCIFN/PCIFN;
481b7d3956bSstephhevent error.io.pci.ta-drw-d@PCIFN/PCIFN;
482b7d3956bSstephhevent error.io.pcix.scpe-d@PCIFN/PCIFN;
4837c478bd9Sstevel@tonic-gate
484b7d3956bSstephhprop fault.io.pci.device-noresp@PCIFN (0)->
485b7d3956bSstephh    error.io.pci.nr-pw-d@PCIFN/PCIFN,
486b7d3956bSstephh    error.io.pci.nr-drw-d@PCIFN/PCIFN,
487b7d3956bSstephh    error.io.pci.retry-to-d@PCIFN/PCIFN;
4887c478bd9Sstevel@tonic-gate
489b7d3956bSstephhprop fault.io.pci.device-interr-unaf@PCIFN (0)->
490b7d3956bSstephh    error.io.pci.nf-dpe-d@PCIFN/PCIFN;
491b7d3956bSstephh
492b7d3956bSstephhprop fault.io.pci.device-interr-deg@PCIFN (0)->
493b7d3956bSstephh    error.io.pci.deg-dpe-d@PCIFN/PCIFN;
494b7d3956bSstephh
495b7d3956bSstephhprop fault.io.pci.device-interr@PCIFN (0)->
496b7d3956bSstephh    error.io.pci.ta-pw-d@PCIFN/PCIFN,
497b7d3956bSstephh    error.io.pci.ta-drw-d@PCIFN/PCIFN,
498b7d3956bSstephh    error.io.pci.ape-d@PCIFN/PCIFN,
499b7d3956bSstephh    error.io.pcix.scpe-d@PCIFN/PCIFN,
500b7d3956bSstephh    error.io.pci.f-dpe-d@PCIFN/PCIFN;
5017c478bd9Sstevel@tonic-gate
5027c478bd9Sstevel@tonic-gate/*
50300d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
50400d0963fSdilpreet * A faulty PCI bus may cause:
50500d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
50600d0963fSdilpreet *  - ape-d:	address/parity to get corrupted during downstream transmission.
50700d0963fSdilpreet *  - scpe-d:	split completion gets corrupted during downstream transmission.
50800d0963fSdilpreet *  - dpe-d:	data/parity to get corrupted during downstream transmission.
50900d0963fSdilpreet *  - ape-u:	address/parity to get corrupted during upstream transmission.
51000d0963fSdilpreet *  - dpe-u:	data/parity to get corrupted during read upstream transmission.
51100d0963fSdilpreet *  - scpe-u:	split completion to get corrupted during upstream transmission.
5127c478bd9Sstevel@tonic-gate */
5137c478bd9Sstevel@tonic-gate
514b7d3956bSstephhevent fault.io.pci.bus-linkerr-unaf@pcibus,
515b7d3956bSstephh	engine=serd.io.pci.nf-dpe-bus@pcibus, FITrate=PCI_BUS_FIT;
5167c478bd9Sstevel@tonic-gate
517b7d3956bSstephhevent fault.io.pci.bus-linkerr-deg@pcibus, FITrate=PCI_BUS_FIT, retire=0;
518b7d3956bSstephh
519b7d3956bSstephhevent fault.io.pci.bus-linkerr@pcibus, FITrate=PCI_BUS_FIT;
520b7d3956bSstephh
521b7d3956bSstephhprop fault.io.pci.bus-linkerr-unaf@pcibus (0)->
522b7d3956bSstephh    error.io.pci.nf-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
523b7d3956bSstephh    error.io.pci.nf-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32};
524b7d3956bSstephh
525b7d3956bSstephhprop fault.io.pci.bus-linkerr-deg@pcibus (0)->
526b7d3956bSstephh    error.io.pci.deg-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
527b7d3956bSstephh    error.io.pci.deg-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32};
5287c478bd9Sstevel@tonic-gate
52900d0963fSdilpreetprop fault.io.pci.bus-linkerr@pcibus (0)->
53000d0963fSdilpreet    error.io.pci.ape-d@pcibus/pcidev<todev>/pcifn { todev != 32},
53100d0963fSdilpreet    error.io.pci.f-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
53200d0963fSdilpreet    error.io.pci.ape-u@pcibus/pcidev<todev>/pcifn { todev != 32},
53300d0963fSdilpreet    error.io.pci.f-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32},
53400d0963fSdilpreet    error.io.pcix.scpe-d@pcibus/pcidev<todev>/pcifn { todev != 32},
53500d0963fSdilpreet    error.io.pcix.scpe-u@pcibus/pcidev<todev>/pcifn { todev != 32},
53600d0963fSdilpreet    error.io.pcix.tx-oor@pcibus/pcidev<todev>/pcifn { todev != 32},
53700d0963fSdilpreet    error.io.pcix.rx-unex-sc@pcibus/pcidev<todev>/pcifn { todev != 32};
5387c478bd9Sstevel@tonic-gate
5397c478bd9Sstevel@tonic-gate/*
54000d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
54100d0963fSdilpreet * recursive rules for pci-pci bridges
54200d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5437c478bd9Sstevel@tonic-gate */
5447c478bd9Sstevel@tonic-gate
545b7d3956bSstephhevent error.io.pci.serr-u@PCIFN/PCIFN;
546b7d3956bSstephhevent error.io.pci.perr-dw-u@PCIFN/PCIFN;
547b7d3956bSstephhevent error.io.pci.perr-pw-u@PCIFN/PCIFN;
548b7d3956bSstephhevent error.io.pci.perr-d@PCIFN/PCIFN;
549b7d3956bSstephhevent error.io.pci.dpdata-pw-u@PCIFN/PCIFN;
550b7d3956bSstephhevent error.io.pci.dpdata-dw-u@PCIFN/PCIFN;
551b7d3956bSstephhevent error.io.pci.dpdata-dr-u@PCIFN/PCIFN;
552b7d3956bSstephhevent error.io.pci.dpdata-pw-fwd-d@PCIFN;
553b7d3956bSstephhevent error.io.pci.dpdata-pw-fwd-d@PCIFN/PCIFN;
554b7d3956bSstephhevent error.io.pci.dpdata-dw-fwd-d@PCIFN;
555b7d3956bSstephhevent error.io.pci.dpdata-dw-fwd-d@PCIFN/PCIFN;
556b7d3956bSstephhevent error.io.pci.dpdata-dr-fwd-d@PCIFN;
557b7d3956bSstephhevent error.io.pci.dpdata-dr-fwd-d@PCIFN/PCIFN;
558b7d3956bSstephhevent error.io.pci.source-perr-u@PCIFN;
559b7d3956bSstephhevent error.io.pci.leaf-ape-d@PCIFN;
560b7d3956bSstephhevent error.io.pci.ape-u@PCIFN/PCIFN;
561b7d3956bSstephhevent error.io.pci.source-ape-u@PCIFN;
562b7d3956bSstephhevent error.io.pci.badreq-pw-d@PCIFN/PCIFN;
563b7d3956bSstephhevent error.io.pci.badreq-drw-d@PCIFN/PCIFN;
564b7d3956bSstephhevent error.io.pci.badreq-pw-u@PCIFN/PCIFN;
565b7d3956bSstephhevent error.io.pci.badreq-drw-u@PCIFN/PCIFN;
566b7d3956bSstephhevent error.io.pci.ta-d@PCIFN;
567b7d3956bSstephhevent error.io.pci.ta-d@PCIFN/PCIFN;
568b7d3956bSstephhevent error.io.pci.ta-u@PCIFN/PCIFN;
569b7d3956bSstephhevent error.io.pci.target-rta-d@PCIFN;
570b7d3956bSstephhevent error.io.pci.target-ma-d@PCIFN;
571b7d3956bSstephhevent error.io.pci.nr-pw-u@PCIFN/PCIFN;
572b7d3956bSstephhevent error.io.pci.ta-pw-u@PCIFN/PCIFN;
573b7d3956bSstephhevent error.io.pci.retry-to-u@PCIFN/PCIFN;
574b7d3956bSstephhevent error.io.pcix.scpe-u@PCIFN/PCIFN;
575b7d3956bSstephhevent error.io.pcix.source-scpe-u@PCIFN;
576b7d3956bSstephhevent error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN;
577b7d3956bSstephhevent error.io.pcix.spl-comp-ta-u@PCIFN/PCIFN;
578b7d3956bSstephhevent error.io.pci.ma-u@PCIFN/PCIFN;
5797c478bd9Sstevel@tonic-gate
580b7d3956bSstephhevent ereport.io.pci.sec-ma@PCIFN{within(5s)};
581b7d3956bSstephhevent ereport.io.pci.sec-sta@PCIFN{within(5s)};
582b7d3956bSstephhevent ereport.io.pci.sec-rta@PCIFN{within(5s)};
583b7d3956bSstephhevent ereport.io.pci.sec-mdpe@PCIFN{within(5s)};
584b7d3956bSstephhevent ereport.io.pci.sec-dpe@PCIFN{within(5s)};
585b7d3956bSstephhevent ereport.io.pci.sec-rserr@PCIFN{within(5s)};
586b7d3956bSstephhevent ereport.io.pci.dto@PCIFN{within(5s)};
587b7d3956bSstephhevent ereport.io.pcix.sec-spl-dis@PCIFN{within(5s)};
588b7d3956bSstephhevent ereport.io.pcix.spl-dis@PCIFN{within(5s)};
5897c478bd9Sstevel@tonic-gate
5907c478bd9Sstevel@tonic-gate/*
59100d0963fSdilpreet * SERR# can propagate upstream and may be seen by other devices on the bus
5927c478bd9Sstevel@tonic-gate */
59300d0963fSdilpreetprop error.io.pci.serr-u@pcibus/pcidev[fromdev]/pcifn (0)->
59400d0963fSdilpreet    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {todev!=fromdev};
5957c478bd9Sstevel@tonic-gate
596b7d3956bSstephhprop error.io.pci.serr-u@PCIFN { IS_BDG } (1)->
597b7d3956bSstephh    ereport.io.pci.sserr@PCIFN;
5987c478bd9Sstevel@tonic-gate
599b7d3956bSstephhprop error.io.pci.serr-u@PCIFN/PCIFN (2)->
600b7d3956bSstephh    ereport.io.pci.sec-rserr@PCIFN,
601b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
6027c478bd9Sstevel@tonic-gate
60300d0963fSdilpreet/*
60400d0963fSdilpreet * PERR# can propagate upstream for delayed writes. For posted writes
60500d0963fSdilpreet * it turns into an SERR#.
60600d0963fSdilpreet */
607b7d3956bSstephhprop error.io.pci.perr-dw-u@PCIFN/PCIFN (2)->
608b7d3956bSstephh    ereport.io.pci.sec-mdpe@PCIFN,
609b7d3956bSstephh    error.io.pci.perr-dw-u@PCIFN;
61000d0963fSdilpreet
611b7d3956bSstephhprop error.io.pci.perr-pw-u@PCIFN/PCIFN (2)->
612b7d3956bSstephh    ereport.io.pci.sec-mdpe@PCIFN,
613b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
61400d0963fSdilpreet
61500d0963fSdilpreet/*
61600d0963fSdilpreet * PERR# can propagate downstream (only for downstream dw parity error)
61700d0963fSdilpreet */
618b7d3956bSstephhprop error.io.pci.perr-d@PCIFN { IS_LEAF } (0)->
619b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
62000d0963fSdilpreet
621b7d3956bSstephhprop error.io.pci.perr-d@PCIFN { IS_BDG } (1)->
622b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
62300d0963fSdilpreet
624b7d3956bSstephhprop error.io.pci.perr-d@PCIFN (1)->
625b7d3956bSstephh    error.io.pci.perr-d@PCIFN/PCIFNHZ;
62600d0963fSdilpreet
62700d0963fSdilpreet/*
62800d0963fSdilpreet * downstream target ereports are for any descendant device
62900d0963fSdilpreet *
63000d0963fSdilpreet * A hostbridge driver may generate "target-" ereports when knowledge of the
63100d0963fSdilpreet * physical address associated with a fault allows the target device to be
63200d0963fSdilpreet * determined. This is not a requirement of the Diagnosis Engine, but can be
63300d0963fSdilpreet * valuable when available.
63400d0963fSdilpreet */
635b7d3956bSstephhprop error.io.pci.target-mdpe-d@PCIFN (0)->
636b7d3956bSstephh    ereport.io.pci.target-mdpe@PCIFN;
63700d0963fSdilpreet
638b7d3956bSstephhprop error.io.pci.target-mdpe-d@PCIFN (1)->
639b7d3956bSstephh    error.io.pci.target-mdpe-d@PCIFN/PCIFNHZ;
64000d0963fSdilpreet
641b7d3956bSstephhprop error.io.pci.target-rta-d@PCIFN (0)->
642b7d3956bSstephh    ereport.io.pci.target-rta@PCIFN;
64300d0963fSdilpreet
644b7d3956bSstephhprop error.io.pci.target-rta-d@PCIFN (1)->
645b7d3956bSstephh    error.io.pci.target-rta-d@PCIFN/PCIFNHZ;
64600d0963fSdilpreet
647b7d3956bSstephhprop error.io.pci.target-ma-d@PCIFN (0)->
648b7d3956bSstephh    ereport.io.pci.target-ma@PCIFN;
64900d0963fSdilpreet
650b7d3956bSstephhprop error.io.pci.target-ma-d@PCIFN (1)->
651b7d3956bSstephh    error.io.pci.target-ma-d@PCIFN/PCIFNHZ;
65200d0963fSdilpreet
65300d0963fSdilpreet/*
65400d0963fSdilpreet * target aborts propagate upstream
65500d0963fSdilpreet */
656b7d3956bSstephhprop error.io.pci.ta-u@PCIFN { IS_BDG } (1)->
657b7d3956bSstephh    ereport.io.pci.sta@PCIFN;
65800d0963fSdilpreet
659b7d3956bSstephhprop error.io.pci.ta-u@PCIFN { IS_LEAF } (0)->
660b7d3956bSstephh    ereport.io.pci.sta@PCIFN;
66100d0963fSdilpreet
662b7d3956bSstephhprop error.io.pci.ta-u@PCIFN/PCIFN (2)->
663b7d3956bSstephh    ereport.io.pci.sec-rta@PCIFN,
664b7d3956bSstephh    error.io.pci.ta-u@PCIFN;
66500d0963fSdilpreet
66600d0963fSdilpreet/*
66700d0963fSdilpreet * bad data (ie invalid but not an ape or dpe) can propagate downstream,
66800d0963fSdilpreet * and at some point may result in a target or master abort
66900d0963fSdilpreet */
670b7d3956bSstephhprop error.io.pci.badreq-pw-d@PCIFN (1)->
671b7d3956bSstephh    error.io.pci.badreq-pw-d@PCIFN/PCIFNHZ,
672b7d3956bSstephh    error.io.pci.nr-pw-u@PCIFN,
673b7d3956bSstephh    error.io.pci.ta-pw-u@PCIFN;
67400d0963fSdilpreet
675b7d3956bSstephhprop error.io.pci.badreq-pw-d@PCIFN { IS_LEAF } (0)->
676b7d3956bSstephh    error.io.pci.nr-pw-u@PCIFN,
677b7d3956bSstephh    error.io.pci.ta-pw-u@PCIFN;
67800d0963fSdilpreet
679b7d3956bSstephhprop error.io.pci.badreq-drw-d@PCIFN (1)->
680b7d3956bSstephh    error.io.pci.badreq-drw-d@PCIFN/PCIFNHZ,
681b7d3956bSstephh    error.io.pci.nr-drw-u@PCIFN,
682b7d3956bSstephh    error.io.pci.ta-drw-u@PCIFN;
68300d0963fSdilpreet
684b7d3956bSstephhprop error.io.pci.badreq-drw-d@PCIFN { IS_LEAF } (0)->
685b7d3956bSstephh    error.io.pci.nr-drw-u@PCIFN,
686b7d3956bSstephh    error.io.pci.ta-drw-u@PCIFN;
68700d0963fSdilpreet
688b7d3956bSstephhprop error.io.pci.nr-pw-u@PCIFN/PCIFN (2)->
689b7d3956bSstephh    ereport.io.pci.sec-ma@PCIFN,
690b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
69100d0963fSdilpreet
692b7d3956bSstephhprop error.io.pci.ta-pw-u@PCIFN { IS_LEAF } (0)->
693b7d3956bSstephh    ereport.io.pci.sta@PCIFN;
69400d0963fSdilpreet
695b7d3956bSstephhprop error.io.pci.ta-pw-u@PCIFN { IS_BDG } (1)->
696b7d3956bSstephh    ereport.io.pci.sta@PCIFN;
69700d0963fSdilpreet
698b7d3956bSstephhprop error.io.pci.ta-pw-u@PCIFN/PCIFN (2)->
699b7d3956bSstephh    ereport.io.pci.sec-rta@PCIFN,
700b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
70100d0963fSdilpreet
702b7d3956bSstephhprop error.io.pci.nr-drw-u@PCIFN (1)->
703b7d3956bSstephh    error.io.pci.ma-u@PCIFN;
70400d0963fSdilpreet
705b7d3956bSstephhprop error.io.pci.nr-drw-u@PCIFN (1)->
706b7d3956bSstephh    error.io.pci.target-rta-d@PCIFN,
707b7d3956bSstephh    error.io.pci.target-ma-d@PCIFN;
70800d0963fSdilpreet
709b7d3956bSstephhprop error.io.pci.ma-u@PCIFN/PCIFN (1)->
710b7d3956bSstephh    ereport.io.pci.sec-ma@PCIFN;
71100d0963fSdilpreet
712b7d3956bSstephhprop error.io.pci.ma-u@PCIFN/PCIFN (1)->
713b7d3956bSstephh    error.io.pci.ma-u@PCIFN,
714b7d3956bSstephh    error.io.pci.ta-u@PCIFN;
71500d0963fSdilpreet
716b7d3956bSstephhprop error.io.pci.ta-drw-u@PCIFN (1)->
717b7d3956bSstephh    error.io.pci.ta-u@PCIFN;
71800d0963fSdilpreet
719b7d3956bSstephhprop error.io.pci.ta-drw-u@PCIFN (1)->
720b7d3956bSstephh    error.io.pci.target-rta-d@PCIFN;
72100d0963fSdilpreet
72200d0963fSdilpreet/*
72300d0963fSdilpreet * bad data (ie invalid but not an ape or dpe) can propagate upstream,
72400d0963fSdilpreet * and at some point may result in a target or master abort
72500d0963fSdilpreet */
726b7d3956bSstephhprop error.io.pci.badreq-pw-u@PCIFN/PCIFN (1)->
727b7d3956bSstephh    error.io.pci.badreq-pw-u@PCIFN,
728b7d3956bSstephh    error.io.pci.nr-pw-d@PCIFN/PCIFN,
729b7d3956bSstephh    error.io.pci.ta-pw-d@PCIFN/PCIFN;
73000d0963fSdilpreet
731b7d3956bSstephhprop error.io.pci.badreq-pw-u@PCIFN (0)->
732b7d3956bSstephh    error.io.pci.nr-pw-d@PCIFN,
733b7d3956bSstephh    error.io.pci.ta-pw-d@PCIFN;
73400d0963fSdilpreet
735b7d3956bSstephhprop error.io.pci.nr-pw-d@PCIFN { IS_LEAF } (0)->
736b7d3956bSstephh    ereport.io.pci.ma@PCIFN;
73700d0963fSdilpreet
738b7d3956bSstephhprop error.io.pci.nr-pw-d@PCIFN { IS_BDG } (2)->
739b7d3956bSstephh    ereport.io.pci.ma@PCIFN,
740b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
74100d0963fSdilpreet
742b7d3956bSstephhprop error.io.pci.ta-pw-d@PCIFN/PCIFN (1)->
743b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN;
74400d0963fSdilpreet
745b7d3956bSstephhprop error.io.pci.ta-pw-d@PCIFN { IS_LEAF } (0)->
746b7d3956bSstephh    ereport.io.pci.rta@PCIFN;
74700d0963fSdilpreet
748b7d3956bSstephhprop error.io.pci.ta-pw-d@PCIFN { IS_BDG } (2)->
749b7d3956bSstephh    ereport.io.pci.rta@PCIFN,
750b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
75100d0963fSdilpreet
75200d0963fSdilpreet/*
75300d0963fSdilpreet * for delayed writes we treat upstream badreq specially as rta always
75400d0963fSdilpreet * propagates back downstream to the leaf
75500d0963fSdilpreet */
756b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIFN { IS_LEAF } (0)->
757b7d3956bSstephh    ereport.io.pci.rta@PCIFN,
758b7d3956bSstephh    ereport.io.pci.ma@PCIFN;
75900d0963fSdilpreet
760b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (1)->
761b7d3956bSstephh    ereport.io.pci.ma@PCIFN,
762b7d3956bSstephh    ereport.io.pci.rta@PCIFN;
76300d0963fSdilpreet
764b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (0)->
765b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN;
76600d0963fSdilpreet
767b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIFN/PCIFN (0)->
768b7d3956bSstephh    error.io.pci.badreq-drw-u@PCIFN;
76900d0963fSdilpreet
770b7d3956bSstephhprop error.io.pci.nr-drw-d@PCIFN { IS_LEAF } (0)->
771b7d3956bSstephh    ereport.io.pci.ma@PCIFN;
77200d0963fSdilpreet
773b7d3956bSstephhprop error.io.pci.nr-drw-d@PCIFN { IS_BDG } (1)->
774b7d3956bSstephh    ereport.io.pci.ma@PCIFN;
77500d0963fSdilpreet
776b7d3956bSstephhprop error.io.pci.nr-drw-d@PCIFN { IS_BDG } (0)->
777b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN;
77800d0963fSdilpreet
779b7d3956bSstephhprop error.io.pci.nr-drw-d@PCIFN (1)->
780b7d3956bSstephh    error.io.pci.ta-d@PCIFN/PCIFNHZ,
781b7d3956bSstephh    error.io.pci.nr-drw-d@PCIFN/PCIFNHZ;
78200d0963fSdilpreet
783b7d3956bSstephhprop error.io.pci.ta-drw-d@PCIFN/PCIFN (1)->
784b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN;
78500d0963fSdilpreet
786b7d3956bSstephhprop error.io.pci.ta-drw-d@PCIFN (1)->
787b7d3956bSstephh    error.io.pci.ta-d@PCIFN;
78800d0963fSdilpreet
789b7d3956bSstephhprop error.io.pci.ta-d@PCIFN { IS_LEAF } (0)->
790b7d3956bSstephh    ereport.io.pci.rta@PCIFN;
79100d0963fSdilpreet
792b7d3956bSstephhprop error.io.pci.ta-d@PCIFN { IS_BDG } (2)->
793b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN,
794b7d3956bSstephh    ereport.io.pci.rta@PCIFN;
79500d0963fSdilpreet
796b7d3956bSstephhprop error.io.pci.ta-d@PCIFN (1)->
797b7d3956bSstephh    error.io.pci.ta-d@PCIFN/PCIFNHZ;
79800d0963fSdilpreet
79900d0963fSdilpreet/*
80000d0963fSdilpreet * Request with address parity error must be detected by parent device
80100d0963fSdilpreet * and can optionally result in a target or master abort.
80200d0963fSdilpreet * It may also be detected by sibling devices on a bus
80300d0963fSdilpreet */
804b7d3956bSstephhprop error.io.pci.ape-u@PCIFN/PCIFN (3)->
805b7d3956bSstephh    ereport.io.pci.sec-dpe@PCIFN,
806b7d3956bSstephh    ereport.io.pci.sec-rserr@PCIFN,
807b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
80800d0963fSdilpreet
809b7d3956bSstephhprop error.io.pci.ape-u@PCIFN (0)->
810b7d3956bSstephh    error.io.pci.nr-drw-d@PCIFN,
811b7d3956bSstephh    error.io.pci.ta-drw-d@PCIFN,
812b7d3956bSstephh    error.io.pci.nr-pw-d@PCIFN,
813b7d3956bSstephh    error.io.pci.ta-pw-d@PCIFN;
81400d0963fSdilpreet
815b7d3956bSstephhprop error.io.pci.ape-u@PCIFN (0)->
816b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
81700d0963fSdilpreet
81800d0963fSdilpreetprop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)->
81900d0963fSdilpreet    ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<> {fromdev != todev},
82000d0963fSdilpreet    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {fromdev != todev};
82100d0963fSdilpreet
822b7d3956bSstephhprop error.io.pci.ape-u@PCIFN (1)->
823b7d3956bSstephh    error.io.pci.source-ape-u@PCIFN;
82400d0963fSdilpreet
82500d0963fSdilpreet/*
82600d0963fSdilpreet * If the bridge sees an upstream split completion error (pci-x only) it could
82700d0963fSdilpreet * result in a number of things
82800d0963fSdilpreet * - for various faults in the split completion (eg address parity error)
82900d0963fSdilpreet *   we will respond with a target abort (which the child device will treat
83000d0963fSdilpreet *   as a split completion ta)
83100d0963fSdilpreet * - for other faults we can't tell who send the split completion and so
83200d0963fSdilpreet *   just drop the request (which the child device sees as a split
83300d0963fSdilpreet *   completion ma)
83400d0963fSdilpreet */
835b7d3956bSstephhprop error.io.pcix.scpe-u@PCIFN/PCIFN (0)->
836b7d3956bSstephh    ereport.io.pci.sec-sta@PCIFN,
837b7d3956bSstephh    ereport.io.pci.sec-dpe@PCIFN,
838b7d3956bSstephh    ereport.io.pci.sec-rserr@PCIFN,
839b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
84000d0963fSdilpreet
841b7d3956bSstephhprop error.io.pcix.scpe-u@PCIFN (1)->
842b7d3956bSstephh    error.io.pcix.spl-comp-ma-d@PCIFN,
843b7d3956bSstephh    error.io.pcix.spl-comp-ta-d@PCIFN;
84400d0963fSdilpreet
845b7d3956bSstephhprop error.io.pcix.spl-comp-ma-d@PCIFN (1)->
846b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
84700d0963fSdilpreet
848b7d3956bSstephhprop error.io.pcix.spl-comp-ma-d@PCIFN { IS_LEAF } (0)->
849b7d3956bSstephh    ereport.io.pci.sserr@PCIFN,
850b7d3956bSstephh    ereport.io.pcix.spl-dis@PCIFN;
85100d0963fSdilpreet
852b7d3956bSstephhprop error.io.pcix.spl-comp-ma-d@PCIFN { IS_BDG } (2)->
853b7d3956bSstephh    ereport.io.pcix.spl-dis@PCIFN,
854b7d3956bSstephh    ereport.io.pci.ma@PCIFN;
85500d0963fSdilpreet
856b7d3956bSstephhprop error.io.pcix.spl-comp-ta-d@PCIFN (1)->
857b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
85800d0963fSdilpreet
859b7d3956bSstephhprop error.io.pcix.spl-comp-ta-d@PCIFN { IS_LEAF } (0)->
860b7d3956bSstephh    ereport.io.pci.sserr@PCIFN,
861b7d3956bSstephh    ereport.io.pcix.spl-dis@PCIFN;
86200d0963fSdilpreet
863b7d3956bSstephhprop error.io.pcix.spl-comp-ta-d@PCIFN { IS_BDG } (2)->
864b7d3956bSstephh    ereport.io.pcix.spl-dis@PCIFN,
865b7d3956bSstephh    ereport.io.pci.rta@PCIFN;
86600d0963fSdilpreet
867b7d3956bSstephhprop error.io.pcix.scpe-u@PCIFN (1)->
868b7d3956bSstephh    error.io.pcix.source-scpe-u@PCIFN;
86900d0963fSdilpreet
87000d0963fSdilpreet/*
87100d0963fSdilpreet * request with address parity error must be detected by child device
87200d0963fSdilpreet * and can optionally result in a target or master abort.
87300d0963fSdilpreet */
874b7d3956bSstephhprop error.io.pci.ape-d@PCIFN (1)->
875b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
87600d0963fSdilpreet
877b7d3956bSstephhprop error.io.pci.ape-d@PCIFN { IS_LEAF } (0)->
878b7d3956bSstephh    error.io.pci.leaf-ape-d@PCIFN;
87900d0963fSdilpreet
880b7d3956bSstephhprop error.io.pci.leaf-ape-d@PCIFN { IS_LEAF } (2)->
881b7d3956bSstephh    ereport.io.pci.sserr@PCIFN,
882b7d3956bSstephh    ereport.io.pci.dpe@PCIFN;
88300d0963fSdilpreet
884b7d3956bSstephhprop error.io.pci.ape-d@PCIFN { IS_BDG } (1)->
885b7d3956bSstephh    ereport.io.pci.dpe@PCIFN;
88600d0963fSdilpreet
887b7d3956bSstephhprop error.io.pci.ape-d@PCIFN (0)->
888b7d3956bSstephh    error.io.pci.ta-pw-u@PCIFN,
889b7d3956bSstephh    error.io.pci.ta-drw-u@PCIFN,
890b7d3956bSstephh    error.io.pci.nr-pw-u@PCIFN,
891b7d3956bSstephh    error.io.pci.nr-drw-u@PCIFN;
89200d0963fSdilpreet
89300d0963fSdilpreet/*
89400d0963fSdilpreet * If the device sees a downstream split completion error (pci-x only) it could
89500d0963fSdilpreet * result in a number of things
89600d0963fSdilpreet * - for various faults in the split completion (eg address parity error)
89700d0963fSdilpreet *   we will respond with a target abort (which the parent bridge will treat
89800d0963fSdilpreet *   as a split completion ta)
89900d0963fSdilpreet * - for other faults we can't tell who send the split completion and so
90000d0963fSdilpreet *   just drop the request (which the parent bridge sees as a split
90100d0963fSdilpreet *   completion ma)
90200d0963fSdilpreet */
903b7d3956bSstephhprop error.io.pcix.scpe-d@PCIFN (0)->
904b7d3956bSstephh    ereport.io.pci.sta@PCIFN,
905b7d3956bSstephh    ereport.io.pci.dpe@PCIFN,
906b7d3956bSstephh    ereport.io.pci.sserr@PCIFN,
907b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
90800d0963fSdilpreet
909b7d3956bSstephhprop error.io.pcix.scpe-d@PCIFN (1)->
910b7d3956bSstephh    error.io.pcix.spl-comp-ma-u@PCIFN,
911b7d3956bSstephh    error.io.pcix.spl-comp-ta-u@PCIFN;
91200d0963fSdilpreet
913b7d3956bSstephhprop error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN (2)->
914b7d3956bSstephh    ereport.io.pcix.sec-spl-dis@PCIFN,
915b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
9168aec9182Sstephh
917b7d3956bSstephhprop error.io.pcix.spl-comp-ma-u@PCIFN/PCIFN (0)->
918b7d3956bSstephh    ereport.io.pci.sec-ma@PCIFN;
91900d0963fSdilpreet
920b7d3956bSstephhprop error.io.pcix.spl-comp-ta-u@PCIFN/PCIFN (3)->
921b7d3956bSstephh    ereport.io.pcix.sec-spl-dis@PCIFN,
922b7d3956bSstephh    error.io.pci.serr-u@PCIFN,
923b7d3956bSstephh    ereport.io.pci.sec-rta@PCIFN;
92400d0963fSdilpreet
92500d0963fSdilpreet/*
92600d0963fSdilpreet * request with data parity error can propagate upstream
92700d0963fSdilpreet *
92800d0963fSdilpreet * for PCI/X (but not PCI) the split write can optionally be forwarded across
92900d0963fSdilpreet * the bridge, maintaining bad parity/ecc
93000d0963fSdilpreet *
93100d0963fSdilpreet * if there is a dpe on a retry on a delayed write, we don't send another
93200d0963fSdilpreet * retry, and eventually the dto timer will expire
93300d0963fSdilpreet */
934b7d3956bSstephhprop error.io.pci.dpdata-pw-u@PCIFN { IS_LEAF } (0)->
935b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
93600d0963fSdilpreet
937b7d3956bSstephhprop error.io.pci.dpdata-pw-u@PCIFN/PCIFN (3)->
938b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN,
939b7d3956bSstephh    ereport.io.pci.sec-dpe@PCIFN,
940b7d3956bSstephh    error.io.pci.dpdata-pw-u@PCIFN;
94100d0963fSdilpreet
942b7d3956bSstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (1)->
943b7d3956bSstephh    ereport.io.pci.sec-dpe@PCIFN;
9447c478bd9Sstevel@tonic-gate
945b7d3956bSstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (0)->
946b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN,
947b7d3956bSstephh    error.io.pci.dpdata-dw-u@PCIFN;
9487c478bd9Sstevel@tonic-gate
949b7d3956bSstephhprop error.io.pci.dpdata-dw-u@PCIFN/PCIFN (0)->
950b7d3956bSstephh    error.io.pci.retry-to-u@PCIFN/PCIFN;
95100d0963fSdilpreet
952b7d3956bSstephhprop error.io.pci.dpdata-dr-u@PCIFN/PCIFN (3)->
953b7d3956bSstephh    ereport.io.pci.sec-dpe@PCIFN,
954b7d3956bSstephh    ereport.io.pci.sec-mdpe@PCIFN,
955b7d3956bSstephh    error.io.pci.dpdata-dr-u@PCIFN;
9567c478bd9Sstevel@tonic-gate
9577c478bd9Sstevel@tonic-gate/*
95800d0963fSdilpreet * Request with data parity error can propagate downstream. A hardened
95900d0963fSdilpreet * leaf driver should handle the error, but may or may not be able to
96000d0963fSdilpreet * avoid service impact. We handle to two cases separately. If there is
96100d0963fSdilpreet * service impact we will fail immediately, if not we will feed into a SERD
96200d0963fSdilpreet * engine.
9637c478bd9Sstevel@tonic-gate *
96400d0963fSdilpreet * for PCI/X (but not PCI) the split write can optionally be forwarded across
96500d0963fSdilpreet * the bridge, maintaining bad parity/ecc
96600d0963fSdilpreet *
96700d0963fSdilpreet * if there is a dpe on a retry on a delayed write, we don't send another
96800d0963fSdilpreet * retry, and eventually the dto timer will expire
9697c478bd9Sstevel@tonic-gate */
970b7d3956bSstephhprop error.io.pci.f-dpe-d@PCIFN (1)->
971b7d3956bSstephh    error.io.pci.dpdata-pw-d@PCIFN,
972b7d3956bSstephh    error.io.pci.dpdata-dw-d@PCIFN,
973b7d3956bSstephh    error.io.pci.dpdata-dr-d@PCIFN;
9747c478bd9Sstevel@tonic-gate
975b7d3956bSstephhprop error.io.pci.f-dpe-d@PCIFN (1)->
976b7d3956bSstephh    error.io.pci.f-source-dpdata-u@PCIFN;
9777c478bd9Sstevel@tonic-gate
978b7d3956bSstephhprop error.io.pci.deg-dpe-d@PCIFN (1)->
979b7d3956bSstephh    error.io.pci.dpdata-pw-d@PCIFN,
980b7d3956bSstephh    error.io.pci.dpdata-dw-d@PCIFN,
981b7d3956bSstephh    error.io.pci.dpdata-dr-d@PCIFN;
98200d0963fSdilpreet
983b7d3956bSstephhprop error.io.pci.deg-dpe-d@PCIFN (1)->
984b7d3956bSstephh    error.io.pci.deg-source-dpdata-u@PCIFN;
98500d0963fSdilpreet
986b7d3956bSstephhprop error.io.pci.nf-dpe-d@PCIFN (1)->
987b7d3956bSstephh    error.io.pci.dpdata-pw-d@PCIFN,
988b7d3956bSstephh    error.io.pci.dpdata-dw-d@PCIFN,
989b7d3956bSstephh    error.io.pci.dpdata-dr-d@PCIFN;
99000d0963fSdilpreet
991b7d3956bSstephhprop error.io.pci.nf-dpe-d@PCIFN (1)->
992b7d3956bSstephh    error.io.pci.nf-source-dpdata-u@PCIFN;
99300d0963fSdilpreet
994b7d3956bSstephhprop error.io.pci.dpdata-pw-d@PCIFN (2)->
995b7d3956bSstephh    error.io.pci.perr-pw-u@PCIFN,
996b7d3956bSstephh    error.io.pci.dpdata-pw-fwd-d@PCIFN;
99700d0963fSdilpreet
998b7d3956bSstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_LEAF } (1)->
999b7d3956bSstephh    error.io.pci.source-perr-u@PCIFN;
100000d0963fSdilpreet
1001b7d3956bSstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_LEAF } (0)->
1002b7d3956bSstephh    ereport.io.pci.dpe@PCIFN;
100300d0963fSdilpreet
1004b7d3956bSstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN { IS_BDG } (2)->
1005b7d3956bSstephh    ereport.io.pci.dpe@PCIFN,
1006b7d3956bSstephh    ereport.io.pci.sec-mdpe@PCIFN;
100700d0963fSdilpreet
1008b7d3956bSstephhprop error.io.pci.dpdata-pw-fwd-d@PCIFN (1)->
1009b7d3956bSstephh    error.io.pci.dpdata-pw-fwd-d@PCIFN/PCIFNHZ;
101000d0963fSdilpreet
1011b7d3956bSstephhprop error.io.pci.dpdata-dw-d@PCIFN (3)->
1012b7d3956bSstephh    error.io.pci.perr-dw-u@PCIFN,
1013b7d3956bSstephh    error.io.pci.target-mdpe-d@PCIFN,
1014b7d3956bSstephh    error.io.pci.dpdata-dw-fwd-d@PCIFN;
101500d0963fSdilpreet
1016b7d3956bSstephhprop error.io.pci.dpdata-dw-d@PCIFN { IS_BDG } (1)->
1017b7d3956bSstephh    ereport.io.pci.dpe@PCIFN;
101800d0963fSdilpreet
1019b7d3956bSstephhprop error.io.pci.dpdata-dw-d@PCIFN { IS_BDG } (0)->
1020b7d3956bSstephh    error.io.pci.retry-to-d@PCIFN;
102100d0963fSdilpreet
1022b7d3956bSstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_LEAF } (1)->
1023b7d3956bSstephh    error.io.pci.source-perr-u@PCIFN;
102400d0963fSdilpreet
1025b7d3956bSstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_LEAF } (0)->
1026b7d3956bSstephh    ereport.io.pci.dpe@PCIFN;
102700d0963fSdilpreet
1028b7d3956bSstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN { IS_BDG } (0)->
1029b7d3956bSstephh    ereport.io.pci.dpe@PCIFN,
1030b7d3956bSstephh    ereport.io.pci.sec-mdpe@PCIFN;
103100d0963fSdilpreet
1032b7d3956bSstephhprop error.io.pci.dpdata-dw-fwd-d@PCIFN (0)->
1033b7d3956bSstephh    error.io.pci.dpdata-dw-fwd-d@PCIFN/PCIFNHZ;
103400d0963fSdilpreet
1035b7d3956bSstephhprop error.io.pci.dpdata-dr-d@PCIFN (2)->
1036b7d3956bSstephh    error.io.pci.dpdata-dr-fwd-d@PCIFN,
1037b7d3956bSstephh    error.io.pci.perr-dr-u@PCIFN;
103800d0963fSdilpreet
1039b7d3956bSstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_LEAF } (1)->
1040b7d3956bSstephh    error.io.pci.source-perr-u@PCIFN;
104100d0963fSdilpreet
1042b7d3956bSstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_LEAF } (0)->
1043b7d3956bSstephh    ereport.io.pci.dpe@PCIFN,
1044b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
104500d0963fSdilpreet
1046b7d3956bSstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN { IS_BDG } (2)->
1047b7d3956bSstephh    ereport.io.pci.dpe@PCIFN,
1048b7d3956bSstephh    ereport.io.pci.mdpe@PCIFN;
104900d0963fSdilpreet
1050b7d3956bSstephhprop error.io.pci.dpdata-dr-fwd-d@PCIFN (1)->
1051b7d3956bSstephh    error.io.pci.dpdata-dr-fwd-d@PCIFN/PCIFNHZ;
10527c478bd9Sstevel@tonic-gate
10537c478bd9Sstevel@tonic-gate/*
105400d0963fSdilpreet * delayed read/write retry timeout can cause dto at a bridge
105500d0963fSdilpreet */
1056b7d3956bSstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (0)->
1057b7d3956bSstephh    error.io.pci.retry-to-u@PCIFN;
105800d0963fSdilpreet
1059b7d3956bSstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (1)->
1060b7d3956bSstephh    ereport.io.pci.dto@PCIFN;
106100d0963fSdilpreet
1062b7d3956bSstephhprop error.io.pci.retry-to-u@PCIFN/PCIFN (0)->
1063b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
106400d0963fSdilpreet
1065b7d3956bSstephhprop error.io.pci.retry-to-d@PCIFN (0)->
1066b7d3956bSstephh    error.io.pci.retry-to-d@PCIFN/PCIFN;
106700d0963fSdilpreet
1068b7d3956bSstephhprop error.io.pci.retry-to-d@PCIFN { IS_BDG } (1)->
1069b7d3956bSstephh    ereport.io.pci.dto@PCIFN;
107000d0963fSdilpreet
1071b7d3956bSstephhprop error.io.pci.retry-to-d@PCIFN { IS_BDG } (0)->
1072b7d3956bSstephh    error.io.pci.serr-u@PCIFN;
107300d0963fSdilpreet
107400d0963fSdilpreet/*
107500d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
107600d0963fSdilpreet * source- propagations.
107700d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
107800d0963fSdilpreet */
1079b7d3956bSstephhevent error.io.pci.source-ape-u@PCIFN/PCIFN;
1080b7d3956bSstephhevent error.io.pcix.source-scpe-u@PCIFN/PCIFN;
108100d0963fSdilpreet
1082b7d3956bSstephhprop error.io.pci.source-ape-u@PCIFN (1)->
1083b7d3956bSstephh    error.io.pci.source-ape-u@PCIFN/PCIFNHZ;
108400d0963fSdilpreet
1085b7d3956bSstephhprop error.io.pcix.source-scpe-u@PCIFN (1)->
1086b7d3956bSstephh    error.io.pcix.source-scpe-u@PCIFN/PCIFNHZ;
108700d0963fSdilpreet
108800d0963fSdilpreet/*
108900d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
109000d0963fSdilpreet * Handling of leaf driver detected internal errors. Use serd engine if
109100d0963fSdilpreet * no service impact - otherwise fail immediately
109200d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
109300d0963fSdilpreet */
1094b7d3956bSstephhevent ereport.io.device.inval_state@PCIFN{within(5s)};
1095b7d3956bSstephhevent ereport.io.device.no_response@PCIFN{within(5s)};
1096b7d3956bSstephhevent ereport.io.device.stall@PCIFN{within(5s)};
1097b7d3956bSstephhevent ereport.io.device.badint_limit@PCIFN{within(5s)};
1098b7d3956bSstephhevent ereport.io.device.intern_corr@PCIFN{within(5s)};
1099b7d3956bSstephhevent ereport.io.device.intern_uncorr@PCIFN{within(5s)};
110000d0963fSdilpreet
1101b7d3956bSstephhprop error.io.service.restored@PCIFN { IS_LEAF } (1)->
1102b7d3956bSstephh    ereport.io.service.lost@PCIFN,
1103b7d3956bSstephh    ereport.io.service.degraded@PCIFN;
110400d0963fSdilpreet
1105b7d3956bSstephhprop error.io.service.restored@PCIFN { IS_LEAF } (1)->
1106b7d3956bSstephh    ereport.io.service.restored@PCIFN;
110700d0963fSdilpreet
1108b7d3956bSstephhprop error.io.device.f-device@PCIFN { IS_LEAF } (1)->
1109b7d3956bSstephh    ereport.io.device.inval_state@PCIFN,
1110b7d3956bSstephh    ereport.io.device.no_response@PCIFN,
1111b7d3956bSstephh    ereport.io.device.stall@PCIFN,
1112b7d3956bSstephh    ereport.io.device.badint_limit@PCIFN,
1113b7d3956bSstephh    ereport.io.device.intern_corr@PCIFN,
1114b7d3956bSstephh    ereport.io.device.intern_uncorr@PCIFN;
111500d0963fSdilpreet
1116b7d3956bSstephhprop error.io.device.f-device@PCIFN { IS_LEAF } (1)->
1117b7d3956bSstephh    ereport.io.service.lost@PCIFN;
111800d0963fSdilpreet
1119b7d3956bSstephhprop error.io.device.deg-device@PCIFN { IS_LEAF } (1)->
1120b7d3956bSstephh    ereport.io.device.inval_state@PCIFN,
1121b7d3956bSstephh    ereport.io.device.no_response@PCIFN,
1122b7d3956bSstephh    ereport.io.device.stall@PCIFN,
1123b7d3956bSstephh    ereport.io.device.badint_limit@PCIFN,
1124b7d3956bSstephh    ereport.io.device.intern_corr@PCIFN,
1125b7d3956bSstephh    ereport.io.device.intern_uncorr@PCIFN;
112600d0963fSdilpreet
1127b7d3956bSstephhprop error.io.device.deg-device@PCIFN { IS_LEAF } (1)->
1128b7d3956bSstephh    ereport.io.service.degraded@PCIFN;
112900d0963fSdilpreet
1130b7d3956bSstephhprop error.io.device.nf-device@PCIFN { IS_LEAF } (1)->
1131b7d3956bSstephh    ereport.io.device.inval_state@PCIFN,
1132b7d3956bSstephh    ereport.io.device.no_response@PCIFN,
1133b7d3956bSstephh    ereport.io.device.stall@PCIFN,
1134b7d3956bSstephh    ereport.io.device.badint_limit@PCIFN,
1135b7d3956bSstephh    ereport.io.device.intern_corr@PCIFN,
1136b7d3956bSstephh    ereport.io.device.intern_uncorr@PCIFN;
113700d0963fSdilpreet
1138b7d3956bSstephhprop error.io.device.nf-device@PCIFN { IS_LEAF } (1)->
1139b7d3956bSstephh    ereport.io.service.unaffected@PCIFN,
1140b7d3956bSstephh    error.io.service.restored@PCIFN;
114100d0963fSdilpreet
114200d0963fSdilpreet/*
114300d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
114400d0963fSdilpreet * stub unused ereports
114500d0963fSdilpreet * - ignore rx-spl as we can't tell what message it was (and we should have
114600d0963fSdilpreet *   diagnosed the problem anyway from standard pci ereports)
114700d0963fSdilpreet * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info)
114800d0963fSdilpreet * - ignore unex-spl/sec-unex-spl
114900d0963fSdilpreet * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe)
115000d0963fSdilpreet * - ignore ecc.ce ereports for now (could do serd on these)
115100d0963fSdilpreet * - ignore nr ereport
115200d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11537c478bd9Sstevel@tonic-gate */
11547c478bd9Sstevel@tonic-gate
1155b7d3956bSstephhevent ereport.io.pci.nr@PCIFN{within(5s)};
1156b7d3956bSstephhevent ereport.io.pcix.unex-spl@PCIFN{within(5s)};
1157b7d3956bSstephhevent ereport.io.pcix.rx-spl@PCIFN{within(5s)};
1158b7d3956bSstephhevent ereport.io.pcix.sec-unex-spl@PCIFN{within(5s)};
1159b7d3956bSstephhevent ereport.io.pcix.sec-spl-or@PCIFN{within(5s)};
1160b7d3956bSstephhevent ereport.io.pcix.sec-spl-dly@PCIFN{within(5s)};
1161b7d3956bSstephhevent ereport.io.pcix.ecc.ce-addr@PCIFN{within(5s)};
1162b7d3956bSstephhevent ereport.io.pcix.ecc.ce-attr@PCIFN{within(5s)};
1163b7d3956bSstephhevent ereport.io.pcix.ecc.ce-data@PCIFN{within(5s)};
1164b7d3956bSstephhevent ereport.io.pcix.ecc.ue-addr@PCIFN{within(5s)};
1165b7d3956bSstephhevent ereport.io.pcix.ecc.ue-attr@PCIFN{within(5s)};
1166b7d3956bSstephhevent ereport.io.pcix.ecc.ue-data@PCIFN{within(5s)};
1167b7d3956bSstephhevent ereport.io.pcix.s-ce@PCIFN{within(5s)};
1168b7d3956bSstephhevent ereport.io.pcix.s-ue@PCIFN{within(5s)};
1169b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-addr@PCIFN{within(5s)};
1170b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-attr@PCIFN{within(5s)};
1171b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-data@PCIFN{within(5s)};
1172b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-addr@PCIFN{within(5s)};
1173b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-attr@PCIFN{within(5s)};
1174b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-data@PCIFN{within(5s)};
1175b7d3956bSstephhevent ereport.io.pcix.sec-s-ce@PCIFN{within(5s)};
1176b7d3956bSstephhevent ereport.io.pcix.sec-s-ue@PCIFN{within(5s)};
11777c478bd9Sstevel@tonic-gate
1178b7d3956bSstephhevent upset.io.pcix.discard@PCIFN;
117900d0963fSdilpreet
1180b7d3956bSstephhprop upset.io.pcix.discard@PCIFN (1)->
1181b7d3956bSstephh    ereport.io.pci.nr@PCIFN,
1182b7d3956bSstephh    ereport.io.pcix.rx-spl@PCIFN,
1183b7d3956bSstephh    ereport.io.pcix.unex-spl@PCIFN,
1184b7d3956bSstephh    ereport.io.pcix.sec-unex-spl@PCIFN,
1185b7d3956bSstephh    ereport.io.pcix.sec-spl-or@PCIFN,
1186b7d3956bSstephh    ereport.io.pcix.sec-spl-dly@PCIFN,
1187b7d3956bSstephh    ereport.io.pcix.ecc.ce-addr@PCIFN,
1188b7d3956bSstephh    ereport.io.pcix.ecc.ce-attr@PCIFN,
1189b7d3956bSstephh    ereport.io.pcix.ecc.ce-data@PCIFN,
1190b7d3956bSstephh    ereport.io.pcix.ecc.ue-addr@PCIFN,
1191b7d3956bSstephh    ereport.io.pcix.ecc.ue-attr@PCIFN,
1192b7d3956bSstephh    ereport.io.pcix.ecc.ue-data@PCIFN,
1193b7d3956bSstephh    ereport.io.pcix.s-ce@PCIFN,
1194b7d3956bSstephh    ereport.io.pcix.s-ue@PCIFN,
1195b7d3956bSstephh    ereport.io.pcix.sec-ecc.ce-addr@PCIFN,
1196b7d3956bSstephh    ereport.io.pcix.sec-ecc.ce-attr@PCIFN,
1197b7d3956bSstephh    ereport.io.pcix.sec-ecc.ce-data@PCIFN,
1198b7d3956bSstephh    ereport.io.pcix.sec-ecc.ue-addr@PCIFN,
1199b7d3956bSstephh    ereport.io.pcix.sec-ecc.ue-attr@PCIFN,
1200b7d3956bSstephh    ereport.io.pcix.sec-ecc.ue-data@PCIFN,
1201b7d3956bSstephh    ereport.io.pcix.sec-s-ce@PCIFN,
1202b7d3956bSstephh    ereport.io.pcix.sec-s-ue@PCIFN;
1203