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