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 2007 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 (2)-> 848 ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, 849 error.io.pci.serr-u@pcibus/pcidev/pcifn; 850 851prop error.io.pcix.spl-comp-ma-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 852 ereport.io.pci.sec-ma@pcibus/pcidev/pcifn; 853 854prop error.io.pcix.spl-comp-ta-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 855 ereport.io.pcix.sec-spl-dis@pcibus/pcidev/pcifn, 856 error.io.pci.serr-u@pcibus/pcidev/pcifn, 857 ereport.io.pci.sec-rta@pcibus/pcidev/pcifn; 858 859/* 860 * request with data parity error can propagate upstream 861 * 862 * for PCI/X (but not PCI) the split write can optionally be forwarded across 863 * the bridge, maintaining bad parity/ecc 864 * 865 * if there is a dpe on a retry on a delayed write, we don't send another 866 * retry, and eventually the dto timer will expire 867 */ 868prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 869 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 870 871prop error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 872 ereport.io.pci.mdpe@pcibus/pcidev/pcifn, 873 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 874 error.io.pci.dpdata-pw-u@pcibus/pcidev/pcifn; 875 876prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 877 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn; 878 879prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 880 ereport.io.pci.mdpe@pcibus/pcidev/pcifn, 881 error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn; 882 883prop error.io.pci.dpdata-dw-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 884 error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 885 886prop error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (3)-> 887 ereport.io.pci.sec-dpe@pcibus/pcidev/pcifn, 888 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 889 error.io.pci.dpdata-dr-u@pcibus/pcidev/pcifn; 890 891/* 892 * Request with data parity error can propagate downstream. A hardened 893 * leaf driver should handle the error, but may or may not be able to 894 * avoid service impact. We handle to two cases separately. If there is 895 * service impact we will fail immediately, if not we will feed into a SERD 896 * engine. 897 * 898 * for PCI/X (but not PCI) the split write can optionally be forwarded across 899 * the bridge, maintaining bad parity/ecc 900 * 901 * if there is a dpe on a retry on a delayed write, we don't send another 902 * retry, and eventually the dto timer will expire 903 */ 904prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> 905 error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, 906 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 907 908prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 909 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 910 911prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 912 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 913 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 914 915prop error.io.pci.f-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> 916 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 917 918prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (2)-> 919 error.io.pci.perr-pw-u@pcibus/pcidev/pcifn, 920 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 921 922prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 923 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 924 925prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 926 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 927 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 928 929prop error.io.pci.nf-dpdata-pw-d@pcibus/pcidev/pcifn (1)-> 930 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 931 932prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 933 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 934 935prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 936 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 937 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn; 938 939prop error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn (1)-> 940 error.io.pci.dpdata-pw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 941 942prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> 943 error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, 944 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn, 945 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 946 947prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> 948 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 949 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 950 951prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 952 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 953 954prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 955 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 956 957prop error.io.pci.f-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 958 error.io.pci.retry-to-d@pcibus/pcidev/pcifn; 959 960prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (3)-> 961 error.io.pci.perr-dw-u@pcibus/pcidev/pcifn, 962 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn, 963 error.io.pci.target-mdpe-d@pcibus/pcidev/pcifn; 964 965prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn (0)-> 966 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 967 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 968 969prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 970 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 971 972prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 973 ereport.io.pci.dpe@pcibus/pcidev/pcifn; 974 975prop error.io.pci.nf-dpdata-dw-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 976 error.io.pci.retry-to-d@pcibus/pcidev/pcifn; 977 978prop error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn (0)-> 979 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 980 ereport.io.pci.sec-mdpe@pcibus/pcidev/pcifn, 981 error.io.pci.dpdata-dw-fwd-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 982 983prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> 984 error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, 985 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 986 987prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 988 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 989 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 990 991prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 992 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 993 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 994 995prop error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> 996 error.io.pci.f-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 997 998prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (2)-> 999 error.io.pci.perr-dr-u@pcibus/pcidev/pcifn, 1000 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 1001 1002prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1003 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 1004 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 1005 1006prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn { IS_BDG } (2)-> 1007 ereport.io.pci.dpe@pcibus/pcidev/pcifn, 1008 ereport.io.pci.mdpe@pcibus/pcidev/pcifn; 1009 1010prop error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn (1)-> 1011 error.io.pci.nf-dpdata-dr-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1012 1013/* 1014 * delayed read/write retry timeout can cause dto at a bridge 1015 */ 1016prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 1017 error.io.pci.retry-to-u@pcibus/pcidev/pcifn; 1018 1019prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (1)-> 1020 ereport.io.pci.dto@pcibus/pcidev/pcifn; 1021 1022prop error.io.pci.retry-to-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn (0)-> 1023 error.io.pci.serr-u@pcibus/pcidev/pcifn; 1024 1025prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn (0)-> 1026 error.io.pci.retry-to-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1027 1028prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (1)-> 1029 ereport.io.pci.dto@pcibus/pcidev/pcifn; 1030 1031prop error.io.pci.retry-to-d@pcibus/pcidev/pcifn { IS_BDG } (0)-> 1032 error.io.pci.serr-u@pcibus/pcidev/pcifn; 1033 1034/* 1035 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1036 * source- propagations. 1037 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1038 */ 1039event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1040event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1041event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1042event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1043event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1044event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1045event error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1046event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 1047event error.io.service.restored@pcibus/pcidev/pcifn; 1048 1049event ereport.io.service.lost@pcibus/pcidev/pcifn{within(5s)}; 1050event ereport.io.service.degraded@pcibus/pcidev/pcifn{within(5s)}; 1051event ereport.io.service.unaffected@pcibus/pcidev/pcifn{within(5s)}; 1052event ereport.io.service.restored@pcibus/pcidev/pcifn{within(30s)}; 1053 1054prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1055 ereport.io.service.lost@pcibus/pcidev/pcifn, 1056 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1057 1058prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1059 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1060 error.io.service.restored@pcibus/pcidev/pcifn; 1061 1062prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1063 ereport.io.service.lost@pcibus/pcidev/pcifn, 1064 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1065 1066prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1067 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1068 error.io.service.restored@pcibus/pcidev/pcifn; 1069 1070prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1071 ereport.io.service.lost@pcibus/pcidev/pcifn, 1072 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1073 1074prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1075 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1076 error.io.service.restored@pcibus/pcidev/pcifn; 1077 1078prop error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn (1)-> 1079 error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1080 1081prop error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn (1)-> 1082 error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1083 1084prop error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn (1)-> 1085 error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1086 1087prop error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn (1)-> 1088 error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1089 1090prop error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn (1)-> 1091 error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1092 1093prop error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn (1)-> 1094 error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1095 1096prop error.io.pci.source-ape-u@pcibus/pcidev/pcifn (1)-> 1097 error.io.pci.source-ape-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1098 1099prop error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn (1)-> 1100 error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1101 1102/* 1103 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1104 * Handling of leaf driver detected internal errors. Use serd engine if 1105 * no service impact - otherwise fail immediately 1106 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1107 */ 1108event ereport.io.device.inval_state@pcibus/pcidev/pcifn{within(5s)}; 1109event ereport.io.device.no_response@pcibus/pcidev/pcifn{within(5s)}; 1110event ereport.io.device.stall@pcibus/pcidev/pcifn{within(5s)}; 1111event ereport.io.device.badint_limit@pcibus/pcidev/pcifn{within(5s)}; 1112event ereport.io.device.corr@pcibus/pcidev/pcifn{within(5s)}; 1113event ereport.io.device.uncorr@pcibus/pcidev/pcifn{within(5s)}; 1114event ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1115 1116prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1117 ereport.io.service.lost@pcibus/pcidev/pcifn, 1118 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1119 1120prop error.io.service.restored@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1121 ereport.io.service.restored@pcibus/pcidev/pcifn; 1122 1123prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1124 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1125 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1126 ereport.io.device.stall@pcibus/pcidev/pcifn, 1127 ereport.io.device.badint_limit@pcibus/pcidev/pcifn, 1128 ereport.io.device.corr@pcibus/pcidev/pcifn, 1129 ereport.io.device.uncorr@pcibus/pcidev/pcifn; 1130 1131prop error.io.device.f-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1132 ereport.io.service.lost@pcibus/pcidev/pcifn, 1133 ereport.io.service.degraded@pcibus/pcidev/pcifn; 1134 1135engine serd.io.device.nonfatal@pcibus/pcidev/pcifn, 1136 N=NONFATAL_COUNT, T=NONFATAL_TIME, method=persistent, 1137 trip=ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1138 1139event upset.io.device.nonfatal@pcibus/pcidev/pcifn, 1140 engine=serd.io.device.nonfatal@pcibus/pcidev/pcifn; 1141 1142prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1143 ereport.io.device.nf-device@pcibus/pcidev/pcifn; 1144 1145prop error.io.device.nf-device@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1146 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1147 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1148 ereport.io.device.stall@pcibus/pcidev/pcifn, 1149 ereport.io.device.badint_limit@pcibus/pcidev/pcifn, 1150 ereport.io.device.corr@pcibus/pcidev/pcifn, 1151 ereport.io.device.uncorr@pcibus/pcidev/pcifn, 1152 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1153 error.io.service.restored@pcibus/pcidev/pcifn; 1154 1155prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1156 ereport.io.device.inval_state@pcibus/pcidev/pcifn, 1157 ereport.io.device.no_response@pcibus/pcidev/pcifn, 1158 ereport.io.device.stall@pcibus/pcidev/pcifn, 1159 ereport.io.device.badint_limit@pcibus/pcidev/pcifn, 1160 ereport.io.device.corr@pcibus/pcidev/pcifn, 1161 ereport.io.device.uncorr@pcibus/pcidev/pcifn; 1162 1163prop upset.io.device.nonfatal@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1164 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1165 error.io.service.restored@pcibus/pcidev/pcifn; 1166 1167/* 1168 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1169 * Handling of pci express nonfatal errors (dpe). Use serd engine if 1170 * no service impact - otherwise fail immediately 1171 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1172 */ 1173event ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1174event ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1175 1176engine serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, 1177 N=NONFATAL_DPE_U_COUNT, T=NONFATAL_DPE_U_TIME, method=persistent, 1178 trip=ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1179 1180event upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn, 1181 engine=serd.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1182 1183prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1184 ereport.io.pci.nf-dpe-u@pcibus/pcidev/pcifn; 1185 1186prop error.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1187 error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn, 1188 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1189 error.io.service.restored@pcibus/pcidev/pcifn; 1190 1191prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1192 error.io.pci.nonfatal-dpe-u@pcibus/pcidev/pcifn; 1193 1194prop upset.io.pci.nf-dpe-u@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1195 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1196 error.io.service.restored@pcibus/pcidev/pcifn; 1197 1198engine serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, 1199 N=NONFATAL_DPE_D_COUNT, T=NONFATAL_DPE_D_TIME, method=persistent, 1200 trip=ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1201 1202event upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn, 1203 engine=serd.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1204 1205prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1206 ereport.io.pci.nf-dpe-d@pcibus/pcidev/pcifn; 1207 1208prop error.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (0)-> 1209 error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn, 1210 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1211 error.io.service.restored@pcibus/pcidev/pcifn; 1212 1213prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1214 error.io.pci.nonfatal-dpe-d@pcibus/pcidev/pcifn; 1215 1216prop upset.io.pci.nf-dpe-d@pcibus/pcidev/pcifn { IS_LEAF } (1)-> 1217 ereport.io.service.unaffected@pcibus/pcidev/pcifn, 1218 error.io.service.restored@pcibus/pcidev/pcifn; 1219 1220/* 1221 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1222 * stub unused ereports 1223 * - ignore rx-spl as we can't tell what message it was (and we should have 1224 * diagnosed the problem anyway from standard pci ereports) 1225 * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info) 1226 * - ignore unex-spl/sec-unex-spl 1227 * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe) 1228 * - ignore ecc.ce ereports for now (could do serd on these) 1229 * - ignore nr ereport 1230 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1231 */ 1232 1233event ereport.io.pci.nr@pcibus/pcidev/pcifn{within(5s)}; 1234event ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn{within(5s)}; 1235event ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn{within(5s)}; 1236event ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn{within(5s)}; 1237event ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn{within(5s)}; 1238event ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn{within(5s)}; 1239event ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; 1240event ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; 1241event ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; 1242event ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; 1243event ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; 1244event ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; 1245event ereport.io.pcix.s-ce@pcibus/pcidev/pcifn{within(5s)}; 1246event ereport.io.pcix.s-ue@pcibus/pcidev/pcifn{within(5s)}; 1247event ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn{within(5s)}; 1248event ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn{within(5s)}; 1249event ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn{within(5s)}; 1250event ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn{within(5s)}; 1251event ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn{within(5s)}; 1252event ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn{within(5s)}; 1253event ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn{within(5s)}; 1254event ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn{within(5s)}; 1255 1256event upset.io.pcix.discard@pcibus/pcidev/pcifn; 1257 1258prop upset.io.pcix.discard@pcibus/pcidev/pcifn (1)-> 1259 ereport.io.pci.nr@pcibus/pcidev/pcifn, 1260 ereport.io.pcix.rx-spl@pcibus/pcidev/pcifn, 1261 ereport.io.pcix.unex-spl@pcibus/pcidev/pcifn, 1262 ereport.io.pcix.sec-unex-spl@pcibus/pcidev/pcifn, 1263 ereport.io.pcix.sec-spl-or@pcibus/pcidev/pcifn, 1264 ereport.io.pcix.sec-spl-dly@pcibus/pcidev/pcifn, 1265 ereport.io.pcix.ecc.ce-addr@pcibus/pcidev/pcifn, 1266 ereport.io.pcix.ecc.ce-attr@pcibus/pcidev/pcifn, 1267 ereport.io.pcix.ecc.ce-data@pcibus/pcidev/pcifn, 1268 ereport.io.pcix.ecc.ue-addr@pcibus/pcidev/pcifn, 1269 ereport.io.pcix.ecc.ue-attr@pcibus/pcidev/pcifn, 1270 ereport.io.pcix.ecc.ue-data@pcibus/pcidev/pcifn, 1271 ereport.io.pcix.s-ce@pcibus/pcidev/pcifn, 1272 ereport.io.pcix.s-ue@pcibus/pcidev/pcifn, 1273 ereport.io.pcix.sec-ecc.ce-addr@pcibus/pcidev/pcifn, 1274 ereport.io.pcix.sec-ecc.ce-attr@pcibus/pcidev/pcifn, 1275 ereport.io.pcix.sec-ecc.ce-data@pcibus/pcidev/pcifn, 1276 ereport.io.pcix.sec-ecc.ue-addr@pcibus/pcidev/pcifn, 1277 ereport.io.pcix.sec-ecc.ue-attr@pcibus/pcidev/pcifn, 1278 ereport.io.pcix.sec-ecc.ue-data@pcibus/pcidev/pcifn, 1279 ereport.io.pcix.sec-s-ce@pcibus/pcidev/pcifn, 1280 ereport.io.pcix.sec-s-ue@pcibus/pcidev/pcifn; 1281