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