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 (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#pragma ident "%Z%%M% %I% %E% SMI" 27 28#pragma dictionary "PCI" 29 30#define PCI_DEV_FIT 1000 31#define PCI_BUS_FIT 500 32 33/* 34 * SERD parameters. 35 * 36 * Nonfatal dpe errors have to be recovered by the hardened driver which may 37 * cause intermittant performance/responsiveness problems, so we have tighter 38 * serd parameters for these. These are most likely errors in buffers/caches 39 * within devices and bridges, so use similar rates to cpu data cache parity 40 * errors. 41 * 42 * We will be more conservative about nonfatal internal errors reported 43 * by the driver. 44 */ 45#define NONFATAL_COUNT 6 46#define NONFATAL_TIME 2h 47#define NONFATAL_DPE_U_COUNT 3 48#define NONFATAL_DPE_U_TIME 168h 49#define NONFATAL_DPE_D_COUNT 3 50#define NONFATAL_DPE_D_TIME 168h 51 52#define IS_LEAF \ 53 (confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") != "60400" && \ 54 confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") != "60401") 55 56#define IS_BDG \ 57 (confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") == "60400" || \ 58 confprop(asru(pcibus/pcidev/pcifn), "CLASS-CODE") == "60401") 59 60#define FD_IS_LEAF \ 61 (confprop(asru(pcibus/pcidev[fromdev]/pcifn), "CLASS-CODE") != \ 62 "60400" && \ 63 confprop(asru(pcibus/pcidev[fromdev]/pcifn), "CLASS-CODE") != "60401") 64 65/* 66 * note general rule for errors is that for upstream propagations 67 * @pcibus/pcidev/pcifn is the sending device while for downstream 68 * propagations it is the receiving device. 69 */ 70 71asru pcibus/pcidev/pcifn; 72fru pcibus/pcidev; 73 74event fault.io.pci.device-interr@pcibus/pcidev/pcifn, 75 FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; 76 77event fault.io.pci.device-invreq@pcibus/pcidev/pcifn, 78 FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; 79 80event fault.io.pci.device-noresp@pcibus/pcidev/pcifn, 81 FITrate=PCI_DEV_FIT, FRU=pcibus/pcidev, ASRU=pcibus/pcidev/pcifn; 82 83/* 84 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 85 * A faulty hostbridge may cause: 86 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 87 * - nr-pw-d: the device not to respond to an upstream request 88 * - nr-drw-d: the device not to respond to an upstream request 89 * - ta-pw-d: the device to send a target abort to an upstream request 90 * - ta-drw-d: the device to send a target abort to an upstream request 91 * - serr-u: the device to report itself in error 92 * - badreq-pw-d:a bad downstream request - not parity error (may cause target 93 * to target abort or master abort) 94 * - badreq-drw-d:a bad downstream request - not parity error (may cause 95 * target to target abort or master abort) 96 * - ape-d: address/parity to get corrupted during downstream transmission 97 * - scpe-d: split completion to get corrupted during downstream transmission 98 * - dpe-d: the device to transfer bad data and/or bad parity downstream 99 * - retry-to-d: the device to exceed the set timeout for a delayed 100 * transaction retry. 101 */ 102#define PCI_TO_HB pcibus/pcidev<todev>/pcifn<> {fromdev != 32 && todev == 32} 103#define PCI_FROM_HB pcibus/pcidev<todev>/pcifn<> {fromdev == 32 && todev != 32} 104 105event error.io.pci.retry-to-d@pcibus/pcidev/pcifn; 106event error.io.pci.nr-pw-d@pcibus/pcidev/pcifn; 107event error.io.pci.nr-drw-d@pcibus/pcidev/pcifn; 108event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; 109event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn; 110event error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn; 111event error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn; 112event error.io.pci.f-dpe-d@pcibus/pcidev/pcifn; 113event error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 114event error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn; 115event error.io.pci.ape-d@pcibus/pcidev/pcifn; 116event error.io.pci.ape-u@pcibus/pcidev/pcifn; 117event error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn; 118event error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn; 119event error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn; 120event error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn; 121event error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn; 122event error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn; 123event error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; 124event error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; 125event error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; 126event error.io.pci.ta-u@pcibus/pcidev/pcifn; 127event error.io.pci.ma-u@pcibus/pcidev/pcifn; 128event error.io.pci.perr-dw-u@pcibus/pcidev/pcifn; 129event error.io.pci.perr-pw-u@pcibus/pcidev/pcifn; 130event error.io.pci.perr-dr-u@pcibus/pcidev/pcifn; 131event error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn; 132event error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn; 133event error.io.pci.device-serr@pcibus/pcidev/pcifn; 134event error.io.pci.device-ta@pcibus/pcidev/pcifn; 135event error.io.pci.device-par@pcibus/pcidev/pcifn; 136event error.io.pci.serr-u@pcibus/pcidev/pcifn; 137event error.io.pcix.scpe-d@pcibus/pcidev/pcifn; 138event error.io.pcix.scpe-u@pcibus/pcidev/pcifn; 139event error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn; 140event error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn; 141event error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn; 142event error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; 143 144event ereport.io.pci.ma@pcibus/pcidev/pcifn{within(5s)}; 145event ereport.io.pci.rta@pcibus/pcidev/pcifn{within(5s)}; 146event ereport.io.pci.mdpe@pcibus/pcidev/pcifn{within(5s)}; 147event ereport.io.pci.sta@pcibus/pcidev/pcifn{within(5s)}; 148event ereport.io.pci.sserr@pcibus/pcidev/pcifn{within(5s)}; 149event ereport.io.pci.dpe@pcibus/pcidev/pcifn{within(5s)}; 150event ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn{within(5s)}; 151event ereport.io.pci.target-rta@pcibus/pcidev/pcifn{within(5s)}; 152event ereport.io.pci.target-ma@pcibus/pcidev/pcifn{within(5s)}; 153event ereport.io.pcix.discard@pcibus/pcidev/pcifn{within(5s)}; 154 155prop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)-> 156 error.io.pci.nr-pw-d@PCI_FROM_HB, 157 error.io.pci.nr-drw-d@PCI_FROM_HB, 158 error.io.pci.retry-to-d@PCI_FROM_HB; 159 160prop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn (0)-> 161 error.io.pci.badreq-pw-d@PCI_FROM_HB, 162 error.io.pci.badreq-drw-d@PCI_FROM_HB; 163 164prop fault.io.pci.device-interr@pcibus/pcidev/pcifn (0)-> 165 error.io.pci.device-par@pcibus/pcidev/pcifn, 166 error.io.pci.device-ta@pcibus/pcidev/pcifn, 167 error.io.pci.device-serr@pcibus/pcidev/pcifn; 168 169prop error.io.pci.device-par@pcibus/pcidev[fromdev]/pcifn (1)-> 170 error.io.pci.f-dpe-d@PCI_FROM_HB, 171 error.io.pci.nf-dpe-d@PCI_FROM_HB, 172 error.io.pcix.scpe-d@PCI_FROM_HB, 173 error.io.pci.ape-d@PCI_FROM_HB; 174 175prop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)-> 176 error.io.pci.ta-pw-d@PCI_FROM_HB, 177 error.io.pci.ta-drw-d@PCI_FROM_HB; 178 179prop error.io.pci.device-ta@pcibus/pcidev[fromdev]/pcifn (1)-> 180 ereport.io.pci.sta@pcibus/pcidev<todev>/pcifn { 181 todev == fromdev && fromdev == 32 }; 182 183prop error.io.pci.device-serr@pcibus/pcidev/pcifn (2)-> 184 error.io.pci.serr-u@pcibus/pcidev/pcifn, 185 ereport.io.pci.sserr@pcibus/pcidev/pcifn; 186 187prop error.io.pci.f-dpe-d@pcibus/pcidev/pcifn (1)-> 188 error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn, 189 error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn, 190 error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn; 191 192prop error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn (1)-> 193 error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn, 194 error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn, 195 error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn; 196 197/* 198 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 199 * ereport generation rules for hostbridge 200 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 201 */ 202prop error.io.pci.dpdata-pw-u@pcibus/pcidev[fromdev]/pcifn (1)-> 203 ereport.io.pci.dpe@PCI_TO_HB; 204 205prop error.io.pci.dpdata-dw-u@pcibus/pcidev[fromdev]/pcifn (1)-> 206 ereport.io.pci.dpe@PCI_TO_HB; 207 208prop error.io.pci.dpdata-dr-u@pcibus/pcidev[fromdev]/pcifn (2)-> 209 ereport.io.pci.mdpe@PCI_TO_HB, 210 ereport.io.pci.dpe@PCI_TO_HB; 211 212prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (3)-> 213 ereport.io.pci.dpe@PCI_TO_HB, 214 error.io.pci.serr-u@PCI_TO_HB, 215 ereport.io.pci.sserr@PCI_TO_HB; 216 217prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)-> 218 ereport.io.pci.sta@PCI_TO_HB; 219 220prop error.io.pci.ma-u@pcibus/pcidev[fromdev]/pcifn (1)-> 221 ereport.io.pci.ma@PCI_TO_HB; 222 223prop error.io.pci.ta-u@pcibus/pcidev[fromdev]/pcifn (1)-> 224 ereport.io.pci.rta@PCI_TO_HB; 225 226prop error.io.pci.perr-dw-u@pcibus/pcidev[fromdev]/pcifn (1)-> 227 ereport.io.pci.mdpe@PCI_TO_HB; 228 229prop error.io.pci.perr-pw-u@pcibus/pcidev[fromdev]/pcifn (1)-> 230 ereport.io.pci.mdpe@PCI_TO_HB; 231 232prop error.io.pci.badreq-drw-u@pcibus/pcidev[fromdev]/pcifn (0)-> 233 ereport.io.pci.sta@PCI_TO_HB; 234 235prop error.io.pci.badreq-pw-u@pcibus/pcidev[fromdev]/pcifn (0)-> 236 ereport.io.pci.sta@PCI_TO_HB; 237 238prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> 239 error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn, 240 error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; 241 242prop error.io.pcix.scpe-u@pcibus/pcidev[fromdev]/pcifn (0)-> 243 ereport.io.pci.dpe@PCI_TO_HB, 244 error.io.pci.serr-u@PCI_TO_HB, 245 ereport.io.pci.sserr@PCI_TO_HB, 246 ereport.io.pci.sta@PCI_TO_HB; 247 248prop error.io.pcix.spl-comp-ma-u@pcibus/pcidev[fromdev]/pcifn (3)-> 249 ereport.io.pcix.discard@PCI_TO_HB, 250 error.io.pci.serr-u@PCI_TO_HB, 251 ereport.io.pci.sserr@PCI_TO_HB; 252 253prop error.io.pcix.spl-comp-ta-u@pcibus/pcidev[fromdev]/pcifn (3)-> 254 ereport.io.pcix.discard@PCI_TO_HB, 255 error.io.pci.serr-u@PCI_TO_HB, 256 ereport.io.pci.sserr@PCI_TO_HB; 257 258/* 259 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 260 * A faulty PCI leaf device or pci-pci bridge may cause: 261 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 262 * - nr-pw-u: the device not to respond to a valid downstream request 263 * - nr-drw-u: the device not to respond to a valid downstream request 264 * - ta-pw-u: the device responds with a ta to a valid downstream 265 * request 266 * - ta-drw-u: the device responds with a ta to a valid downstream 267 * request 268 * - serr-u: the device to report itself in error 269 * - badreq-pw-u: a bad upstream request (may cause target to target 270 * abort or master abort) 271 * - badreq-drw-u: a bad upstream request (may cause target to target 272 * abort or master abort) 273 * - ape-u: the transfer of bad address/parity upstream. 274 * - scpe-u: the transfer of bad split completion upstream. 275 * - dpe-u: the device to deliver bad data/parity upstream. 276 * - retry-to-u: the device to exceed the set timeout for a delayed 277 * transaction retry. 278 * 279 * A faulty PCI-X leaf device or bridge may also cause: 280 * 281 * - tx-oor: the device sends a byte count larger than the completers 282 * address range. 283 * - rx-unex-sc: the device recieved a split completion with a tag 284 * which does not match any outstanding transaction. 285 */ 286 287#define PCI_NOT_HB pcibus/pcidev[fromdev]/pcifn {fromdev != 32} 288 289event error.io.pci.retry-to-u@pcibus/pcidev/pcifn; 290event error.io.pci.nr-pw-u@pcibus/pcidev/pcifn; 291event error.io.pci.nr-drw-u@pcibus/pcidev/pcifn; 292event error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; 293event error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; 294event error.io.pci.f-dpe-u@pcibus/pcidev/pcifn; 295event error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 296event error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn; 297event error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn; 298event error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn; 299event error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn; 300event error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn; 301event error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn; 302event error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn; 303event error.io.pci.perr-d@pcibus/pcidev/pcifn; 304event error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 305event error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 306event error.io.pci.target-rta-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 307event error.io.pci.target-ma-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 308event error.io.pcix.tx-oor@pcibus/pcidev/pcifn; 309event error.io.pcix.rx-unex-sc@pcibus/pcidev/pcifn; 310event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn; 311event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn; 312event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn; 313event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn; 314event error.io.device.nf-device@pcibus/pcidev/pcifn; 315event error.io.device.f-device@pcibus/pcidev/pcifn; 316event error.io.pciex.flt-badreq-u@pcibus/pcidev/pcifn; 317 318event ereport.io.pcix.oor@pcibus/pcidev/pcifn{within(5s)}; 319event ereport.io.pcix.unex-sc@pcibus/pcidev/pcifn{within(5s)}; 320 321prop fault.io.pci.device-noresp@pcibus/pcidev[fromdev]/pcifn (0)-> 322 error.io.pci.nr-pw-u@PCI_NOT_HB, 323 error.io.pci.nr-drw-u@PCI_NOT_HB, 324 error.io.pci.retry-to-u@PCI_NOT_HB; 325 326prop fault.io.pci.device-interr@pcibus/pcidev[fromdev]/pcifn (0)-> 327 error.io.pci.ta-pw-u@PCI_NOT_HB, 328 error.io.pci.ta-drw-u@PCI_NOT_HB, 329 error.io.pci.serr-u@PCI_NOT_HB, 330 error.io.pci.ape-u@PCI_NOT_HB, 331 error.io.pci.f-dpe-u@PCI_NOT_HB, 332 error.io.pci.nf-dpe-u@PCI_NOT_HB, 333 error.io.device.f-device@PCI_NOT_HB, 334 error.io.device.nf-device@PCI_NOT_HB, 335 error.io.pcix.scpe-u@PCI_NOT_HB, 336 error.io.pcix.tx-oor@PCI_NOT_HB, 337 error.io.pcix.rx-unex-sc@PCI_NOT_HB; 338 339prop fault.io.pci.device-invreq@pcibus/pcidev[fromdev]/pcifn {FD_IS_LEAF} (0)-> 340 error.io.pciex.flt-badreq-u@PCI_NOT_HB, 341 error.io.pci.badreq-drw-u@PCI_NOT_HB, 342 error.io.pci.badreq-pw-u@PCI_NOT_HB; 343 344prop error.io.pcix.tx-oor@pcibus/pcidev/pcifn (1)-> 345 ereport.io.pcix.oor@pcibus/pcidev/pcifn; 346 347prop error.io.pcix.rx-unex-sc@pcibus/pcidev[fromdev]/pcifn (1)-> 348 ereport.io.pcix.unex-sc@pcibus/pcidev<todev>/pcifn<> {fromdev != todev}; 349 350prop error.io.pci.f-dpe-u@pcibus/pcidev/pcifn (1)-> 351 error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn, 352 error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn, 353 error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn; 354 355prop error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn (2)-> 356 error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn, 357 error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; 358 359prop error.io.pci.flt-f-dpdata-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> 360 error.io.pci.serr-u@pcibus/pcidev/pcifn; 361 362prop error.io.pci.flt-f-dpdata-dw-u@pcibus/pcidev/pcifn (3)-> 363 error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn, 364 error.io.pci.perr-d@pcibus/pcidev/pcifn, 365 error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; 366 367prop error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn (2)-> 368 error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn, 369 error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; 370 371prop error.io.pci.flt-f-dpdata-dr-u@pcibus/pcidev/pcifn (1)-> 372 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 373 374prop error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn (1)-> 375 error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn, 376 error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn, 377 error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn; 378 379prop error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn (2)-> 380 error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn, 381 error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; 382 383prop error.io.pci.flt-nf-dpdata-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> 384 error.io.pci.serr-u@pcibus/pcidev/pcifn; 385 386prop error.io.pci.flt-nf-dpdata-dw-u@pcibus/pcidev/pcifn (3)-> 387 error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn, 388 error.io.pci.perr-d@pcibus/pcidev/pcifn, 389 error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; 390 391prop error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn (2)-> 392 error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn, 393 error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; 394 395prop error.io.pci.flt-nf-dpdata-dr-u@pcibus/pcidev/pcifn (1)-> 396 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 397 398/* 399 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 400 * A faulty pci-pci bridge may also cause 401 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 402 * - nr-pw-d: the device not to respond to a valid upstream request 403 * - nr-drw-d: the device not to respond to a valid upstream request 404 * - ta-pw-d: the device responds with a ta to a valid upstream 405 * request 406 * - ta-drw-d: the device responds with a ta to a valid upstream 407 * request 408 * - ape-d: address/parity to get corrupted during downstream transmission. 409 * - scpe-d: split completion gets corrupted during downstream transmission. 410 * - dpe-d: data/parity to get corrupted during downstream transmission. 411 * - retry-to-d: the device to exceed the set timeout for a delayed 412 * transaction retry. 413 */ 414 415event error.io.pci.ape-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 416event error.io.pci.f-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 417event error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 418event error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 419event error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 420event error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 421event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 422event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 423event error.io.pcix.scpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 424 425prop fault.io.pci.device-noresp@pcibus/pcidev/pcifn (0)-> 426 error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 427 error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 428 error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 429 430prop fault.io.pci.device-interr@pcibus/pcidev/pcifn (0)-> 431 error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 432 error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 433 error.io.pci.ape-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 434 error.io.pcix.scpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 435 error.io.pci.f-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 436 error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 437 438/* 439 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 440 * A faulty PCI bus may cause: 441 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 442 * - ape-d: address/parity to get corrupted during downstream transmission. 443 * - scpe-d: split completion gets corrupted during downstream transmission. 444 * - dpe-d: data/parity to get corrupted during downstream transmission. 445 * - ape-u: address/parity to get corrupted during upstream transmission. 446 * - dpe-u: data/parity to get corrupted during read upstream transmission. 447 * - scpe-u: split completion to get corrupted during upstream transmission. 448 */ 449 450fru pcibus; 451asru pcibus; 452 453event fault.io.pci.bus-linkerr@pcibus, 454 FITrate=PCI_BUS_FIT, FRU=pcibus, ASRU=pcibus; 455 456prop fault.io.pci.bus-linkerr@pcibus (0)-> 457 error.io.pci.ape-d@pcibus/pcidev<todev>/pcifn { todev != 32}, 458 error.io.pci.f-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32}, 459 error.io.pci.nf-dpe-d@pcibus/pcidev<todev>/pcifn { todev != 32}, 460 error.io.pci.ape-u@pcibus/pcidev<todev>/pcifn { todev != 32}, 461 error.io.pci.f-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32}, 462 error.io.pci.nf-dpe-u@pcibus/pcidev<todev>/pcifn { todev != 32}, 463 error.io.pcix.scpe-d@pcibus/pcidev<todev>/pcifn { todev != 32}, 464 error.io.pcix.scpe-u@pcibus/pcidev<todev>/pcifn { todev != 32}, 465 error.io.pcix.tx-oor@pcibus/pcidev<todev>/pcifn { todev != 32}, 466 error.io.pcix.rx-unex-sc@pcibus/pcidev<todev>/pcifn { todev != 32}; 467 468/* 469 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 470 * recursive rules for pci-pci bridges 471 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 472 */ 473 474event error.io.pci.serr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 475event error.io.pci.perr-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 476event error.io.pci.perr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 477event error.io.pci.perr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 478event error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 479event error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 480event error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 481event error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn; 482event error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 483event error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn; 484event error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 485event error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 486event error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 487event error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn; 488event error.io.pci.ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 489event error.io.pci.source-ape-u@pcibus/pcidev/pcifn; 490event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 491event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 492event error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 493event error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 494event error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 495event error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 496event error.io.pci.ta-d@pcibus/pcidev/pcifn; 497event error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 498event error.io.pci.ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 499event error.io.pci.target-rta-d@pcibus/pcidev/pcifn; 500event error.io.pci.target-ma-d@pcibus/pcidev/pcifn; 501event error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 502event error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 503event error.io.pci.nr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 504event error.io.pci.ta-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 505event error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 506event error.io.pcix.scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 507event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn; 508event error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 509event error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 510event error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 511 512event ereport.io.pci.sec-ma@pcibus/pcidev/pcifn{within(5s)}; 513event ereport.io.pci.sec-sta@pcibus/pcidev/pcifn{within(5s)}; 514event ereport.io.pci.sec-rta@pcibus/pcidev/pcifn{within(5s)}; 515event ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn{within(5s)}; 516event ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn{within(5s)}; 517event ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn{within(5s)}; 518event ereport.io.pci.dto@pcibus/pcidev/pcifn{within(5s)}; 519event ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn{within(5s)}; 520event ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn{within(5s)}; 521 522/* 523 * SERR# can propagate upstream and may be seen by other devices on the bus 524 */ 525prop error.io.pci.serr-u@pcibus/pcidev[fromdev]/pcifn (0)-> 526 ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {todev!=fromdev}; 527 528prop error.io.pci.serr-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> 529 ereport.io.pci.sserr@pcibus/pcidev/pcifn; 530 531prop error.io.pci.serr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 532 ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, 533 error.io.pci.serr-u@pcibus/pcidev/pcifn; 534 535/* 536 * PERR# can propagate upstream for delayed writes. For posted writes 537 * it turns into an SERR#. 538 */ 539prop error.io.pci.perr-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 540 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 541 error.io.pci.perr-dw-u@pcibus/pcidev/pcifn; 542 543prop error.io.pci.perr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 544 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 545 error.io.pci.serr-u@pcibus/pcidev/pcifn; 546 547/* 548 * PERR# can propagate downstream (only for downstream dw parity error) 549 */ 550prop error.io.pci.perr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 551 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 552 553prop error.io.pci.perr-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 554 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 555 556prop error.io.pci.perr-d@pcibus/pcidev/pcifn (1)-> 557 error.io.pci.perr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 558 559/* 560 * downstream target ereports are for any descendant device 561 * 562 * A hostbridge driver may generate "target-" ereports when knowledge of the 563 * physical address associated with a fault allows the target device to be 564 * determined. This is not a requirement of the Diagnosis Engine, but can be 565 * valuable when available. 566 */ 567prop error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn (0)-> 568 ereport.io.pci.target-mdpe@pcibus/pcidev/pcifn; 569 570prop error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn (1)-> 571 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 572 573prop error.io.pci.target-rta-d@pcibus/pcidev/pcifn (0)-> 574 ereport.io.pci.target-rta@pcibus/pcidev/pcifn; 575 576prop error.io.pci.target-rta-d@pcibus/pcidev/pcifn (1)-> 577 error.io.pci.target-rta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 578 579prop error.io.pci.target-ma-d@pcibus/pcidev/pcifn (0)-> 580 ereport.io.pci.target-ma@pcibus/pcidev/pcifn; 581 582prop error.io.pci.target-ma-d@pcibus/pcidev/pcifn (1)-> 583 error.io.pci.target-ma-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 584 585/* 586 * target aborts propagate upstream 587 */ 588prop error.io.pci.ta-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> 589 ereport.io.pci.sta@pcibus/pcidev/pcifn; 590 591prop error.io.pci.ta-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 592 ereport.io.pci.sta@pcibus/pcidev/pcifn; 593 594prop error.io.pci.ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 595 ereport.io.pci.sec-rta@pcibus/pcidev/pcifn, 596 error.io.pci.ta-u@pcibus/pcidev/pcifn; 597 598/* 599 * bad data (ie invalid but not an ape or dpe) can propagate downstream, 600 * and at some point may result in a target or master abort 601 */ 602prop error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn (1)-> 603 error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, 604 error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, 605 error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; 606 607prop error.io.pci.badreq-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 608 error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, 609 error.io.pci.ta-pw-u@pcibus/pcidev/pcifn; 610 611prop error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn (1)-> 612 error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, 613 error.io.pci.nr-drw-u@pcibus/pcidev/pcifn, 614 error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; 615 616prop error.io.pci.badreq-drw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 617 error.io.pci.nr-drw-u@pcibus/pcidev/pcifn, 618 error.io.pci.ta-drw-u@pcibus/pcidev/pcifn; 619 620prop error.io.pci.nr-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 621 ereport.io.pci.sec-ma@pcibus/pcidev/pcifn, 622 error.io.pci.serr-u@pcibus/pcidev/pcifn; 623 624prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 625 ereport.io.pci.sta@pcibus/pcidev/pcifn; 626 627prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn { IS_BDG } (1)-> 628 ereport.io.pci.sta@pcibus/pcidev/pcifn; 629 630prop error.io.pci.ta-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (2)-> 631 ereport.io.pci.sec-rta@pcibus/pcidev/pcifn, 632 error.io.pci.serr-u@pcibus/pcidev/pcifn; 633 634prop error.io.pci.nr-drw-u@pcibus/pcidev/pcifn (1)-> 635 error.io.pci.ma-u@pcibus/pcidev/pcifn; 636 637prop error.io.pci.nr-drw-u@pcibus/pcidev/pcifn (1)-> 638 error.io.pci.target-rta-d@pcibus/pcidev/pcifn, 639 error.io.pci.target-ma-d@pcibus/pcidev/pcifn; 640 641prop error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 642 ereport.io.pci.sec-ma@pcibus/pcidev/pcifn; 643 644prop error.io.pci.ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 645 error.io.pci.ma-u@pcibus/pcidev/pcifn, 646 error.io.pci.ta-u@pcibus/pcidev/pcifn; 647 648prop error.io.pci.ta-drw-u@pcibus/pcidev/pcifn (1)-> 649 error.io.pci.ta-u@pcibus/pcidev/pcifn; 650 651prop error.io.pci.ta-drw-u@pcibus/pcidev/pcifn (1)-> 652 error.io.pci.target-rta-d@pcibus/pcidev/pcifn; 653 654/* 655 * bad data (ie invalid but not an ape or dpe) can propagate upstream, 656 * and at some point may result in a target or master abort 657 */ 658prop error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 659 error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn, 660 error.io.pci.nr-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn, 661 error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 662 663prop error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn (0)-> 664 error.io.pci.nr-pw-d@pcibus/pcidev/pcifn, 665 error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; 666 667prop error.io.pci.nr-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 668 ereport.io.pci.ma@pcibus/pcidev/pcifn; 669 670prop error.io.pci.nr-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 671 ereport.io.pci.ma@pcibus/pcidev/pcifn, 672 error.io.pci.serr-u@pcibus/pcidev/pcifn; 673 674prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 675 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; 676 677prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 678 ereport.io.pci.rta@pcibus/pcidev/pcifn; 679 680prop error.io.pci.ta-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 681 ereport.io.pci.rta@pcibus/pcidev/pcifn, 682 error.io.pci.serr-u@pcibus/pcidev/pcifn; 683 684/* 685 * for delayed writes we treat upstream badreq specially as rta always 686 * propagates back downstream to the leaf 687 */ 688prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 689 ereport.io.pci.rta@pcibus/pcidev/pcifn, 690 ereport.io.pci.ma@pcibus/pcidev/pcifn; 691 692prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 693 ereport.io.pci.ma@pcibus/pcidev/pcifn, 694 ereport.io.pci.rta@pcibus/pcidev/pcifn; 695 696prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 697 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; 698 699prop error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 700 error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn; 701 702prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 703 ereport.io.pci.ma@pcibus/pcidev/pcifn; 704 705prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 706 ereport.io.pci.ma@pcibus/pcidev/pcifn; 707 708prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 709 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; 710 711prop error.io.pci.nr-drw-d@pcibus/pcidev/pcifn (1)-> 712 error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>, 713 error.io.pci.nr-drw-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 714 715prop error.io.pci.ta-drw-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 716 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn; 717 718prop error.io.pci.ta-drw-d@pcibus/pcidev/pcifn (1)-> 719 error.io.pci.ta-d@pcibus/pcidev/pcifn; 720 721prop error.io.pci.ta-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 722 ereport.io.pci.rta@pcibus/pcidev/pcifn; 723 724prop error.io.pci.ta-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 725 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn, 726 ereport.io.pci.rta@pcibus/pcidev/pcifn; 727 728prop error.io.pci.ta-d@pcibus/pcidev/pcifn (1)-> 729 error.io.pci.ta-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 730 731/* 732 * Request with address parity error must be detected by parent device 733 * and can optionally result in a target or master abort. 734 * It may also be detected by sibling devices on a bus 735 */ 736prop error.io.pci.ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 737 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 738 ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, 739 error.io.pci.serr-u@pcibus/pcidev/pcifn; 740 741prop error.io.pci.ape-u@pcibus/pcidev/pcifn (0)-> 742 error.io.pci.nr-drw-d@pcibus/pcidev/pcifn, 743 error.io.pci.ta-drw-d@pcibus/pcidev/pcifn, 744 error.io.pci.nr-pw-d@pcibus/pcidev/pcifn, 745 error.io.pci.ta-pw-d@pcibus/pcidev/pcifn; 746 747prop error.io.pci.ape-u@pcibus/pcidev/pcifn (0)-> 748 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 749 750prop error.io.pci.ape-u@pcibus/pcidev[fromdev]/pcifn (0)-> 751 ereport.io.pci.dpe@pcibus/pcidev<todev>/pcifn<> {fromdev != todev}, 752 ereport.io.pci.sserr@pcibus/pcidev<todev>/pcifn<> {fromdev != todev}; 753 754prop error.io.pci.ape-u@pcibus/pcidev/pcifn (1)-> 755 error.io.pci.source-ape-u@pcibus/pcidev/pcifn; 756 757/* 758 * If the bridge sees an upstream split completion error (pci-x only) it could 759 * result in a number of things 760 * - for various faults in the split completion (eg address parity error) 761 * we will respond with a target abort (which the child device will treat 762 * as a split completion ta) 763 * - for other faults we can't tell who send the split completion and so 764 * just drop the request (which the child device sees as a split 765 * completion ma) 766 */ 767prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 768 ereport.io.pci.sec-sta@pcibus/pcidev/pcifn, 769 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 770 ereport.io.pci.sec-rserr@pcibus/pcidev/pcifn, 771 error.io.pci.serr-u@pcibus/pcidev/pcifn; 772 773prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> 774 error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn, 775 error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn; 776 777prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn (1)-> 778 error.io.pci.serr-u@pcibus/pcidev/pcifn; 779 780prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 781 ereport.io.pci.sserr@pcibus/pcidev/pcifn, 782 ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn; 783 784prop error.io.pcix.spl-comp-ma-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 785 ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn, 786 ereport.io.pci.ma@pcibus/pcidev/pcifn; 787 788prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn (1)-> 789 error.io.pci.serr-u@pcibus/pcidev/pcifn; 790 791prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 792 ereport.io.pci.sserr@pcibus/pcidev/pcifn, 793 ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn; 794 795prop error.io.pcix.spl-comp-ta-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 796 ereport.io.pcix.spl-dis@pcibus/pcidev/pcifn, 797 ereport.io.pci.rta@pcibus/pcidev/pcifn; 798 799prop error.io.pcix.scpe-u@pcibus/pcidev/pcifn (1)-> 800 error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn; 801 802/* 803 * request with address parity error must be detected by child device 804 * and can optionally result in a target or master abort. 805 */ 806prop error.io.pci.ape-d@pcibus/pcidev/pcifn (1)-> 807 error.io.pci.serr-u@pcibus/pcidev/pcifn; 808 809prop error.io.pci.ape-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 810 error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn; 811 812prop error.io.pci.leaf-ape-d@pcibus/pcidev/pcifn { IS_LEAF } (2)-> 813 ereport.io.pci.sserr@pcibus/pcidev/pcifn, 814 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 815 816prop error.io.pci.ape-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 817 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 818 819prop error.io.pci.ape-d@pcibus/pcidev/pcifn (0)-> 820 error.io.pci.ta-pw-u@pcibus/pcidev/pcifn, 821 error.io.pci.ta-drw-u@pcibus/pcidev/pcifn, 822 error.io.pci.nr-pw-u@pcibus/pcidev/pcifn, 823 error.io.pci.nr-drw-u@pcibus/pcidev/pcifn; 824 825/* 826 * If the device sees a downstream split completion error (pci-x only) it could 827 * result in a number of things 828 * - for various faults in the split completion (eg address parity error) 829 * we will respond with a target abort (which the parent bridge will treat 830 * as a split completion ta) 831 * - for other faults we can't tell who send the split completion and so 832 * just drop the request (which the parent bridge sees as a split 833 * completion ma) 834 */ 835prop error.io.pcix.scpe-d@pcibus/pcidev/pcifn (0)-> 836 ereport.io.pci.sta@pcibus/pcidev/pcifn, 837 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 838 ereport.io.pci.sserr@pcibus/pcidev/pcifn, 839 error.io.pci.serr-u@pcibus/pcidev/pcifn; 840 841prop error.io.pcix.scpe-d@pcibus/pcidev/pcifn (1)-> 842 error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn, 843 error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn; 844 845prop error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 846 ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, 847 error.io.pci.serr-u@pcibus/pcidev/pcifn, 848 ereport.io.pci.sec-ma@pcibus/pcidev/pcifn; 849 850prop error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 851 ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, 852 error.io.pci.serr-u@pcibus/pcidev/pcifn, 853 ereport.io.pci.sec-rta@pcibus/pcidev/pcifn; 854 855/* 856 * request with data parity error can propagate upstream 857 * 858 * for PCI/X (but not PCI) the split write can optionally be forwarded across 859 * the bridge, maintaining bad parity/ecc 860 * 861 * if there is a dpe on a retry on a delayed write, we don't send another 862 * retry, and eventually the dto timer will expire 863 */ 864prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 865 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 866 867prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 868 ereport.io.pci.mdpe@pcibus/pcidev/pcifn, 869 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 870 error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; 871 872prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 873 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn; 874 875prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 876 ereport.io.pci.mdpe@pcibus/pcidev/pcifn, 877 error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; 878 879prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 880 error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 881 882prop error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 883 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 884 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 885 error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; 886 887/* 888 * Request with data parity error can propagate downstream. A hardened 889 * leaf driver should handle the error, but may or may not be able to 890 * avoid service impact. We handle to two cases separately. If there is 891 * service impact we will fail immediately, if not we will feed into a SERD 892 * engine. 893 * 894 * for PCI/X (but not PCI) the split write can optionally be forwarded across 895 * the bridge, maintaining bad parity/ecc 896 * 897 * if there is a dpe on a retry on a delayed write, we don't send another 898 * retry, and eventually the dto timer will expire 899 */ 900prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> 901 error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, 902 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 903 904prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 905 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 906 907prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 908 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 909 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 910 911prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> 912 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 913 914prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> 915 error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, 916 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 917 918prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 919 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 920 921prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 922 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 923 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 924 925prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> 926 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 927 928prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 929 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 930 931prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 932 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 933 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 934 935prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn (1)-> 936 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 937 938prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> 939 error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, 940 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn, 941 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 942 943prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> 944 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 945 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 946 947prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 948 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 949 950prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 951 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 952 953prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 954 error.io.pci.retry-to-d@pcibus/pcidev/pcifn; 955 956prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> 957 error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, 958 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn, 959 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 960 961prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> 962 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 963 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 964 965prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 966 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 967 968prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 969 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 970 971prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 972 error.io.pci.retry-to-d@pcibus/pcidev/pcifn; 973 974prop error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn (0)-> 975 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 976 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 977 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 978 979prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> 980 error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, 981 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 982 983prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 984 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 985 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 986 987prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 988 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 989 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 990 991prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> 992 error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 993 994prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> 995 error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, 996 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 997 998prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 999 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 1000 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 1001 1002prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 1003 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 1004 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 1005 1006prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> 1007 error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1008 1009/* 1010 * delayed read/write retry timeout can cause dto at a bridge 1011 */ 1012prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 1013 error.io.pci.retry-to-u@pcibus/pcidev/pcifn; 1014 1015prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 1016 ereport.io.pci.dto@pcibus/pcidev/pcifn; 1017 1018prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 1019 error.io.pci.serr-u@pcibus/pcidev/pcifn; 1020 1021prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn (0)-> 1022 error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1023 1024prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 1025 ereport.io.pci.dto@pcibus/pcidev/pcifn; 1026 1027prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 1028 error.io.pci.serr-u@pcibus/pcidev/pcifn; 1029 1030/* 1031 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1032 * source- propagations. 1033 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1034 */ 1035event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1036event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1037event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1038event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1039event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1040event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1041event error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1042event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1043event error.io.service.restored@pcibus/pcidev/pcifn; 1044 1045event ereport.io.service.lost@pcibus/pcidev/pcifn{within(5s)}; 1046event ereport.io.service.degraded@pcibus/pcidev/pcifn{within(5s)}; 1047event ereport.io.service.unaffected@pcibus/pcidev/pcifn{within(5s)}; 1048event ereport.io.service.restored@pcibus/pcidev/pcifn{within(30s)}; 1049 1050prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1051 ereport.io.service.lost@pcibus/pcidev/pcifn, 1052 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1053 1054prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1055 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1056 error.io.service.restored@pcibus/pcidev/pcifn; 1057 1058prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1059 ereport.io.service.lost@pcibus/pcidev/pcifn, 1060 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1061 1062prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1063 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1064 error.io.service.restored@pcibus/pcidev/pcifn; 1065 1066prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1067 ereport.io.service.lost@pcibus/pcidev/pcifn, 1068 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1069 1070prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1071 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1072 error.io.service.restored@pcibus/pcidev/pcifn; 1073 1074prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn (1)-> 1075 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1076 1077prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn (1)-> 1078 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1079 1080prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn (1)-> 1081 error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1082 1083prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn (1)-> 1084 error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1085 1086prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn (1)-> 1087 error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1088 1089prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn (1)-> 1090 error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1091 1092prop error.io.pci.source-ape-u@pcibus/pcidev/pcifn (1)-> 1093 error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1094 1095prop error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn (1)-> 1096 error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1097 1098/* 1099 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1100 * Handling of leaf driver detected internal errors. Use serd engine if 1101 * no service impact - otherwise fail immediately 1102 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1103 */ 1104event ereport.io.device.inval_state@pcibus/pcidev/pcifn{within(5s)}; 1105event ereport.io.device.no_response@pcibus/pcidev/pcifn{within(5s)}; 1106event ereport.io.device.stall@pcibus/pcidev/pcifn{within(5s)}; 1107event ereport.io.device.badint_limit@pcibus/pcidev/pcifn{within(5s)}; 1108event ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1109 1110prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1111 ereport.io.service.lost@pcibus/pcidev/pcifn, 1112 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1113 1114prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1115 ereport.io.service.restored@pcibus/pcidev/pcifn; 1116 1117prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1118 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1119 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1120 ereport.io.device.stall@pcibus/pcidev/pcifn, 1121 ereport.io.device.badint_limit@pcibus/pcidev/pcifn; 1122 1123prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1124 ereport.io.service.lost@pcibus/pcidev/pcifn, 1125 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1126 1127engine serd.io.device.nonfatal@pcibus/pcidev/pcifn, 1128 N=NONFATAL_COUNT, T=NONFATAL_TIME, method=persistent, 1129 trip=ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1130 1131event upset.io.device.nonfatal@pcibus/pcidev/pcifn, 1132 engine=serd.io.device.nonfatal@pcibus/pcidev/pcifn; 1133 1134prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1135 ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1136 1137prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1138 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1139 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1140 ereport.io.device.stall@pcibus/pcidev/pcifn, 1141 ereport.io.device.badint_limit@pcibus/pcidev/pcifn, 1142 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1143 error.io.service.restored@pcibus/pcidev/pcifn; 1144 1145prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1146 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1147 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1148 ereport.io.device.stall@pcibus/pcidev/pcifn, 1149 ereport.io.device.badint_limit@pcibus/pcidev/pcifn; 1150 1151prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1152 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1153 error.io.service.restored@pcibus/pcidev/pcifn; 1154 1155/* 1156 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1157 * Handling of pci express nonfatal errors (dpe). Use serd engine if 1158 * no service impact - otherwise fail immediately 1159 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1160 */ 1161event ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1162event ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1163 1164engine serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, 1165 N=NONFATAL_DPE_U_COUNT, T=NONFATAL_DPE_U_TIME, method=persistent, 1166 trip=ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1167 1168event upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, 1169 engine=serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1170 1171prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1172 ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1173 1174prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1175 error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn, 1176 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1177 error.io.service.restored@pcibus/pcidev/pcifn; 1178 1179prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1180 error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn; 1181 1182prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1183 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1184 error.io.service.restored@pcibus/pcidev/pcifn; 1185 1186engine serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, 1187 N=NONFATAL_DPE_D_COUNT, T=NONFATAL_DPE_D_TIME, method=persistent, 1188 trip=ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1189 1190event upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, 1191 engine=serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1192 1193prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1194 ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1195 1196prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1197 error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn, 1198 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1199 error.io.service.restored@pcibus/pcidev/pcifn; 1200 1201prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1202 error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn; 1203 1204prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1205 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1206 error.io.service.restored@pcibus/pcidev/pcifn; 1207 1208/* 1209 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1210 * stub unused ereports 1211 * - ignore rx-spl as we can't tell what message it was (and we should have 1212 * diagnosed the problem anyway from standard pci ereports) 1213 * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info) 1214 * - ignore unex-spl/sec-unex-spl 1215 * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe) 1216 * - ignore ecc.ce ereports for now (could do serd on these) 1217 * - ignore nr ereport 1218 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1219 */ 1220 1221event ereport.io.pci.nr@pcibus/pcidev/pcifn{within(5s)}; 1222event ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn{within(5s)}; 1223event ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn{within(5s)}; 1224event ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn{within(5s)}; 1225event ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn{within(5s)}; 1226event ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn{within(5s)}; 1227event ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; 1228event ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; 1229event ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; 1230event ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; 1231event ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; 1232event ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; 1233event ereport.io.pcix.s-ce@pcibus/pcidev/pcifn{within(5s)}; 1234event ereport.io.pcix.s-ue@pcibus/pcidev/pcifn{within(5s)}; 1235event ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; 1236event ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; 1237event ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; 1238event ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; 1239event ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; 1240event ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; 1241event ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn{within(5s)}; 1242event ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn{within(5s)}; 1243 1244event upset.io.pcix.discard@pcibus/pcidev/pcifn; 1245 1246prop upset.io.pcix.discard@pcibus/pcidev/pcifn (1)-> 1247 ereport.io.pci.nr@pcibus/pcidev/pcifn, 1248 ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn, 1249 ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn, 1250 ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn, 1251 ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn, 1252 ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn, 1253 ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn, 1254 ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn, 1255 ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn, 1256 ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn, 1257 ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn, 1258 ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn, 1259 ereport.io.pcix.s-ce@pcibus/pcidev/pcifn, 1260 ereport.io.pcix.s-ue@pcibus/pcidev/pcifn, 1261 ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn, 1262 ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn, 1263 ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn, 1264 ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn, 1265 ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn, 1266 ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn, 1267 ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn, 1268 ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn; 1269