1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#pragma ident	"%Z%%M%	%I%	%E% SMI"
28
29#pragma dictionary "PCI"
30
31#define PCI_DEV_FIT 1000
32#define PCI_BUS_FIT 500
33
34asru pcibus/pcidev/pcifn;
35fru pcibus/pcidev;
36
37/*
38 * Faulty PCI device
39 */
40event fault.io.pci.device@pcibus/pcidev/pcifn,
41        FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn;
42
43event error.io.pci.tx-ma@pcibus/pcidev/pcifn;
44event error.io.pci.rx-ma@pcibus/pcidev/pcifn;
45event error.io.pci.tx-serr@pcibus/pcidev/pcifn;
46event error.io.pci.serr@pcibus;
47event error.io.pci.rx-ta@pcibus/pcidev/pcifn;
48event error.io.pci.tx-dpe@pcibus/pcidev/pcifn;
49event error.io.pci.tx-wdpe@pcibus/pcidev/pcifn;
50event error.io.pci.rec-ma@pcibus/pcidev/pcifn;
51event error.io.pci.rec-ta@pcibus/pcidev/pcifn;
52event error.io.pci.rec-mdpe@pcibus/pcidev/pcifn;
53event error.io.pci.tx-pma@pcibus/pcidev/pcifn;
54event error.io.pci.tx-dma@pcibus/pcidev/pcifn;
55event error.io.pci.tx-rdpe@pcibus/pcidev/pcifn;
56event error.io.pci.tx-pwdpe@pcibus/pcidev/pcifn;
57event error.io.pci.tx-dwdpe@pcibus/pcidev/pcifn;
58event error.io.pci.bdg-tx-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
59event error.io.pci.bdg-tx-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
60event error.io.pci.bdg-tx-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
61event error.io.pci.bdg-tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
62event error.io.pci.bdg-tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
63event error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
64event error.io.pci.sta@pcibus/pcidev/pcifn;
65event error.io.pci.rx-pma@pcibus/pcidev/pcifn;
66event error.io.pci.rx-dma@pcibus/pcidev/pcifn;
67event error.io.pci.sec-tx-ta@pcibus/pcidev/pcifn;
68event error.io.pci.sec-rx-pta@pcibus/pcidev/pcifn;
69event error.io.pci.sec-rx-dta@pcibus/pcidev/pcifn;
70event error.io.pci.rx-pta@pcibus/pcidev/pcifn;
71event error.io.pci.tx-pta@pcibus/pcidev/pcifn;
72event error.io.pci.rx-dta@pcibus/pcidev/pcifn;
73event error.io.pci.bdg-rx-dpe@pcibus/pcidev/pcifn;
74event error.io.pci.sec-rx-dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
75event error.io.pci.bdg-pwdpe@pcibus/pcidev/pcifn;
76event error.io.pci.bdg-dwdpe@pcibus/pcidev/pcifn;
77event error.io.pci.rx-rdpe@pcibus/pcidev/pcifn;
78event error.io.pci.rx-wdpe@pcibus/pcidev/pcifn;
79event error.io.pci.sec-rx-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
80event error.io.pci.sec-target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
81event error.io.pci.sec-target-ma@pcibus/pcidev/pcifn;
82event error.io.pci.sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
83event error.io.pci.tx-ape@pcibus/pcidev/pcifn;
84event error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn;
85event error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
86event error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
87event error.io.pcix.tx-oor@pcibus/pcidev/pcifn;
88event error.io.pcix.rx-discard@pcibus/pcidev/pcifn;
89event error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn;
90
91event ereport.io.pci.dto@pcibus/pcidev/pcifn{within(5s)};
92event ereport.io.pci.target-ma@pcibus/pcidev/pcifn{within(5s)};
93event ereport.io.pci.target-ma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
94event ereport.io.pci.ma@pcibus/pcidev/pcifn{within(5s)};
95event ereport.io.pci.ma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
96event ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn{within(5s)};
97event ereport.io.pci.sserr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
98event ereport.io.pci.sec-ma@pcibus/pcidev/pcifn{within(5s)};
99event ereport.io.pci.sserr@pcibus/pcidev/pcifn{within(5s)};
100event ereport.io.pci.rta@pcibus/pcidev/pcifn{within(5s)};
101event ereport.io.pci.target-rta@pcibus/pcidev/pcifn{within(5s)};
102event ereport.io.pci.sta@pcibus/pcidev/pcifn{within(5s)};
103event ereport.io.pci.dpe@pcibus/pcidev/pcifn{within(5s)};
104event ereport.io.pci.mdpe@pcibus/pcidev/pcifn{within(5s)};
105event ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn{within(5s)};
106event ereport.io.pci.sec-sta@pcibus/pcidev/pcifn{within(5s)};
107event ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
108event ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
109event ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
110event ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
111event ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn{within(5s)};
112event ereport.io.pci.sec-rta@pcibus/pcidev/pcifn{within(5s)};
113event ereport.io.pci.target-rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
114event ereport.io.pci.sta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
115event ereport.io.pcix.oor@pcibus/pcidev/pcifn;
116event ereport.io.pcix.discard@pcibus/pcidev/pcifn;
117event ereport.io.pcix.unex-sc@pcibus/pcidev/pcifn;
118
119/*
120 * A faulty PCI device may cause:
121 *
122 *  - tx-ma:	the device to not respond to a valid request.
123 *  - rx-ma:	the device to issue an errant address.
124 *  - tx-serr:	the device to signal an serr.
125 *  - rx-ta:	the device to receive a target abort from an unhappy target.
126 *  - tx-dpe:	the device to trasmit data data and/or parity.
127 *  - tx-ape:	address/parity to get corrupted during transmission -
128 *		only the serr is a must - sserr/dpe will show up if
129 *		target driver is hardened. In addition the target could target
130 *		abort or master abort.
131 *
132 * A fault PCI-X device may cause:
133 *
134 *  - tx-oor:	the device sends a byte count larger than the completers
135 *           	address range.
136 *  - tx-discard a DMA split completion received a master abort or a
137 *		target abort which caused the device to discard the
138 *		split completion
139 *  - rx-unex-sc the device recieved a split completion with a tag
140 * 		which does not match any outstanding transaction.
141 *
142 * NOTE: The rules below are for pci-pci bridge support
143 *
144 *  - tx-pma:	the device not to respond to a posted request across a bridge.
145 *  - tx-dma:	the device not to respond to a delayed request across a bridge.
146 *  - rx-pta:	the device to receive a target abort from a posted transaction
147 *		across a bridge.
148 *  - rx-dta:	the device to receive a target abort from a delayed transaction
149 *		across a bridge.
150 *  - tx-ape-bdg:	address/parity to get corrupted during transmission.
151 *		Must see serr/serr/dpe. In addition the pci-pci bridge
152 * 		could target abort or master abort or let the request through
153 *		to the secondary bus causing an ape there.
154 *  - tx-rdpe:	the device to transfer bad data and/or bad parity during a read
155 *		request to a bridge.
156 *  - tx-pwdpe:	the device to transfer bad data and/or bad parity during a
157 *		posted write request to a bridge.
158 *  - tx-dwdpe: the device to transfer bad data and/or bad parity during a
159 *		delayed write request to a bridge.
160 *
161 * NOTE: The rules below are specifically for the pci-pci bridge, in which it
162 * sends incorrect data/parity when receiving correct data/parity.
163 *
164 *  - bdg-tx-ape:	address/parity to get corrupted during transmission
165 *			on the primary side bus. Must see sserr/dpe/rec_serr.
166 *			In addition the hostbridge could target abort
167 *			or master abort and if this was a delayed access
168 *			we could get target abort propagated to secondary bus.
169 *  - bdg-tx-dwdpe:	the bridge sends bad data/parity during a delayed write
170 *			request to the primary side bus.
171 *  - bdg-tx-pwdpe:	the bridge sends bad data/parity during a posted write
172 *			request to the primary side bus.
173 *  - bdg-tx-rdpe:	the bridge sends bad data/parity during a read request
174 *			to the primary side bus.
175 *  - bdg-tx-sec-ape:	address/parity to get corrupted during transmission
176 *			on the secondary side bus. Only the sec-rserr/sserr/
177 *			serr *must* happen. In addition any hardened leaf
178 *			driver on the secondary bus that detects the ape will
179 *			report sserr/dpe. Also the target device can target
180 *			abort or master abort.
181 *  - bdg-tx-sec-rdpe:	the bridge sends bad data/parity during a read request
182 *			to the secondary side bus.
183 *  - bdg-tx-sec-pwdpe: the bridge sends bad data/parity during a posted write
184 *			request to the secondary side bus.
185 *  - bdg-tx-sec-dwdpe: the bridge sends bad data/parity during a delayed write
186 *			request to the secondary side bus.
187 *
188 *  - dto:	the device could exceed the timeout alloted for a delayed
189 *		transaction, causing the bridge to signal a discard timeout.
190 */
191prop fault.io.pci.device@pcibus/pcidev/pcifn (0)->
192    error.io.pci.tx-ma@pcibus/pcidev/pcifn,
193    error.io.pci.rx-ma@pcibus/pcidev/pcifn,
194    error.io.pci.tx-serr@pcibus/pcidev/pcifn,
195    error.io.pci.rx-ta@pcibus/pcidev/pcifn,
196    error.io.pci.tx-ape@pcibus/pcidev/pcifn,
197    error.io.pci.tx-dpe@pcibus/pcidev/pcifn,
198    error.io.pcix.rx-discard@pcibus/pcidev/pcifn,
199    error.io.pcix.tx-oor@pcibus/pcidev/pcifn,
200    error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn,
201    ereport.io.pci.dto@pcibus/pcidev<>/pcifn<>;
202
203prop fault.io.pci.device@pcibus/pcidev/pcifn (0)->
204    error.io.pci.tx-pma@pcibus/pcidev/pcifn,
205    error.io.pci.tx-dma@pcibus/pcidev/pcifn,
206    error.io.pci.rx-pta@pcibus/pcidev/pcifn,
207    error.io.pci.rx-dta@pcibus/pcidev/pcifn,
208    error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn,
209    error.io.pci.tx-rdpe@pcibus/pcidev/pcifn,
210    error.io.pci.tx-pwdpe@pcibus/pcidev/pcifn,
211    error.io.pci.tx-dwdpe@pcibus/pcidev/pcifn;
212
213prop fault.io.pci.device@pcibus/pcidev/pcifn (0)->
214    error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
215    error.io.pci.bdg-tx-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
216    error.io.pci.bdg-tx-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
217    error.io.pci.bdg-tx-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
218    error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
219    error.io.pci.bdg-tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
220    error.io.pci.bdg-tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
221    error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
222
223prop error.io.pci.tx-ma@pcibus/pcidev/pcifn (1)->
224    ereport.io.pci.target-ma@pcibus/pcidev/pcifn;
225
226prop error.io.pci.tx-ma@pcibus/pcidev[fromdev]/pcifn (1)->
227    error.io.pci.rec-ma@pcibus/pcidev<todev>/pcifn<>
228    {fromdev != todev};
229
230prop error.io.pci.rx-ma@pcibus/pcidev/pcifn (1)->
231    error.io.pci.rec-ma@pcibus/pcidev/pcifn;
232
233prop error.io.pci.rx-ma@pcibus/pcidev[fromdev]/pcifn (1)->
234    ereport.io.pci.target-ma@pcibus/pcidev<todev>/pcifn<>
235    {fromdev != todev},
236    error.io.pci.sec-target-ma@pcibus/pcidev<todev>/pcifn<>
237    {fromdev != todev};
238
239prop error.io.pci.sec-target-ma@pcibus/pcidev/pcifn (1)->
240    ereport.io.pci.target-ma@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
241
242prop error.io.pci.rec-ma@pcibus/pcidev/pcifn (1)->
243    ereport.io.pci.ma@pcibus/pcidev/pcifn;
244
245prop error.io.pci.rec-ta@pcibus/pcidev/pcifn (1)->
246    ereport.io.pci.rta@pcibus/pcidev/pcifn;
247
248prop error.io.pci.rec-mdpe@pcibus/pcidev/pcifn (1)->
249    ereport.io.pci.mdpe@pcibus/pcidev/pcifn;
250
251prop error.io.pci.tx-serr@pcibus/pcidev/pcifn (1)->
252    error.io.pci.serr@pcibus;
253
254prop error.io.pci.tx-serr@pcibus/pcidev/pcifn (0)->
255    ereport.io.pci.sserr@pcibus/pcidev/pcifn;
256
257prop error.io.pci.rx-ta@pcibus/pcidev[fromdev]/pcifn (1)->
258    error.io.pci.rec-ta@pcibus/pcidev[fromdev]/pcifn,
259    error.io.pci.sta@pcibus/pcidev<todev>/pcifn<>
260    {fromdev != todev};
261
262prop error.io.pci.sta@pcibus/pcidev/pcifn (1)->
263    ereport.io.pci.sta@pcibus/pcidev/pcifn,
264    ereport.io.pci.target-rta@pcibus/pcidev/pcifn;
265
266prop error.io.pci.tx-dpe@pcibus/pcidev/pcifn (1)->
267    error.io.pci.tx-rdpe@pcibus/pcidev/pcifn,
268    error.io.pci.tx-wdpe@pcibus/pcidev/pcifn;
269
270prop error.io.pci.tx-rdpe@pcibus/pcidev[fromdev]/pcifn (1)->
271    error.io.pci.rx-rdpe@pcibus/pcidev<todev>/pcifn<>
272    {fromdev != todev};
273
274prop error.io.pci.rx-rdpe@pcibus/pcidev/pcifn (2)->
275    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn,
276    ereport.io.pci.dpe@pcibus/pcidev/pcifn;
277
278prop error.io.pci.tx-rdpe@pcibus/pcidev/pcifn (1)->
279    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
280
281prop error.io.pci.tx-wdpe@pcibus/pcidev[fromdev]/pcifn (1)->
282    error.io.pci.rx-wdpe@pcibus/pcidev<todev>/pcifn<>
283    {fromdev != todev};
284
285prop error.io.pci.tx-wdpe@pcibus/pcidev/pcifn (0)->
286    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn;
287
288prop error.io.pci.rx-wdpe@pcibus/pcidev/pcifn (1)->
289    ereport.io.pci.dpe@pcibus/pcidev/pcifn,
290    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
291
292prop error.io.pci.tx-ape@pcibus/pcidev/pcifn (1)->
293    error.io.pci.serr@pcibus;
294
295prop error.io.pci.tx-ape@pcibus/pcidev[fromdev]/pcifn (0)->
296    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<>
297    {fromdev != todev},
298    ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<>
299    {fromdev != todev};
300
301prop error.io.pci.tx-ape@pcibus/pcidev[fromdev]/pcifn (0)->
302    ereport.io.pci.target-rta@pcibus/pcidev<todev>/pcifn<>
303    {fromdev != todev},
304    ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn<>
305    {fromdev != todev};
306
307prop error.io.pci.tx-ape@pcibus/pcidev/pcifn (0)->
308    error.io.pci.rec-ta@pcibus/pcidev/pcifn;
309
310prop error.io.pci.tx-ape@pcibus/pcidev[fromdev]/pcifn (0)->
311    ereport.io.pci.target-ma@pcibus/pcidev<todev>/pcifn<>
312    {fromdev != todev};
313
314prop error.io.pci.tx-ape@pcibus/pcidev/pcifn (0)->
315    error.io.pci.rec-ma@pcibus/pcidev/pcifn;
316
317prop error.io.pcix.tx-oor@pcibus/pcidev/pcifn (1)->
318    ereport.io.pcix.oor@pcibus/pcidev/pcifn;
319
320prop error.io.pcix.rx-discard@pcibus/pcidev/pcifn (1)->
321    ereport.io.pcix.discard@pcibus/pcidev/pcifn;
322
323prop error.io.pcix.rx-unex-sc@pcibus/pcidev[fromdev]/pcifn (0)->
324    ereport.io.pcix.unex-sc@pcibus/pcidev<todev>/pcifn<>
325    {fromdev != todev};
326
327/*
328 * the rules below are for hostbridge faults above a pci-pci bridge
329 */
330
331prop error.io.pci.tx-pma@pcibus/pcidev/pcifn (1)->
332    ereport.io.pci.target-ma@pcibus/pcidev/pcifn;
333
334prop error.io.pci.tx-pma@pcibus/pcidev[fromdev]/pcifn (1)->
335    error.io.pci.rx-pma@pcibus/pcidev<todev>/pcifn<>
336    {fromdev != todev};
337
338prop error.io.pci.rx-pma@pcibus/pcidev/pcifn (3)->
339    error.io.pci.serr@pcibus,
340    ereport.io.pci.sserr@pcibus/pcidev/pcifn,
341    error.io.pci.rec-ma@pcibus/pcidev/pcifn;
342
343prop error.io.pci.tx-dma@pcibus/pcidev/pcifn (1)->
344    ereport.io.pci.target-ma@pcibus/pcidev/pcifn;
345
346prop error.io.pci.tx-dma@pcibus/pcidev[fromdev]/pcifn (1)->
347    error.io.pci.rx-dma@pcibus/pcidev<todev>/pcifn<>
348    {fromdev != todev};
349
350prop error.io.pci.rx-dma@pcibus/pcidev/pcifn (2)->
351    error.io.pci.rec-ma@pcibus/pcidev/pcifn<>,
352    error.io.pci.sec-tx-ta@pcibus/pcidev/pcifn;
353
354prop error.io.pci.sec-tx-ta@pcibus/pcidev/pcifn (1)->
355    ereport.io.pci.sec-sta@pcibus/pcidev/pcifn;
356
357prop error.io.pci.sec-tx-ta@pcibus/pcidev/pcifn (0)->
358    ereport.io.pci.target-rta@pcibus/pcidev/pcifn,
359    ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
360
361prop error.io.pci.rx-pta@pcibus/pcidev[fromdev]/pcifn (1)->
362    error.io.pci.tx-pta@pcibus/pcidev<todev>/pcifn<>
363    {fromdev != todev};
364
365prop error.io.pci.tx-pta@pcibus/pcidev/pcifn (3)->
366    error.io.pci.serr@pcibus,
367    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
368    error.io.pci.sec-rx-pta@pcibus/pcidev/pcifn;
369
370prop error.io.pci.sec-rx-pta@pcibus/pcidev/pcifn (1)->
371    ereport.io.pci.sec-rta@pcibus/pcidev/pcifn;
372
373prop error.io.pci.sec-rx-pta@pcibus/pcidev/pcifn (0)->
374    ereport.io.pci.sta@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
375
376prop error.io.pci.rx-dta@pcibus/pcidev/pcifn (1)->
377    error.io.pci.rec-ta@pcibus/pcidev/pcifn;
378
379prop error.io.pci.rx-dta@pcibus/pcidev[fromdev]/pcifn (1)->
380    error.io.pci.sec-rx-dta@pcibus/pcidev<todev>/pcifn<>
381    {fromdev != todev};
382
383prop error.io.pci.sec-rx-dta@pcibus/pcidev/pcifn (2)->
384    ereport.io.pci.sec-rta@pcibus/pcidev/pcifn,
385    ereport.io.pci.sta@pcibus/pcidev/pcifn<>;
386
387prop error.io.pci.sec-rx-dta@pcibus/pcidev/pcifn (0)->
388    ereport.io.pci.sta@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
389
390prop error.io.pci.sec-rx-dta@pcibus/pcidev/pcifn (1)->
391    ereport.io.pci.target-rta@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
392
393prop error.io.pci.tx-rdpe@pcibus/pcidev/pcifn (1)->
394    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
395
396prop error.io.pci.tx-rdpe@pcibus/pcidev[fromdev]/pcifn (1)->
397    error.io.pci.bdg-rx-dpe@pcibus/pcidev<todev>/pcifn<>
398    {fromdev != todev};
399
400prop error.io.pci.bdg-rx-dpe@pcibus/pcidev/pcifn (2)->
401    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn,
402    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn<>,
403    ereport.io.pci.dpe@pcibus/pcidev/pcifn<>;
404
405prop error.io.pci.bdg-rx-dpe@pcibus/pcidev/pcifn (0)->
406    error.io.pci.sec-rx-mdpe@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
407
408prop error.io.pci.sec-rx-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)->
409    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
410    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
411
412prop error.io.pci.tx-pwdpe@pcibus/pcidev/pcifn (1)->
413    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn;
414
415prop error.io.pci.tx-pwdpe@pcibus/pcidev[fromdev]/pcifn (1)->
416    error.io.pci.bdg-pwdpe@pcibus/pcidev<todev>/pcifn<>
417    {fromdev != todev};
418
419prop error.io.pci.bdg-pwdpe@pcibus/pcidev/pcifn (2)->
420    ereport.io.pci.dpe@pcibus/pcidev/pcifn<>,
421    ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn;
422
423prop error.io.pci.bdg-pwdpe@pcibus/pcidev/pcifn (1)->
424    error.io.pci.sec-target-mdpe@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
425
426prop error.io.pci.sec-target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
427    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
428
429prop error.io.pci.sec-target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
430    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
431
432prop error.io.pci.tx-dwdpe@pcibus/pcidev/pcifn (1)->
433    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn;
434
435prop error.io.pci.tx-dwdpe@pcibus/pcidev[fromdev]/pcifn (1)->
436    error.io.pci.bdg-dwdpe@pcibus/pcidev<todev>/pcifn<>
437    {fromdev != todev};
438
439prop error.io.pci.bdg-dwdpe@pcibus/pcidev/pcifn (1)->
440    ereport.io.pci.dpe@pcibus/pcidev/pcifn<>;
441
442prop error.io.pci.bdg-dwdpe@pcibus/pcidev/pcifn (1)->
443    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>;
444
445prop error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn (1)->
446    error.io.pci.serr@pcibus;
447
448prop error.io.pci.tx-ape-bdg@pcibus/pcidev[fromdev]/pcifn (2)->
449    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<>
450    {fromdev != todev},
451    ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<>
452    {fromdev != todev};
453
454prop error.io.pci.tx-ape-bdg@pcibus/pcidev[fromdev]/pcifn (0)->
455    ereport.io.pci.target-rta@pcibus/pcidev<todev>/pcifn<>/pcibus/pcidev/pcifn
456    {fromdev != todev},
457    ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn<>
458    {fromdev != todev};
459
460prop error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn (0)->
461    error.io.pci.rec-ta@pcibus/pcidev/pcifn;
462
463prop error.io.pci.tx-ape-bdg@pcibus/pcidev[fromdev]/pcifn (0)->
464    ereport.io.pci.target-ma@pcibus/pcidev<todev>/pcifn<>/pcibus/pcidev/pcifn
465    {fromdev != todev};
466
467prop error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn (0)->
468    error.io.pci.rec-ma@pcibus/pcidev/pcifn;
469
470prop error.io.pci.tx-ape-bdg@pcibus/pcidev[fromdev]/pcifn (0)->
471    error.io.pci.bdg-tx-sec-ape@pcibus/pcidev<todev>/pcifn<>/pcibus/pcidev/pcifn
472    {fromdev != todev};
473
474/*
475 * The rules below are specifically for the pci-pci bridge, in which it
476 * sends incorrect data/parity when receiving correct data/parity.
477 */
478
479prop error.io.pci.bdg-tx-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
480    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
481
482prop error.io.pci.bdg-tx-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
483    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn<>;
484
485prop error.io.pci.bdg-tx-dwdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
486    error.io.pci.rx-wdpe@pcibus/pcidev<todev>/pcifn<>
487    {fromdev != todev};
488
489prop error.io.pci.bdg-tx-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)->
490    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
491    error.io.pci.serr@pcibus;
492
493prop error.io.pci.bdg-tx-pwdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
494    error.io.pci.rx-wdpe@pcibus/pcidev<todev>/pcifn<>
495    {fromdev != todev};
496
497prop error.io.pci.bdg-tx-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
498    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn<>;
499
500prop error.io.pci.bdg-tx-rdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
501    error.io.pci.rx-rdpe@pcibus/pcidev<todev>/pcifn<>
502    {fromdev != todev};
503
504prop error.io.pci.bdg-tx-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
505    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
506
507prop error.io.pci.bdg-tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
508    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
509
510prop error.io.pci.bdg-tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
511    error.io.pci.sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
512
513prop error.io.pci.sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)->
514    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
515    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
516
517prop error.io.pci.bdg-tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
518    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
519    error.io.pci.serr@pcibus,
520    ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn;
521
522prop error.io.pci.bdg-tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
523    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
524
525prop error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
526    ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn;
527
528prop error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
529    error.io.pci.sec-rx-dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
530
531prop error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
532    error.io.pci.rec-mdpe@pcibus/pcidev<todev>/pcifn<>
533    {fromdev != todev};
534
535prop error.io.pci.sec-rx-dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
536    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
537    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
538
539prop error.io.pci.bdg-tx-ape@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (3)->
540    ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<>
541    {fromdev != todev},
542    ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<>
543    {fromdev != todev},
544    error.io.pci.serr@pcibus;
545
546prop error.io.pci.bdg-tx-ape@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (0)->
547    ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn<>
548    {fromdev != todev},
549    ereport.io.pci.target-rta@pcibus/pcidev<todev>/pcifn<>
550    {fromdev != todev};
551
552prop error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
553    error.io.pci.rec-ta@pcibus/pcidev/pcifn<>;
554
555prop error.io.pci.bdg-tx-ape@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (0)->
556    ereport.io.pci.target-ma@pcibus/pcidev<todev>/pcifn<>
557    {fromdev != todev};
558
559prop error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
560    error.io.pci.rec-ma@pcibus/pcidev/pcifn<>;
561
562prop error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
563    ereport.io.pci.sec-sta@pcibus/pcidev/pcifn,
564    ereport.io.pci.target-rta@pcibus/pcidev/pcifn,
565    ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
566
567prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
568    ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn,
569    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
570    error.io.pci.serr@pcibus;
571
572prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
573    ereport.io.pci.sserr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
574    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
575
576prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
577    ereport.io.pci.sta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
578    ereport.io.pci.sec-rta@pcibus/pcidev/pcifn,
579    ereport.io.pci.target-rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
580    ereport.io.pci.sta@pcibus/pcidev/pcifn<>;
581
582prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (0)->
583    error.io.pci.rec-ta@pcibus/pcidev<todev>/pcifn<>
584    {fromdev != todev};
585
586prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
587    ereport.io.pci.sec-ma@pcibus/pcidev/pcifn,
588    ereport.io.pci.target-ma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
589    ereport.io.pci.sta@pcibus/pcidev/pcifn<>;
590
591prop error.io.pci.bdg-tx-sec-ape@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (0)->
592    error.io.pci.rec-ta@pcibus/pcidev<todev>/pcifn<>
593    {fromdev != todev};
594
595fru pcibus;
596asru pcibus;
597
598event fault.io.pci.bus@pcibus,
599        FITrate=PCI_BUS_FIT, FRU=pcibus, ASRU=pcibus;
600
601/* A faulty PCI bus may cause:
602 *
603 *  - tx-dpe:	data/parity to get corrupted during transmission.
604 *  - tx-ape:	address/parity to get corrupted during transmission.
605 *
606 * NOTE: The rules below are valid for pci-pci bridge transactions.
607 *
608 *  - tx-ape-bdg:	address/parity to get corrupted during transmission.
609 *  - tx-pwdpe:	data/parity to get corrupted during posted write transmission
610 *		to a pci-pci bridge.
611 *  - tx-dwdpe:	data/parity to get corrupted during delayed write transmission
612 *		to a pci-pci bridge.
613 *  - tx-rdpe:	data/parity to get corrupted during read transmission
614 *		to a pci-pci bridge.
615 *  - bdg-tx-ape:	address/parity to get corrupted during transmission
616 *			from a pci-pci bridge.
617 *  - bdg-tx-pwdpe:	data/parity to get corrupted during posted write
618 *			transmission from a pci-pci bridge.
619 *  - bdg-tx-dwdpe:	data/parity to get corrupted during delayed write
620 *			transmission from a pci-pci bridge.
621 *  - bdg-tx-rdpe:	data/parity to get corrupted during read transmission
622 *			from a pci-pci bridge.
623 */
624
625prop fault.io.pci.bus@pcibus (0)->
626    error.io.pci.tx-dpe@pcibus/pcidev/pcifn,
627    error.io.pci.tx-ape@pcibus/pcidev/pcifn,
628    error.io.pcix.tx-oor@pcibus/pcidev/pcifn,
629    error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn;
630
631prop fault.io.pci.bus@pcibus (0)->
632    error.io.pci.tx-ape-bdg@pcibus/pcidev/pcifn,
633    error.io.pci.tx-pwdpe@pcibus/pcidev/pcifn,
634    error.io.pci.tx-rdpe@pcibus/pcidev/pcifn,
635    error.io.pci.tx-dwdpe@pcibus/pcidev/pcifn;
636
637prop fault.io.pci.bus@pcibus (0)->
638    error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
639    error.io.pci.bdg-tx-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
640    error.io.pci.bdg-tx-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
641    error.io.pci.bdg-tx-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
642
643/*
644 * A defective PCI device driver may cause:
645 *
646 *  - tx-ma:	a device to not respond because it was power managed and the
647 *		driver attempted to access it.
648 *  - rx-ma:	a device to address a non-existent device.
649 *  - rx-ta:	a device to request a transaction from a target that is invalid
650 *		causing a target abort to be received.
651 */
652
653event defect.io.pci.driver@pcibus/pcidev/pcifn;
654
655prop defect.io.pci.driver@pcibus/pcidev/pcifn (0)->
656    error.io.pci.tx-ma@pcibus/pcidev/pcifn,
657    error.io.pci.rx-ma@pcibus/pcidev/pcifn,
658    error.io.pci.rx-ta@pcibus/pcidev/pcifn,
659    error.io.pcix.tx-oor@pcibus/pcidev/pcifn;
660
661/* PCI-PCI devices */
662asru pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
663fru pcibus/pcidev/pcifn/pcibus/pcidev;
664
665event fault.io.pci.device@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
666    FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev/pcifn/pcibus/pcidev,
667    ASRU=pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
668
669event error.io.pci.tx-sec-pma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
670event error.io.pci.tx-sec-dma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
671event error.io.pci.rx-sec-pta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
672event error.io.pci.rx-sec-dta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
673event error.io.pci.tx-sec-serr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
674event error.io.pci.tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
675event error.io.pci.tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
676event error.io.pci.tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
677event error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
678event error.io.pci.sec-dpe@pcibus/pcidev/pcifn;
679
680event ereport.io.pci.target-rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
681event ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn{within(5s)};
682event ereport.io.pci.sec-sta@pcibus/pcidev/pcifn{within(5s)};
683event ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn{within(5s)};
684
685/*
686 * A faulty PCI device off of a pci-pci bridge may cause:
687 *
688 *  - tx-sec-pma:	the device not to respond to a valid request during a
689 *			posted transaction.
690 *  - tx-sec-dma:	the device not to respond to a valid request during a
691 *			delayed transaction.
692 *  - rx-sec-pta:	the device to receive a target abort during a posted
693 *			transaction.
694 *  - rx-sec-dta:	the device to receive a target abort during a delayed
695 *			transaction.
696 *  - tx-sec-serr:	the device to signal a system error.
697 *  - tx-sec-ape:	the transfer of bad address/parity. We must see sec_dpe/
698 *			sserr/rec_serr. The initiator will only see the PERR# -
699 *			so may raise mdpe. Another device on the secondary bus
700 *			could detect and report the ape. The bridge could target
701 *			abort or master abort or pass the request up to the
702 *			primary bus.
703 *  - tx-sec-pwdpe:	the device to deliver bad data/parity during a posted
704 *			write.
705 *  - tx-sec-dwdpe:	the device to deliver bad data/parity during a delayed
706 *			write.
707 *  - tx-sec-rdpe:	the device to deliver bad data/parity during a read.
708 *  - dto:		the device to exceed the set timeout for a delayed
709 *			transaction.
710 *  - rx-pma:		the device to send a bad address to the primary side
711 *			bus during a posted transaction.
712 *  - rx-dma:		the device to send a bad address to the primary side bus
713 *			during a delayed transaction.
714 */
715prop fault.io.pci.device@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
716    error.io.pci.tx-sec-pma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
717    error.io.pci.tx-sec-dma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
718    error.io.pci.rx-sec-pta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
719    error.io.pci.rx-sec-dta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
720    error.io.pci.tx-sec-serr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
721    error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
722    error.io.pci.tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
723    error.io.pci.tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
724    error.io.pci.tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
725    error.io.pci.rx-pma@pcibus/pcidev/pcifn,
726    error.io.pci.rx-dma@pcibus/pcidev/pcifn,
727
728    ereport.io.pci.dto@pcibus/pcidev/pcifn;
729
730prop error.io.pci.tx-sec-pma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
731    ereport.io.pci.sec-ma@pcibus/pcidev/pcifn,
732    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
733    error.io.pci.serr@pcibus;
734
735prop error.io.pci.tx-sec-dma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
736    ereport.io.pci.target-rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
737    ereport.io.pci.sec-ma@pcibus/pcidev/pcifn,
738    ereport.io.pci.sta@pcibus/pcidev/pcifn<>;
739
740prop error.io.pci.tx-sec-dma@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
741    error.io.pci.rec-ta@pcibus/pcidev<todev>/pcifn<>
742    {fromdev != todev};
743
744prop error.io.pci.rx-sec-pta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
745    error.io.pci.rx-ta@pcibus/pcidev/pcifn<>,
746    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
747    error.io.pci.serr@pcibus;
748
749prop error.io.pci.rx-sec-dta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
750    ereport.io.pci.target-rta@pcibus/pcidev/pcifn,
751    ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
752
753prop error.io.pci.rx-sec-dta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)->
754    ereport.io.pci.sec-sta@pcibus/pcidev/pcifn,
755    error.io.pci.rx-ta@pcibus/pcidev/pcifn<>;
756
757prop error.io.pci.tx-sec-serr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
758    ereport.io.pci.sserr@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
759    ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn,
760    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
761    error.io.pci.serr@pcibus;
762
763prop error.io.pci.tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)->
764    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
765    ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn,
766    error.io.pci.rec-mdpe@pcibus/pcidev/pcifn<>,
767    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
768
769prop error.io.pci.tx-sec-pwdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
770    error.io.pci.sec-dpe@pcibus/pcidev<todev>/pcifn<>
771    {fromdev != todev};
772
773prop error.io.pci.sec-dpe@pcibus/pcidev/pcifn (2)->
774    ereport.io.pci.dpe@pcibus/pcidev/pcifn,
775    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
776
777prop error.io.pci.tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)->
778    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
779    ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn,
780    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
781
782prop error.io.pci.tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
783    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
784    ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn,
785    ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn;
786
787prop error.io.pci.tx-sec-rdpe@pcibus/pcidev[fromdev]/pcifn/pcibus/pcidev/pcifn (1)->
788    error.io.pci.rx-rdpe@pcibus/pcidev<todev>/pcifn<>
789    {fromdev != todev};
790
791prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)->
792    ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn,
793    ereport.io.pci.sserr@pcibus/pcidev/pcifn<>,
794    error.io.pci.serr@pcibus;
795
796prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
797    ereport.io.pci.mdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
798    ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn;
799
800prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev[fromdev]/pcifn (0)->
801    ereport.io.pci.dpe@pcibus/pcidev/pcifn/pcibus/pcidev<todev>/pcifn<>
802    {fromdev != todev},
803    ereport.io.pci.sserr@pcibus/pcidev/pcifn/pcibus/pcidev<todev>/pcifn<>
804    {fromdev != todev};
805
806prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
807    ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn;
808
809prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
810    ereport.io.pci.sec-sta@pcibus/pcidev/pcifn,
811    ereport.io.pci.target-rta@pcibus/pcidev/pcifn,
812    ereport.io.pci.rta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
813
814prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
815    ereport.io.pci.target-ma@pcibus/pcidev/pcifn,
816    ereport.io.pci.ma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
817
818prop error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
819    error.io.pci.bdg-tx-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
820
821asru pcibus/pcidev;
822fru pcibus/pcidev/pcifn/pcibus;
823
824/*
825 * A faulty secondary side PCI bus may cause:
826 *
827 *  - tx-sec-ape:	the transfer of bad address/parity when the secondary
828 *			bus is the originator.
829 *  - tx-sec-pwdpe:	the transfer of bad data/parity during a posted write.
830 *  - tx-sec-dwdpe:	the transfer of bad data/parity during a delayed write.
831 *  - tx-sec-rdpe:	the transfer of bad data/parity during a read.
832 *  - bdg-tx-sec-ape:	the transfer of bad address/parity when the secondary
833 *			bus is the destination.
834 *  - bdg-tx-sec-rdpe:	the transfer from the bridge of bad data/parity during a
835 *			read.
836 *  - bdg-tx-sec-pwdpe:	the transfer from the bridge of bad data/parity during a
837 *			posted write.
838 *  - bdg-tx-sec-dwdpe:	the transfer from the bridge of bad data/parity during a
839 *			delayed write.
840 */
841event fault.io.pci.bus@pcibus/pcidev/pcifn/pcibus,
842    FITrate=PCI_BUS_FIT, FRU=pcibus/pcidev/pcifn/pcibus,
843    ASRU=pcibus/pcidev;
844
845
846prop fault.io.pci.bus@pcibus/pcidev/pcifn/pcibus (0)->
847    error.io.pci.tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
848    error.io.pci.tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
849    error.io.pci.tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
850    error.io.pci.tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
851    error.io.pci.bdg-tx-sec-ape@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
852    error.io.pci.bdg-tx-sec-rdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
853    error.io.pci.bdg-tx-sec-pwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
854    error.io.pci.bdg-tx-sec-dwdpe@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
855
856/*
857 * A defective device driver of a device that is off of a pci-pci bridge may
858 * cause:
859 *
860 *  - tx-sec-pma:	the device to not respond to a posted transaction.
861 *  - tx-sec-dma:	the device to not respond to a delayed transaction.
862 *  - rx-sec-pta:	the device to receive a target abort during a posted
863 *			transaction.
864 *  - rx-sec-dta:	the device to receive a target abort during a delayed
865 *			transaction.
866 *  - rx-pma:		the device to send a bad address to the primary side bus
867 *			during a posted transaction.
868 *  - rx-dma:		the device to send a bad address to the primary side bus
869 *			during a delayed transaction.
870 */
871
872event defect.io.pci.driver@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn;
873
874prop defect.io.pci.driver@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)->
875    error.io.pci.tx-sec-pma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
876    error.io.pci.tx-sec-dma@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
877    error.io.pci.rx-sec-pta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
878    error.io.pci.rx-sec-dta@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn,
879    error.io.pci.rx-pma@pcibus/pcidev/pcifn,
880    error.io.pci.rx-dma@pcibus/pcidev/pcifn;
881