1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#pragma ident "%Z%%M% %I% %E% SMI" 27 28#pragma dictionary "PCIEX" 29 30#include <fm/topo_hc.h> 31 32/* 33 * FIT rates - assume leaf devices are somewhat less reliable than 34 * root complexes, switches and bridges 35 */ 36#define PCIEX_RC_FIT 500 37#define PCIEX_SW_FIT 500 38#define PCIEX_BDG_FIT 500 39#define PCIEX_DEV_FIT 1000 40#define PCIEX_RC_INV_FIT 500 41#define PCIEX_DEV_INV_FIT 1000 42#define PCIEX_RC_NR_FIT 500 43#define PCIEX_SW_NR_FIT 500 44#define PCIEX_BDG_NR_FIT 500 45#define PCIEX_DEV_NR_FIT 1000 46#define PCIEX_BUS_FIT 500 47#define PCIEX_BUS_NR_FIT 500 48 49/* 50 * SERD parameters. 51 * 52 * PCI Express correctable link errors are automatically handled by the 53 * hardware, so have relatively little impact and we can allow quite a 54 * high frequency. We will also be quite conservative about nonfatal internal 55 * errors reported by the driver. 56 * 57 * Nonfatal dpe errors (ptlp/ecrc errors) have to be recovered by the hardened 58 * driver which may cause intermittant performance/responsiveness problems, so 59 * we have tighter serd parameters for these. These are most likely errors in 60 * buffers/caches within devices and bridges, so use similar rates to cpu 61 * data cache parity errors. 62 */ 63#define CORRLINK_COUNT 6 64#define CORRLINK_TIME 2h 65#define NONFATAL_COUNT 6 66#define NONFATAL_TIME 2h 67#define NONFATAL_DPE_U_COUNT 3 68#define NONFATAL_DPE_U_TIME 168h 69#define NONFATAL_DPE_D_COUNT 3 70#define NONFATAL_DPE_D_TIME 168h 71 72/* 73 * if the source-id payload is valid, then check it matches 74 */ 75#define SOURCE_ID_MATCHES_BDF \ 76 (!payloadprop_defined("source-valid") || \ 77 payloadprop("source-valid") == 0 || \ 78 payloadprop("source-id") == ((b << 8) | (d << 3) | f)) 79 80#define SOURCE_ID_MATCHES_OWN_BDF \ 81 (payloadprop_defined("source-valid") && \ 82 payloadprop("source-valid") == 1 && \ 83 payloadprop("source-id") == (confprop(asru(pciexrc), TOPO_PCI_BDF) + 0)) 84 85/* 86 * Other useful macros. These use the EXCAP property (PCI Express Capabilities 87 * register) to find the type for PCI Express devices, and the CLASS-CODE 88 * property (PCI Class Code register) for to find the type of PCI devices behind 89 * a PCI Express-PCI bridge - note that 60400 and 60401 are defined as PCI-PCI 90 * bridges, everything else is consider a PCI leaf device. 91 */ 92#define BDF_IS_UNDER_RC \ 93 is_under(pciexrc<>, pciexbus[b]/pciexdev[d]/pciexfn[f]) 94 95#define PCIBDF_IS_UNDER_RC \ 96 is_under(pciexrc<>, pcibus[b]/pcidev[d]/pcifn[f]) 97 98#define PCIBDF_IS_UNDER_DEV \ 99 is_under(pciexbus/pciexdev/pciexfn, pcibus[b]/pcidev[d]/pcifn[f]) 100 101#define IS_SWD \ 102 (confprop(asru(pciexbus/pciexdev/pciexfn), TOPO_PCI_EXCAP) == \ 103 "pciexswd") 104 105#define IS_SWU \ 106 (confprop(asru(pciexbus/pciexdev/pciexfn), TOPO_PCI_EXCAP) == \ 107 "pciexswu") 108 109#define IS_LEAF \ 110 (confprop(asru(pciexbus/pciexdev/pciexfn), TOPO_PCI_EXCAP) == \ 111 "pciexdev") 112 113#define IS_PCI_LEAF \ 114 (confprop_defined(asru(pcibus/pcidev/pcifn), TOPO_PCI_CLASS) && \ 115 confprop(asru(pcibus/pcidev/pcifn), TOPO_PCI_CLASS) != "60400" && \ 116 confprop(asru(pcibus/pcidev/pcifn), TOPO_PCI_CLASS) != "60401") 117 118#define BDF_IS_PCI_LEAF \ 119 (confprop_defined(asru(pcibus[b]/pcidev[d]/pcifn[f]), \ 120 TOPO_PCI_CLASS) && \ 121 confprop(asru(pcibus[b]/pcidev[d]/pcifn[f]), TOPO_PCI_CLASS) != \ 122 "60400" && \ 123 confprop(asru(pcibus[b]/pcidev[d]/pcifn[f]), TOPO_PCI_CLASS) != "60401") 124 125#define IS_BDG \ 126 (confprop(asru(pciexbus/pciexdev/pciexfn), TOPO_PCI_EXCAP) == \ 127 "pcibus") 128 129#define BDF_IS_LEAF \ 130 (confprop(asru(pciexbus[b]/pciexdev[d]/pciexfn[f]), \ 131 TOPO_PCI_EXCAP) == "pciexdev") 132 133/* 134 * define faults 135 */ 136asru pciexrc; 137fru pciexrc; 138asru pciexbus/pciexdev/pciexfn; 139fru pciexbus/pciexdev; 140fru pciexbus; 141asru pciexbus; 142 143event fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn, 144 FITrate=PCIEX_DEV_FIT, FRU=pciexbus/pciexdev, 145 ASRU=pciexbus/pciexdev/pciexfn; 146 147event fault.io.pciex.device-interr@pciexrc, 148 FITrate=PCIEX_RC_FIT, FRU=pciexrc, ASRU=pciexrc; 149 150event fault.io.pciex.device-invreq@pciexbus/pciexdev/pciexfn, 151 FITrate=PCIEX_DEV_INV_FIT, FRU=pciexbus/pciexdev, 152 ASRU=pciexbus/pciexdev/pciexfn; 153 154event upset.io.pciex.device-invreq@pciexrc; 155 156event fault.io.pciex.device-noresp@pciexbus/pciexdev/pciexfn, 157 FITrate=PCIEX_DEV_NR_FIT, FRU=pciexbus/pciexdev, 158 ASRU=pciexbus/pciexdev/pciexfn; 159 160event fault.io.pciex.device-noresp@pciexrc, 161 FITrate=PCIEX_RC_NR_FIT, FRU=pciexrc, ASRU=pciexrc; 162 163event fault.io.pciex.bus-noresp@pciexbus/pciexdev/pciexfn, 164 FITrate=PCIEX_BUS_NR_FIT, FRU=pciexbus, ASRU=pciexbus/pciexdev/pciexfn; 165 166event fault.io.pciex.bus-linkerr@pciexbus/pciexdev/pciexfn, 167 FITrate=PCIEX_BUS_FIT, FRU=pciexbus, ASRU=pciexbus/pciexdev/pciexfn; 168 169/* 170 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 171 * serd engine for correctable link errors 172 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 173 */ 174event error.io.pciex.corrlink@pciexbus; 175event error.io.pciex.corrlink@pciexrc/pciexbus; 176event error.io.pciex.corrlink@pciexbus/pciexdev/pciexfn/pciexbus; 177event error.io.pciex.corrlink_trip@pciexbus; 178event ereport.io.pciex.corrlink_trip@pciexbus{within(5s)}; 179 180engine serd.io.pciex.corrlink@pciexbus, 181 N=CORRLINK_COUNT, T=CORRLINK_TIME, method=persistent, 182 trip=ereport.io.pciex.corrlink_trip@pciexbus; 183 184event upset.io.pciex.corrlink@pciexbus, 185 engine=serd.io.pciex.corrlink@pciexbus; 186 187prop upset.io.pciex.corrlink@pciexbus (1)-> 188 error.io.pciex.corrlink@pciexbus; 189 190prop error.io.pciex.corrlink_trip@pciexbus (1)-> 191 ereport.io.pciex.corrlink_trip@pciexbus; 192 193prop error.io.pciex.corrlink_trip@pciexbus (0)-> 194 error.io.pciex.corrlink@pciexbus; 195 196/* 197 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 198 * Handling of leaf driver detected internal errors. Use serd engine if 199 * no service impact - otherwise fail immediately 200 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 201 */ 202event ereport.io.device.inval_state@pciexbus/pciexdev/pciexfn{within(5s)}; 203event ereport.io.device.no_response@pciexbus/pciexdev/pciexfn{within(5s)}; 204event ereport.io.device.stall@pciexbus/pciexdev/pciexfn{within(5s)}; 205event ereport.io.device.badint_limit@pciexbus/pciexdev/pciexfn{within(5s)}; 206event ereport.io.device.intern_corr@pciexbus/pciexdev/pciexfn{within(5s)}; 207event ereport.io.device.intern_uncorr@pciexbus/pciexdev/pciexfn{within(5s)}; 208event ereport.io.service.lost@pciexbus/pciexdev/pciexfn{within(5s)}; 209event ereport.io.service.degraded@pciexbus/pciexdev/pciexfn{within(5s)}; 210event ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn{within(5s)}; 211event ereport.io.service.restored@pciexbus/pciexdev/pciexfn{within(30s)}; 212event ereport.io.device.nf-device@pciexbus/pciexdev/pciexfn{within(5s)}; 213 214event error.io.service.restored@pciexbus/pciexdev/pciexfn; 215event error.io.device.nf-device@pciexbus/pciexdev/pciexfn; 216event error.io.device.f-device@pciexbus/pciexdev/pciexfn; 217 218prop error.io.device.f-device@pciexbus/pciexdev/pciexfn (1)-> 219 ereport.io.device.inval_state@pciexbus/pciexdev/pciexfn, 220 ereport.io.device.no_response@pciexbus/pciexdev/pciexfn, 221 ereport.io.device.stall@pciexbus/pciexdev/pciexfn, 222 ereport.io.device.badint_limit@pciexbus/pciexdev/pciexfn, 223 ereport.io.device.intern_corr@pciexbus/pciexdev/pciexfn, 224 ereport.io.device.intern_uncorr@pciexbus/pciexdev/pciexfn; 225 226prop error.io.device.f-device@pciexbus/pciexdev/pciexfn (1)-> 227 ereport.io.service.lost@pciexbus/pciexdev/pciexfn, 228 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn; 229 230engine serd.io.device.nonfatal@pciexbus/pciexdev/pciexfn, 231 N=NONFATAL_COUNT, T=NONFATAL_TIME, method=persistent, 232 trip=ereport.io.device.nf-device@pciexbus/pciexdev/pciexfn; 233 234event upset.io.device.nonfatal@pciexbus/pciexdev/pciexfn, 235 engine=serd.io.device.nonfatal@pciexbus/pciexdev/pciexfn; 236 237prop error.io.device.nf-device@pciexbus/pciexdev/pciexfn (1)-> 238 ereport.io.device.nf-device@pciexbus/pciexdev/pciexfn; 239 240prop error.io.device.nf-device@pciexbus/pciexdev/pciexfn (0)-> 241 ereport.io.device.inval_state@pciexbus/pciexdev/pciexfn, 242 ereport.io.device.no_response@pciexbus/pciexdev/pciexfn, 243 ereport.io.device.stall@pciexbus/pciexdev/pciexfn, 244 ereport.io.device.badint_limit@pciexbus/pciexdev/pciexfn, 245 ereport.io.device.intern_corr@pciexbus/pciexdev/pciexfn, 246 ereport.io.device.intern_uncorr@pciexbus/pciexdev/pciexfn, 247 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn, 248 error.io.service.restored@pciexbus/pciexdev/pciexfn; 249 250prop upset.io.device.nonfatal@pciexbus/pciexdev/pciexfn (1)-> 251 ereport.io.device.inval_state@pciexbus/pciexdev/pciexfn, 252 ereport.io.device.no_response@pciexbus/pciexdev/pciexfn, 253 ereport.io.device.stall@pciexbus/pciexdev/pciexfn, 254 ereport.io.device.badint_limit@pciexbus/pciexdev/pciexfn, 255 ereport.io.device.intern_corr@pciexbus/pciexdev/pciexfn, 256 ereport.io.device.intern_uncorr@pciexbus/pciexdev/pciexfn; 257 258prop upset.io.device.nonfatal@pciexbus/pciexdev/pciexfn (1)-> 259 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn, 260 error.io.service.restored@pciexbus/pciexdev/pciexfn; 261 262/* 263 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 264 * Handling of pci express nonfatal errors (ptlp/ecrc). Use serd engine if 265 * no service impact - otherwise fail immediately 266 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 267 */ 268event ereport.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn{within(5s)}; 269event ereport.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn{within(5s)}; 270 271event error.io.pciex.flt-f-d@pciexbus/pciexdev/pciexfn; 272event error.io.pciex.flt-f-u@pciexbus/pciexdev/pciexfn; 273event error.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn; 274event error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn; 275event error.io.pciex.flt-f-ecrcreq-u@pciexbus/pciexdev/pciexfn; 276event error.io.pciex.flt-f-ecrccomp-u@pciexbus/pciexdev/pciexfn; 277event error.io.pciex.flt-f-poisreq-u@pciexbus/pciexdev/pciexfn; 278event error.io.pciex.flt-f-poiscomp-u@pciexbus/pciexdev/pciexfn; 279event error.io.pciex.flt-f-ecrcreq-d@pciexbus/pciexdev/pciexfn; 280event error.io.pciex.flt-f-ecrccomp-d@pciexbus/pciexdev/pciexfn; 281event error.io.pciex.flt-f-poisreq-d@pciexbus/pciexdev/pciexfn; 282event error.io.pciex.flt-f-poiscomp-d@pciexbus/pciexdev/pciexfn; 283event error.io.pciex.flt-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn; 284event error.io.pciex.flt-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn; 285event error.io.pciex.flt-nf-poisreq-u@pciexbus/pciexdev/pciexfn; 286event error.io.pciex.flt-nf-poiscomp-u@pciexbus/pciexdev/pciexfn; 287event error.io.pciex.flt-nf-ecrcreq-d@pciexbus/pciexdev/pciexfn; 288event error.io.pciex.flt-nf-ecrccomp-d@pciexbus/pciexdev/pciexfn; 289event error.io.pciex.flt-nf-poisreq-d@pciexbus/pciexdev/pciexfn; 290event error.io.pciex.flt-nf-poiscomp-d@pciexbus/pciexdev/pciexfn; 291 292prop error.io.pciex.flt-f-u@pciexbus/pciexdev/pciexfn (1)-> 293 error.io.pciex.flt-f-ecrcreq-u@pciexbus/pciexdev/pciexfn, 294 error.io.pciex.flt-f-ecrccomp-u@pciexbus/pciexdev/pciexfn, 295 error.io.pciex.flt-f-poisreq-u@pciexbus/pciexdev/pciexfn, 296 error.io.pciex.flt-f-poiscomp-u@pciexbus/pciexdev/pciexfn; 297 298prop error.io.pciex.flt-f-d@pciexbus/pciexdev/pciexfn (1)-> 299 error.io.pciex.flt-f-ecrcreq-d@pciexbus/pciexdev/pciexfn, 300 error.io.pciex.flt-f-ecrccomp-d@pciexbus/pciexdev/pciexfn, 301 error.io.pciex.flt-f-poisreq-d@pciexbus/pciexdev/pciexfn, 302 error.io.pciex.flt-f-poiscomp-d@pciexbus/pciexdev/pciexfn; 303 304engine serd.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn, 305 N=NONFATAL_DPE_U_COUNT, T=NONFATAL_DPE_U_TIME, method=persistent, 306 trip=ereport.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn; 307 308event upset.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn, 309 engine=serd.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn; 310 311prop error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn (1)-> 312 ereport.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn; 313 314prop error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn (0)-> 315 error.io.pciex.flt-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn, 316 error.io.pciex.flt-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn, 317 error.io.pciex.flt-nf-poisreq-u@pciexbus/pciexdev/pciexfn, 318 error.io.pciex.flt-nf-poiscomp-u@pciexbus/pciexdev/pciexfn; 319 320prop upset.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn (1)-> 321 error.io.pciex.flt-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn, 322 error.io.pciex.flt-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn, 323 error.io.pciex.flt-nf-poisreq-u@pciexbus/pciexdev/pciexfn, 324 error.io.pciex.flt-nf-poiscomp-u@pciexbus/pciexdev/pciexfn; 325 326engine serd.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn, 327 N=NONFATAL_DPE_D_COUNT, T=NONFATAL_DPE_D_TIME, method=persistent, 328 trip=ereport.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn; 329 330event upset.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn, 331 engine=serd.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn; 332 333prop error.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn (1)-> 334 ereport.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn; 335 336prop error.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn (0)-> 337 error.io.pciex.flt-nf-ecrcreq-d@pciexbus/pciexdev/pciexfn, 338 error.io.pciex.flt-nf-ecrccomp-d@pciexbus/pciexdev/pciexfn, 339 error.io.pciex.flt-nf-poisreq-d@pciexbus/pciexdev/pciexfn, 340 error.io.pciex.flt-nf-poiscomp-d@pciexbus/pciexdev/pciexfn; 341 342prop upset.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn (1)-> 343 error.io.pciex.flt-nf-ecrcreq-d@pciexbus/pciexdev/pciexfn, 344 error.io.pciex.flt-nf-ecrccomp-d@pciexbus/pciexdev/pciexfn, 345 error.io.pciex.flt-nf-poisreq-d@pciexbus/pciexdev/pciexfn, 346 error.io.pciex.flt-nf-poiscomp-d@pciexbus/pciexdev/pciexfn; 347 348/* 349 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 350 * A faulty PCI Express hostbridge (root complex) may cause: 351 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 352 * - nr-d: the device not to respond to a valid upstream request 353 * - ca-d: the device to completer abort a valid upstream request 354 * - mtlp-d: a malformed tlp to be transmitted downstream 355 * - badreq-d: a bad downstream request - not CRC error (may cause 356 * completer to respond with ur or ca) 357 * - ecrcreq-d: TLP with end-to-end CRC error transmitted downstream 358 * - ecrccomp-d: TLP with end-to-end CRC error transmitted downstream 359 * - poisreq-d: poisoned request transmitted downstream 360 * - poiscomp-d: poisoned completion transmitted downstream 361 * - corrlink: correctable link or physical level error 362 * - fatlink: fatal link or physical level error 363 */ 364event error.io.pciex.nr-d@pciexrc/pciexbus/pciexdev/pciexfn; 365event error.io.pciex.flt-ca-d@pciexrc/pciexbus/pciexdev/pciexfn; 366event error.io.pciex.mtlp-d@pciexrc/pciexbus/pciexdev/pciexfn; 367event error.io.pciex.badreq-d@pciexrc/pciexbus/pciexdev/pciexfn; 368event error.io.pciex.flt-nf-d@pciexrc/pciexbus/pciexdev/pciexfn; 369event error.io.pciex.flt-f-d@pciexrc/pciexbus/pciexdev/pciexfn; 370event error.io.pciex.corrlink_trip@pciexrc/pciexbus; 371event error.io.pciex.fatlink@pciexrc/pciexbus/pciexdev/pciexfn; 372 373prop fault.io.pciex.device-noresp@pciexrc (1)-> 374 error.io.pciex.nr-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>; 375 376prop upset.io.pciex.device-invreq@pciexrc (1)-> 377 error.io.pciex.badreq-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>; 378 379prop fault.io.pciex.device-interr@pciexrc (1)-> 380 error.io.pciex.flt-nf-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>, 381 error.io.pciex.flt-f-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>, 382 error.io.pciex.flt-ca-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>, 383 error.io.pciex.mtlp-d@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>, 384 error.io.pciex.corrlink_trip@pciexrc/pciexbus<>, 385 error.io.pciex.fatlink@pciexrc/pciexbus<>/pciexdev<>/pciexfn<>; 386 387/* 388 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 389 * A faulty PCI Express leaf device or upstream switch port may cause: 390 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 391 * - nr-u: the device not to respond to a valid downstream request 392 * - ca-u: the device to completer abort a valid downstream request 393 * - badreq-u: a bad upstream request - not CRC error (may cause 394 * completer to respond with ur or ca) - leaf only 395 * - mtlp-u: a malformed tlp transmitted upstream - leaf only 396 * - ecrcreq-u: request with end-to-end CRC error transmitted upstream 397 * - ecrccomp-u: compl with end-to-end CRC error transmitted upstream 398 * - poisreq-u: poisoned request transmitted upstream 399 * - poiscomp-u: poisoned completion transmitted upstream 400 * - device: internal error reported by leaf device 401 * - corrlink: correctable link or physical level error 402 * - fatlink: fatal link or physical level error 403 */ 404 405event error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn; 406event error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn; 407event error.io.pciex.mtlp-u@pciexbus/pciexdev/pciexfn; 408event error.io.pciex.flt-badreq-u@pciexbus/pciexdev/pciexfn; 409event error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn; 410 411prop fault.io.pciex.device-noresp@pciexbus/pciexdev/pciexfn { IS_LEAF } (1)-> 412 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn; 413 414prop fault.io.pciex.device-noresp@pciexbus/pciexdev/pciexfn { IS_SWU } (1)-> 415 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn; 416 417prop fault.io.pciex.device-invreq@pciexbus/pciexdev/pciexfn { IS_LEAF } (1)-> 418 error.io.pciex.flt-badreq-u@pciexbus/pciexdev/pciexfn; 419 420prop fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn { IS_SWU } (1)-> 421 error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn, 422 error.io.pciex.flt-f-u@pciexbus/pciexdev/pciexfn, 423 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn, 424 error.io.pciex.corrlink_trip@pciexbus, 425 error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn; 426 427prop fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn { IS_LEAF } (1)-> 428 error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn, 429 error.io.pciex.flt-f-u@pciexbus/pciexdev/pciexfn, 430 error.io.device.nf-device@pciexbus/pciexdev/pciexfn, 431 error.io.device.f-device@pciexbus/pciexdev/pciexfn, 432 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn, 433 error.io.pciex.mtlp-u@pciexbus/pciexdev/pciexfn, 434 error.io.pciex.corrlink_trip@pciexbus, 435 error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn; 436 437/* 438 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 439 * A faulty PCI Express downstream switch port may cause 440 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 441 * - nr-d: the device not to respond to an upstream request 442 * - ca-d: the device to completer abort an upstream request 443 * - ecrcreq-d: TLP with end-to-end CRC error transmitted upstream 444 * - ecrccomp-d: TLP with end-to-end CRC error transmitted upstream 445 * - poisreq-d: poisoned request transmitted upstream 446 * - poiscomp-d: poisoned completion transmitted upstream 447 * - corrlink: correctable link or physical level error 448 * - fatlink: fatal link or physical level error 449 */ 450 451event error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 452event error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 453event error.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 454event error.io.pciex.flt-f-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 455event error.io.pciex.corrlink_trip@pciexbus/pciexdev/pciexfn/pciexbus; 456event error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 457 458prop fault.io.pciex.device-noresp@pciexbus/pciexdev/pciexfn { IS_SWD } (1)-> 459 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 460 461prop fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn { IS_SWD } (1)-> 462 error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>, 463 error.io.pciex.flt-nf-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>, 464 error.io.pciex.flt-f-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>, 465 error.io.pciex.corrlink_trip@pciexbus/pciexdev/pciexfn/pciexbus<>, 466 error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 467 468/* 469 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 470 * A faulty PCIEX bus may cause: 471 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 472 * - nr-u: a device to not respond because the link is down 473 * - nr-d: a device to not respond because the link is down 474 * - corrlink: correctable link or physical level error 475 * - fatlink: fatal link or physical level error 476 */ 477 478event error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn; 479 480prop fault.io.pciex.bus-noresp@pciexbus/pciexdev/pciexfn (0)-> 481 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn 482 { IS_SWU || IS_LEAF || IS_BDG }, 483 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn 484 { IS_SWU || IS_LEAF || IS_BDG }; 485 486prop fault.io.pciex.bus-linkerr@pciexbus/pciexdev/pciexfn (0)-> 487 error.io.pciex.corrlink_trip@pciexbus, 488 error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn 489 { IS_SWU || IS_LEAF || IS_BDG }; 490 491/* 492 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 493 * A faulty pciex-pci bridge may cause 494 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 495 * The following errors to propagate onto the PCI Express fabric 496 * - nr-u: the device not to respond to a valid downstream request 497 * - ca-u: the device to completer abort a valid downstream request 498 * - ecrcreq-u: request with end-to-end CRC error transmitted upstream 499 * - ecrccomp-u: compl with end-to-end CRC error transmitted upstream 500 * - poisreq-u: poisoned request transmitted upstream 501 * - poiscomp-u: poisoned completion transmitted upstream 502 * - corrlink: correctable link or physical level error upstream 503 * - fatlink: fatal link or physical level error upstream 504 * - sec-interr: internal error on pci express to pci bridge 505 * 506 * And the following errors to propagate onto the secondary pci or pci/x bus 507 * (these will be handled by code in the pci.esc file). 508 * - nr-pw-d: the device not to respond to a valid upstream request 509 * - nr-drw-d: the device not to respond to a valid upstream request 510 * - retry-to-d: failure to retry an downstream delayed request 511 * - ta-pw-d: the device responds with a ta to a valid upstream 512 * request 513 * - ta-drw-d: the device responds with a ta to a valid upstream 514 * request 515 * - ape-d: address/parity to get corrupted during downstream transmission. 516 * - dpe-d: data/parity to get corrupted during downstream transmission. 517 * - scpe-d: split completion to get corrupted during downstream transmission 518 */ 519 520event error.io.pci.ape-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 521event error.io.pci.f-dpe-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 522event error.io.pci.nf-dpe-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 523event error.io.pci.retry-to-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 524event error.io.pci.nr-pw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 525event error.io.pci.nr-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 526event error.io.pci.ta-pw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 527event error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 528event error.io.pcix.scpe-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 529event error.io.pciex.sec-interr@pciexbus/pciexdev/pciexfn; 530event ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn{within(5s)}; 531 532prop fault.io.pciex.device-noresp@pciexbus/pciexdev/pciexfn { IS_BDG } (1)-> 533 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn, 534 error.io.pci.retry-to-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 535 error.io.pci.nr-pw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 536 error.io.pci.nr-drw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 537 538prop fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn { IS_BDG } (1)-> 539 error.io.pciex.flt-nf-u@pciexbus/pciexdev/pciexfn, 540 error.io.pciex.flt-f-u@pciexbus/pciexdev/pciexfn, 541 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn, 542 error.io.pciex.mtlp-u@pciexbus/pciexdev/pciexfn, 543 error.io.pciex.sec-interr@pciexbus/pciexdev/pciexfn, 544 error.io.pciex.corrlink_trip@pciexbus, 545 error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn, 546 error.io.pci.ta-pw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 547 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 548 error.io.pci.ape-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 549 error.io.pcix.scpe-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 550 error.io.pci.f-dpe-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 551 error.io.pci.nf-dpe-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 552 553prop fault.io.pciex.device-interr@pciexbus/pciexdev/pciexfn { IS_BDG } (0)-> 554 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn; 555 556/* 557 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 558 * declarations 559 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 560 */ 561event error.io.pciex.fatal@pciexbus/pciexdev/pciexfn; 562event error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 563event error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn; 564event error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn; 565event error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 566event error.io.pciex.ur-u@pciexrc/pciexbus/pciexdev/pciexfn; 567event error.io.pciex.nr-u@pciexbus/pciexdev/pciexfn; 568event error.io.pciex.nr-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 569event error.io.pciex.nr-u@pciexrc/pciexbus/pciexdev/pciexfn; 570event error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn; 571event error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 572event error.io.pciex.ca-u@pciexrc/pciexbus/pciexdev/pciexfn; 573event error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn; 574event error.io.pciex.sw-mtlp-d@pciexbus/pciexdev/pciexfn; 575event error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 576event error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn; 577event error.io.pciex.ca-d@pciexrc/pciexbus/pciexdev/pciexfn; 578event error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn; 579event error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 580event error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn; 581event error.io.pciex.poisreq-d@pciexrc/pciexbus/pciexdev/pciexfn; 582event error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 583event error.io.pciex.sw-poisreq-d@pciexbus/pciexdev/pciexfn; 584event error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn; 585event error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn; 586event error.io.pciex.sw-ecrcreq-d@pciexbus/pciexdev/pciexfn; 587event error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn; 588event error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 589event error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn; 590event error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 591event error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn; 592event error.io.pciex.badreq-u@pciexbus/pciexdev; 593event error.io.pciex.badreq-u@pciexrc/pciexbus/pciexdev/pciexfn; 594event error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn; 595event error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 596event error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn; 597event error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn; 598event error.io.pciex.source-f-ecrcreq-u@pcibus/pcidev/pcifn; 599event error.io.pciex.source-nf-ecrcreq-u@pcibus/pcidev/pcifn; 600event error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn; 601event error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 602event error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn; 603event error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn; 604event error.io.pciex.source-f-ecrccomp-u@pcibus/pcidev/pcifn; 605event error.io.pciex.source-nf-ecrccomp-u@pcibus/pcidev/pcifn; 606event error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn; 607event error.io.pciex.poiscomp-u@pciexrc/pciexbus/pciexdev/pciexfn; 608event error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 609event error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn; 610event error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn; 611event error.io.pci.source-f-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 612event error.io.pci.source-nf-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 613event error.io.pci.source-f-dpdata-r-u@pcibus/pcidev/pcifn; 614event error.io.pci.source-nf-dpdata-r-u@pcibus/pcidev/pcifn; 615event error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 616event error.io.pciex.poisreq-u@pciexrc/pciexbus/pciexdev/pciexfn; 617event error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 618event error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn; 619event error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn; 620event error.io.pci.source-f-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 621event error.io.pci.source-nf-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 622event error.io.pci.source-f-dpdata-w-u@pcibus/pcidev/pcifn; 623event error.io.pci.source-nf-dpdata-w-u@pcibus/pcidev/pcifn; 624event error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 625event error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 626event error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn; 627event error.io.pciex.source-mtlp-u@pcibus/pcidev/pcifn; 628event error.io.pci.badreq-pw-u@pcibus/pcidev/pcifn; 629event error.io.pci.badreq-drw-u@pcibus/pcidev/pcifn; 630event error.io.pci.badreq-pw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 631event error.io.pci.badreq-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 632event error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn; 633event error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn; 634event error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn; 635event error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn; 636event error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 637event error.io.pciex.f-lf-poisreq-d@pciexbus/pciexdev/pciexfn; 638event error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn; 639event error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 640event error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn; 641event error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 642event error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn; 643event error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 644event error.io.pciex.f-lf-poiscomp-d@pciexbus/pciexdev/pciexfn; 645event error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn; 646event error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 647event error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn; 648event error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 649event error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn; 650event error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 651event error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 652event error.io.pciex.f-ecrcreq-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 653event error.io.pciex.f-ecrcreq-d@pcibus/pcidev/pcifn; 654event error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn; 655event error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 656event error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 657event error.io.pciex.nf-ecrcreq-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 658event error.io.pciex.nf-ecrcreq-d@pcibus/pcidev/pcifn; 659event error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn; 660event error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 661event error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 662event error.io.pciex.f-ecrccomp-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 663event error.io.pciex.f-ecrccomp-d@pcibus/pcidev/pcifn; 664event error.io.pciex.f-lf-ecrccomp-d@pciexbus/pciexdev/pciexfn; 665event error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn; 666event error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 667event error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 668event error.io.pciex.nf-ecrccomp-d@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 669event error.io.pciex.nf-ecrccomp-d@pcibus/pcidev/pcifn; 670event error.io.pciex.f-lf-poisreq-u@pciexbus/pciexdev/pciexfn; 671event error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn; 672event error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn; 673event error.io.pciex.fatal-u@pciexrc/pciexbus/pciexdev/pciexfn; 674event error.io.pciex.nonfatal-u@pciexrc/pciexbus/pciexdev/pciexfn; 675event error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 676event error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 677event error.io.service.restored@pcibus/pcidev/pcifn; 678 679event ereport.io.pci.ma@pciexbus/pciexdev/pciexfn{within(5s)}; 680event ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn{within(5s)}; 681event ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn{within(5s)}; 682event ereport.io.pci.rta@pciexbus/pciexdev/pciexfn{within(5s)}; 683event ereport.io.pci.sta@pciexbus/pciexdev/pciexfn{within(5s)}; 684event ereport.io.service.lost@pcibus/pcidev/pcifn{within(5s)}; 685event ereport.io.service.degraded@pcibus/pcidev/pcifn{within(5s)}; 686event ereport.io.service.unaffected@pcibus/pcidev/pcifn{within(5s)}; 687event ereport.io.pciex.dl.dllp@pciexbus/pciexdev/pciexfn{within(5s)}; 688event ereport.io.pciex.dl.btlp@pciexbus/pciexdev/pciexfn{within(5s)}; 689event ereport.io.pciex.dl.bdllp@pciexbus/pciexdev/pciexfn{within(5s)}; 690event ereport.io.pciex.dl.rto@pciexbus/pciexdev/pciexfn{within(5s)}; 691event ereport.io.pciex.dl.rnr@pciexbus/pciexdev/pciexfn{within(5s)}; 692event ereport.io.pciex.pl.re@pciexbus/pciexdev/pciexfn{within(5s)}; 693event ereport.io.pciex.pl.te@pciexbus/pciexdev/pciexfn{within(5s)}; 694event ereport.io.pciex.tl.fcp@pciexbus/pciexdev/pciexfn{within(5s)}; 695event ereport.io.pciex.tl.rof@pciexbus/pciexdev/pciexfn{within(5s)}; 696event ereport.io.pciex.tl.mtlp@pciexbus/pciexdev/pciexfn{within(5s)}; 697event ereport.io.pciex.tl.ur@pciexfn{within(5s)}; 698event ereport.io.pciex.tl.ca@pciexfn{within(5s)}; 699event ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn{within(5s)}; 700event ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn{within(5s)}; 701event ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn{within(5s)}; 702event ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn{within(5s)}; 703event ereport.io.pciex.tl.uc@pciexbus/pciexdev/pciexfn{within(5s)}; 704event ereport.io.pciex.tl.cto@pciexbus/pciexdev/pciexfn{within(5s)}; 705event ereport.io.pciex.dl.dllp@pciexrc{within(5s)}; 706event ereport.io.pciex.dl.btlp@pciexrc{within(5s)}; 707event ereport.io.pciex.dl.bdllp@pciexrc{within(5s)}; 708event ereport.io.pciex.dl.rto@pciexrc{within(5s)}; 709event ereport.io.pciex.dl.rnr@pciexrc{within(5s)}; 710event ereport.io.pciex.pl.re@pciexrc{within(5s)}; 711event ereport.io.pciex.pl.te@pciexrc{within(5s)}; 712event ereport.io.pciex.tl.fcp@pciexrc{within(5s)}; 713event ereport.io.pciex.tl.rof@pciexrc{within(5s)}; 714event ereport.io.pciex.tl.mtlp@pciexrc{within(5s)}; 715event ereport.io.pciex.tl.ur@pciexrc{within(5s)}; 716event ereport.io.pciex.tl.ca@pciexrc{within(5s)}; 717event ereport.io.pciex.tl.ptlp@pciexrc{within(5s)}; 718event ereport.io.pciex.tl.ecrc@pciexrc{within(5s)}; 719event ereport.io.pciex.tl.cto@pciexrc{within(5s)}; 720event ereport.io.pci.sec-ma@pciexrc{within(5s)}; 721event ereport.io.pci.sec-mdpe@pciexrc{within(5s)}; 722event ereport.io.pci.sec-dpe@pciexrc{within(5s)}; 723event ereport.io.pci.sec-rta@pciexrc{within(5s)}; 724event ereport.io.pci.sec-sta@pciexrc{within(5s)}; 725event ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn{within(5s)}; 726event ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn{within(5s)}; 727event ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn{within(5s)}; 728event ereport.io.pci.sserr@pciexbus/pciexdev/pciexfn{within(5s)}; 729event ereport.io.pci.sec-rserr@pciexrc{within(5s)}; 730event ereport.io.pciex.rc.fe-msg@pciexrc{within(5s)}; 731event ereport.io.pciex.rc.nfe-msg@pciexrc{within(5s)}; 732event ereport.io.pciex.bdg.sec-interr@pciexbus/pciexdev/pciexfn{within(5s)}; 733event ereport.io.pciex.bdg.sec-ude@pciexbus/pciexdev/pciexfn{within(5s)}; 734 735/* 736 * handling of fatal and nonfatal error messages propagated up to root complex 737 * 738 * Use these for errors reported by root-complex on behalf of another device. 739 * Can use source-id payload to identify where the message came from. 740 */ 741prop error.io.pciex.fatal@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 742 ereport.io.pciex.rc.fe-msg@pciexrc<> { 743 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 744 745prop error.io.pciex.fatal@pciexbus/pciexdev/pciexfn (1)-> 746 error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn; 747 748prop error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn (0)-> 749 ereport.io.pci.sserr@pciexbus/pciexdev/pciexfn; 750 751prop error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (0)-> 752 error.io.pciex.fatal-u@pciexbus/pciexdev/pciexfn, 753 ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn; 754 755prop error.io.pciex.fatal-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 756 ereport.io.pci.sec-rserr@pciexrc; 757 758prop error.io.pciex.nonfatal@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 759 ereport.io.pciex.rc.nfe-msg@pciexrc<> { 760 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 761 762prop error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn (1)-> 763 error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn; 764 765prop error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn (0)-> 766 ereport.io.pci.sserr@pciexbus/pciexdev/pciexfn; 767 768prop error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (0)-> 769 error.io.pciex.nonfatal-u@pciexbus/pciexdev/pciexfn, 770 ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn; 771 772prop error.io.pciex.nonfatal-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 773 ereport.io.pci.sec-rserr@pciexrc; 774 775/* 776 * link-level errors - could generate ereports at either end of link 777 * 778 * can use may propagations here as these ereports are only seen for these 779 * faults. 780 */ 781prop error.io.pciex.corrlink@pciexbus (0)-> 782 ereport.io.pciex.dl.btlp@pciexbus/pciexdev/pciexfn 783 { IS_SWU || IS_LEAF || IS_BDG }, 784 ereport.io.pciex.dl.bdllp@pciexbus/pciexdev/pciexfn 785 { IS_SWU || IS_LEAF || IS_BDG }, 786 ereport.io.pciex.dl.rto@pciexbus/pciexdev/pciexfn 787 { IS_SWU || IS_LEAF || IS_BDG }, 788 ereport.io.pciex.dl.rnr@pciexbus/pciexdev/pciexfn 789 { IS_SWU || IS_LEAF || IS_BDG }, 790 ereport.io.pciex.pl.re@pciexbus/pciexdev/pciexfn 791 { IS_SWU || IS_LEAF || IS_BDG }; 792 793prop error.io.pciex.corrlink@pciexbus/pciexdev/pciexfn/pciexbus (0)-> 794 ereport.io.pciex.dl.btlp@pciexbus/pciexdev/pciexfn { IS_SWD }, 795 ereport.io.pciex.dl.bdllp@pciexbus/pciexdev/pciexfn { IS_SWD }, 796 ereport.io.pciex.dl.rto@pciexbus/pciexdev/pciexfn { IS_SWD }, 797 ereport.io.pciex.dl.rnr@pciexbus/pciexdev/pciexfn { IS_SWD }, 798 ereport.io.pciex.pl.re@pciexbus/pciexdev/pciexfn { IS_SWD }; 799 800prop error.io.pciex.corrlink@pciexrc/pciexbus (0)-> 801 ereport.io.pciex.dl.btlp@pciexrc, 802 ereport.io.pciex.dl.bdllp@pciexrc, 803 ereport.io.pciex.dl.rto@pciexrc, 804 ereport.io.pciex.dl.rnr@pciexrc, 805 ereport.io.pciex.pl.re@pciexrc; 806 807prop error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn (0)-> 808 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn 809 { IS_SWU || IS_LEAF || IS_BDG }; 810 811prop error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn (0)-> 812 ereport.io.pciex.dl.dllp@pciexbus/pciexdev/pciexfn 813 { IS_SWU || IS_LEAF || IS_BDG }, 814 ereport.io.pciex.tl.fcp@pciexbus/pciexdev/pciexfn 815 { IS_SWU || IS_LEAF || IS_BDG }, 816 ereport.io.pciex.tl.rof@pciexbus/pciexdev/pciexfn 817 { IS_SWU || IS_LEAF || IS_BDG }; 818 819prop error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn 820(0)-> 821 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn { IS_SWD }; 822 823prop error.io.pciex.fatlink@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (0)-> 824 ereport.io.pciex.dl.dllp@pciexbus/pciexdev/pciexfn { IS_SWD }, 825 ereport.io.pciex.pl.te@pciexbus/pciexdev/pciexfn { IS_SWD }, 826 ereport.io.pciex.tl.fcp@pciexbus/pciexdev/pciexfn { IS_SWD }, 827 ereport.io.pciex.tl.rof@pciexbus/pciexdev/pciexfn { IS_SWD }; 828 829prop error.io.pciex.fatlink@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 830 ereport.io.pciex.dl.dllp@pciexrc, 831 ereport.io.pciex.pl.te@pciexrc, 832 ereport.io.pciex.tl.fcp@pciexrc, 833 ereport.io.pciex.tl.rof@pciexrc; 834 835/* 836 * bridge internal error 837 */ 838prop error.io.pciex.sec-interr@pciexbus/pciexdev/pciexfn (2) -> 839 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_BDG }, 840 ereport.io.pciex.bdg.sec-interr@pciexbus/pciexdev/pciexfn { IS_BDG }; 841 842/* 843 * downstream poisoned request 844 * 845 * - poisreq-d cascades down to the leaf device/bridge and any switch ports 846 * on route must raise a ptlp ereport while any switch ports forwarding 847 * the poisoned request must raise sec-mdpe ereports. The originator of the 848 * poisoning (be it root complex or downstream port of a switch) also raises 849 * sec-mdpe. A hardened leaf driver will also raise ptlp. A target-mdpe 850 * cascades down to the leaf (which may be a pci device beyond the bridge). 851 * 852 * Additionally, the leaf/bridge may treat the request as a ur, which the 853 * root complex will see and report an ma. Use flt-ur-u to represent this. 854 * Note that sw-poisreq-d is to handle the case where the switch is actually 855 * the target of the packet (config request etc). 856 * 857 * The fault can always be recognized and the source identified using the ptlp 858 * and sec-mdpe ereports. 859 */ 860prop error.io.pciex.flt-f-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 861 error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn; 862 863prop error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 864 error.io.pciex.sw-poisreq-d@pciexbus/pciexdev/pciexfn, 865 error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 866 867prop error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 868 error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn; 869 870prop error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 871 error.io.pciex.f-lf-poisreq-d@pciexbus/pciexdev/pciexfn { IS_LEAF }; 872 873prop error.io.pciex.f-lf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 874 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn; 875 876prop error.io.pciex.f-lf-poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 877 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn, 878 ereport.io.service.lost@pciexbus/pciexdev/pciexfn, 879 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn; 880 881prop error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 882 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 883 884prop error.io.pciex.flt-nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 885 error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn, 886 error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn; 887 888prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 889 error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 890 891prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 892 error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn; 893 894prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 895 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_LEAF }; 896 897prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 898 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_LEAF }; 899 900prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 901 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 902 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 903 904prop error.io.service.restored@pciexbus/pciexdev/pciexfn (1)-> 905 ereport.io.service.lost@pciexbus/pciexdev/pciexfn, 906 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn; 907 908prop error.io.service.restored@pciexbus/pciexdev/pciexfn (1)-> 909 ereport.io.service.restored@pciexbus/pciexdev/pciexfn; 910 911prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 912 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 913 914prop error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 915 error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 916 917prop error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 918 error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn; 919 920prop error.io.pciex.anf-poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 921 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_LEAF }, 922 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_LEAF }; 923 924prop error.io.pciex.poisreq-d@pciexrc/pciexbus/pciexdev/pciexfn (1)-> 925 ereport.io.pci.sec-mdpe@pciexrc; 926 927prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 928 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }; 929 930prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (0)-> 931 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWU }; 932 933prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn (2)-> 934 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_SWU || IS_BDG }, 935 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWU || IS_BDG }; 936 937prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 938 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 939 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWD }; 940 941prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 942 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn { IS_LEAF }; 943 944prop error.io.pciex.poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 945 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 946 947prop error.io.pciex.sw-poisreq-d@pciexbus/pciexdev/pciexfn (0)-> 948 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn { IS_SWU }; 949 950prop error.io.pciex.sw-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 951 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn { IS_SWU }; 952 953/* 954 * downstream poisoned completion 955 * 956 * - poiscomp-d cascades down to the leaf device/bridge and any switch ports on 957 * route must raise ptlp and mdpe ereports. A hardened leaf driver will also 958 * raise pltp and mdpe. For non-hardened leaf devices, no ptlp/mdpe may be 959 * reported, and though we should still see a nonfatal error reported from 960 * the root complex identifying the leaf device, we won't actually be informed 961 * that the error was an ptlp. 962 */ 963prop error.io.pciex.flt-f-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 964 error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn; 965 966prop error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 967 error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 968 969prop error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 970 error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn; 971 972prop error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn (0)-> 973 error.io.pciex.f-lf-poiscomp-d@pciexbus/pciexdev/pciexfn { IS_LEAF }; 974 975prop error.io.pciex.f-lf-poiscomp-d@pciexbus/pciexdev/pciexfn (2)-> 976 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn, 977 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn; 978 979prop error.io.pciex.f-lf-poiscomp-d@pciexbus/pciexdev/pciexfn (0)-> 980 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn, 981 ereport.io.service.lost@pciexbus/pciexdev/pciexfn, 982 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn; 983 984prop error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 985 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 986 987prop error.io.pciex.flt-nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 988 error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn, 989 error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn; 990 991prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 992 error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 993 994prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 995 error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn; 996 997prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (2)-> 998 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_LEAF }, 999 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1000 1001prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (0)-> 1002 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1003 1004prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 1005 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1006 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1007 1008prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 1009 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1010 1011prop error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 1012 error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1013 1014prop error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 1015 error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn; 1016 1017prop error.io.pciex.anf-poiscomp-d@pciexbus/pciexdev/pciexfn (0)-> 1018 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1019 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1020 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1021 1022prop error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn (3)-> 1023 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_BDG }, 1024 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_BDG }, 1025 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_BDG }; 1026 1027prop error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn (2)-> 1028 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1029 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWU }; 1030 1031prop error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 1032 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1033 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWU }; 1034 1035prop error.io.pciex.poiscomp-d@pciexbus/pciexdev/pciexfn (0)-> 1036 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1037 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1038 ereport.io.pci.dpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1039 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWD }; 1040 1041/* 1042 * downstream request with ecrc error. 1043 * 1044 * - ecrcreq-d cascades down to the leaf device/bridge and any switches on 1045 * route can optionally raise an ecrc ereport. A hardened leaf driver may also 1046 * raise ecrc. For non-hardened leaf devices, no ecrc may be reported, and 1047 * though we should still see a nonfatal error reported from the root complex 1048 * identifying the leaf device, we won't actually be informed that the error 1049 * was an ecrc. 1050 * 1051 * Additionally, as the leaf/bridge will just throw away the packet, we should 1052 * eventually get a cto at the root complex - so use an flt-nr-u at the pciex 1053 * leaf or bridge to get the appropriate behaviour. For the case where the leaf 1054 * driver wasn't hardened we may be able to identify the leaf device (and 1055 * therefore any intermediate switches which might have caused the problem) 1056 * either via a target-ma ereport if available or via the nonfatal error 1057 * reported from the root complex identifying the leaf device. The combination 1058 * of a nonfatal error reported from the root complex and a cto from the root 1059 * complex is sufficient to positively identify this case. 1060 * 1061 * Note that sw-ecrcreq-d is to handle the case where the switch is actually 1062 * the target of the packet (config request etc). 1063 */ 1064prop error.io.pciex.flt-f-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1065 error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn; 1066 1067prop error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1068 error.io.pciex.sw-ecrcreq-d@pciexbus/pciexdev/pciexfn, 1069 error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1070 1071prop error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1072 error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 1073 1074prop error.io.pciex.f-ecrcreq-d@pcibus/pcidev/pcifn (1)-> 1075 error.io.pciex.f-ecrcreq-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1076 1077prop error.io.pciex.f-ecrcreq-d@pcibus/pcidev/pcifn (0)-> 1078 ereport.io.service.lost@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1079 ereport.io.service.degraded@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1080 1081prop error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1082 error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn; 1083 1084prop error.io.pciex.f-ecrcreq-d@pciexbus/pciexdev/pciexfn (0)-> 1085 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1086 ereport.io.service.lost@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1087 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1088 1089prop error.io.pciex.flt-nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1090 error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn; 1091 1092prop error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1093 error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1094 1095prop error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1096 error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 1097 1098prop error.io.pciex.nf-ecrcreq-d@pcibus/pcidev/pcifn (1)-> 1099 error.io.pciex.nf-ecrcreq-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1100 1101prop error.io.pciex.nf-ecrcreq-d@pcibus/pcidev/pcifn (1)-> 1102 ereport.io.service.unaffected@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1103 error.io.service.restored@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1104 1105prop error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1106 error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn; 1107 1108prop error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1109 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1110 1111prop error.io.pciex.nf-ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1112 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1113 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1114 1115prop error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn (0)-> 1116 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1117 1118prop error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1119 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1120 1121prop error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn (1)-> 1122 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_BDG }; 1123 1124prop error.io.pciex.ecrcreq-d@pciexbus/pciexdev/pciexfn (0)-> 1125 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_SWU || IS_SWD }; 1126 1127prop error.io.pciex.sw-ecrcreq-d@pciexbus/pciexdev/pciexfn (0)-> 1128 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn { IS_SWU }; 1129 1130/* 1131 * downstream completion with ecrc error. 1132 * 1133 * - ecrccomp-d cascades down to the leaf device/bridge and any switches on 1134 * route can optionally raise an ecrc ereport. A hardened leaf driver may 1135 * also raise ecrc. For non-hardened leaf devices, no ecrc may be reported, 1136 * and though we should still see a nonfatal error reported from the root 1137 * complex identifying the leaf device, we won't actually be informed that 1138 * the error was an ecrc. 1139 * 1140 * Additionally, as the leaf/bridge will just throw away the packet, we should 1141 * eventually get a cto. Note the leaf ereports are optional (ie in case driver 1142 * not hardened) but if we get both ecrc and cto we need to distinguish from 1143 * cto only which would be an nr-d. 1144 */ 1145prop error.io.pciex.flt-f-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1146 error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn; 1147 1148prop error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1149 error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1150 1151prop error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1152 error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 1153 1154prop error.io.pciex.f-ecrccomp-d@pcibus/pcidev/pcifn (1)-> 1155 error.io.pciex.f-ecrccomp-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1156 1157prop error.io.pciex.f-ecrccomp-d@pcibus/pcidev/pcifn (0)-> 1158 ereport.io.service.lost@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1159 ereport.io.service.degraded@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1160 1161prop error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1162 error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn; 1163 1164prop error.io.pciex.f-ecrccomp-d@pciexbus/pciexdev/pciexfn (0)-> 1165 error.io.pciex.f-lf-ecrccomp-d@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1166 ereport.io.service.lost@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1167 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1168 1169prop error.io.pciex.f-lf-ecrccomp-d@pciexbus/pciexdev/pciexfn (2)-> 1170 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn, 1171 ereport.io.pciex.tl.cto@pciexbus/pciexdev/pciexfn; 1172 1173prop error.io.pciex.f-lf-ecrccomp-d@pciexbus/pciexdev/pciexfn (0)-> 1174 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn; 1175 1176prop error.io.pciex.flt-nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1177 error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn; 1178 1179prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1180 error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1181 1182prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1183 error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 1184 1185prop error.io.pciex.nf-ecrccomp-d@pcibus/pcidev/pcifn (1)-> 1186 error.io.pciex.nf-ecrccomp-d@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 1187 1188prop error.io.pciex.nf-ecrccomp-d@pcibus/pcidev/pcifn (1)-> 1189 ereport.io.service.unaffected@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1190 error.io.service.restored@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1191 1192prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1193 error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn; 1194 1195prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (2)-> 1196 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1197 ereport.io.pciex.tl.cto@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1198 1199prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (0)-> 1200 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1201 1202prop error.io.pciex.nf-ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1203 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1204 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1205 1206prop error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn (1)-> 1207 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1208 1209prop error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn (2)-> 1210 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_BDG }, 1211 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn { IS_BDG }; 1212 1213prop error.io.pciex.ecrccomp-d@pciexbus/pciexdev/pciexfn (0)-> 1214 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_SWU || IS_SWD }; 1215 1216/* 1217 * upstream poisoned request 1218 * 1219 * - flt-poisreq-u is just on the pciex node which generated the fault (if the 1220 * fault was generated by a pciex node and not a child pci node). 1221 * - source-poisreq-u cascades down to at least one leaf device (pciex or pci), 1222 * whose bdf (if pciex) must match the source-id in the payload of the 1223 * ereport generated from the root complex. 1224 * - poisreq-u cascades up to the root complex and any switch ports on 1225 * route will raise a ptlp ereport, while any upstream devices generating 1226 * or forwarding the poisoned packed will raise an mdpe ereport. The root 1227 * complex should also report a ptlp. 1228 * 1229 * Additionally, as the root complex may treat the request as a ur, which the 1230 * leaf/bridge will see (and if hardened report) as an ma (including sending a 1231 * ta onto the child pci bus if this was a delayed write). 1232 * 1233 * We can always recognize what sort of fault this is from the ptlp (with no 1234 * sec-mdpe) at the root complex. Recognizing which originating devices may be 1235 * implicated can be done using the mdpe ereport (for a hardened leaf driver), 1236 * or for a non-hardened leaf driver by using the source-id payload in the ptlp 1237 * ereport to identify the originator of the request. The ptlp/mdpe ereports 1238 * at the intervening switches will narrow the fault down to a single suspect. 1239 */ 1240 1241prop error.io.pciex.flt-f-poisreq-u@pciexbus/pciexdev/pciexfn (2)-> 1242 error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn, 1243 error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 1244 1245prop error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1246 error.io.pciex.f-lf-poisreq-u@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1247 1248prop error.io.pciex.f-lf-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1249 ereport.io.service.lost@pciexbus/pciexdev/pciexfn, 1250 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn; 1251 1252prop error.io.pciex.f-lf-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1253 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn; 1254 1255prop error.io.pciex.source-f-poisreq-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (0)-> 1256 ereport.io.pciex.tl.ptlp@pciexrc<> { 1257 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }, 1258 ereport.io.pciex.tl.ur@pciexrc<> { 1259 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1260 1261prop error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1262 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_BDG }; 1263 1264prop error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1265 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 1266 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1267 1268prop error.io.pci.source-f-dpdata-w-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1269 ereport.io.pciex.tl.ptlp@pciexrc<> { PCIBDF_IS_UNDER_RC }, 1270 ereport.io.pciex.tl.ur@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1271 1272prop error.io.pci.source-f-dpdata-w-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1273 ereport.io.pciex.bdg.sec-ude@pciexbus/pciexdev/pciexfn { IS_BDG && 1274 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 1275 1276prop error.io.pciex.flt-nf-poisreq-u@pciexbus/pciexdev/pciexfn (2)-> 1277 error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn, 1278 error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 1279 1280prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 1281 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1282 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1283 1284prop error.io.pciex.source-nf-poisreq-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (0)-> 1285 ereport.io.pciex.tl.ptlp@pciexrc<> { 1286 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }, 1287 ereport.io.pciex.tl.ur@pciexrc<> { 1288 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1289 1290prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1291 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1292 1293prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1294 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_BDG }; 1295 1296prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1297 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 1298 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1299 1300prop error.io.pci.source-nf-dpdata-w-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1301 ereport.io.pciex.tl.ptlp@pciexrc<> { PCIBDF_IS_UNDER_RC }, 1302 ereport.io.pciex.tl.ur@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1303 1304prop error.io.pci.source-nf-dpdata-w-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1305 ereport.io.pciex.bdg.sec-ude@pciexbus/pciexdev/pciexfn { IS_BDG && 1306 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 1307 1308prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1309 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_BDG }; 1310 1311prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1312 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 1313 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1314 1315prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1316 error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 1317 1318prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (2)-> 1319 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1320 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWD }; 1321 1322prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1323 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1324 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWU }; 1325 1326prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 1327 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_BDG || IS_SWU }; 1328 1329prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1330 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }; 1331 1332prop error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn (0)-> 1333 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1334 1335prop error.io.pciex.poisreq-u@pciexrc/pciexbus/pciexdev/pciexfn (1)-> 1336 ereport.io.pci.sec-dpe@pciexrc; 1337 1338/* 1339 * upstream poisoned completion 1340 * 1341 * - flt-poiscomp-u is just on the pciex node which generated the fault (if the 1342 * fault was generated by a pciex node and not a child pci node). There will 1343 * be a target-mdpe downstream from here. 1344 * - source-poiscomp-u cascades down to at least one leaf device (pciex or pci), 1345 * whose bdf (if pciex) must match the source-id in the payload of the 1346 * ereport generated from the root complex. 1347 * - poiscomp-u cascades up to the root complex and any switches on 1348 * route will raise ptlp and sec-mdpe ereports. The root complex will also 1349 * raise a sec-mdpe and ptlp. 1350 * 1351 * We can always recognize what sort of fault this is from the ptlp/sec-mdpe at 1352 * the root complex. Recognizing which originating devices may be implicated 1353 * can be done using the source-id payload in the ptlp ereport to identify the 1354 * originator of the completion. The ptlp/sec-mdpe ereports at the intervening 1355 * switches will narrow the fault down to a single suspect. 1356 */ 1357prop error.io.pciex.flt-f-poiscomp-u@pciexbus/pciexdev/pciexfn (3)-> 1358 error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn, 1359 error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn, 1360 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn; 1361 1362prop error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn (0)-> 1363 ereport.io.service.lost@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1364 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1365 1366prop error.io.pciex.source-f-poiscomp-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (0)-> 1367 ereport.io.pciex.tl.ptlp@pciexrc<> { 1368 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1369 1370prop error.io.pci.source-f-dpdata-r-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1371 ereport.io.pciex.tl.ptlp@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1372 1373prop error.io.pci.source-f-dpdata-r-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1374 ereport.io.pciex.bdg.sec-ude@pciexbus/pciexdev/pciexfn { IS_BDG && 1375 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 1376 1377prop error.io.pciex.flt-nf-poiscomp-u@pciexbus/pciexdev/pciexfn (3)-> 1378 error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn, 1379 error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn, 1380 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn; 1381 1382prop error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 1383 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1384 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1385 1386prop error.io.pciex.source-nf-poiscomp-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (0)-> 1387 ereport.io.pciex.tl.ptlp@pciexrc<> { 1388 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1389 1390prop error.io.pci.source-nf-dpdata-r-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1391 ereport.io.pciex.tl.ptlp@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1392 1393prop error.io.pci.source-nf-dpdata-r-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1394 ereport.io.pciex.bdg.sec-ude@pciexbus/pciexdev/pciexfn { IS_BDG && 1395 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 1396 1397prop error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1398 error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn; 1399 1400prop error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn (2)-> 1401 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1402 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWD }; 1403 1404prop error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 1405 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }, 1406 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_SWD }; 1407 1408prop error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn (0)-> 1409 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1410 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1411 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn { IS_SWU }, 1412 ereport.io.pciex.tl.ptlp@pciexbus/pciexdev/pciexfn { IS_SWU }; 1413 1414prop error.io.pciex.poiscomp-u@pciexrc/pciexbus/pciexdev/pciexfn (1)-> 1415 ereport.io.pci.sec-dpe@pciexrc; 1416 1417prop error.io.pciex.poiscomp-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1418 ereport.io.pci.sec-mdpe@pciexrc; 1419 1420/* 1421 * upstream request with ecrc error. 1422 * 1423 * - flt-ecrcreq-u is just on the pciex node which generated the fault. 1424 * - source-ecrcreq-u cascades down to at least one leaf device (pciex or pci), 1425 * whose bdf (if pciex) must match the source-id in the payload of the 1426 * ereport generated from the root complex. 1427 * - ecrcreq-u cascades up to the root complex which must report it with an ecrc 1428 * ereport and any switches on route can optionally raise an ecrc ereport. 1429 * 1430 * Additionally, as the root complex will just throw away the packet, we may 1431 * eventually get a cto - so use an nr-d at the pciex leaf or bridge to get 1432 * the appropriate behaviour. 1433 * 1434 * We can always recognize what sort of fault this is from the ecrc (with no 1435 * cto) at the root complex. Recognizing which leaf device may be implicated 1436 * can be done from the cto ereport (for a hardened leaf driver) or for a 1437 * non-hardened leaf using the source-id payload of the ecrc. 1438 */ 1439prop error.io.pciex.flt-f-ecrcreq-u@pciexbus/pciexdev/pciexfn (2)-> 1440 error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn, 1441 error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn; 1442 1443prop error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn (0)-> 1444 ereport.io.service.lost@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1445 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1446 1447prop error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn (0)-> 1448 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1449 1450prop error.io.pciex.source-f-ecrcreq-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 1451 ereport.io.pciex.tl.ecrc@pciexrc<> { 1452 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1453 1454prop error.io.pciex.source-f-ecrcreq-u@pcibus/pcidev/pcifn (0)-> 1455 ereport.io.service.lost@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1456 ereport.io.service.degraded@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1457 1458prop error.io.pciex.source-f-ecrcreq-u@pcibus[b]/pcidev[d]/pcifn[f] (1)-> 1459 ereport.io.pciex.tl.ecrc@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1460 1461prop error.io.pciex.flt-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn (2)-> 1462 error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn, 1463 error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn; 1464 1465prop error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn (0)-> 1466 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1467 1468prop error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn (1)-> 1469 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1470 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1471 1472prop error.io.pciex.source-nf-ecrcreq-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 1473 ereport.io.pciex.tl.ecrc@pciexrc<> { 1474 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1475 1476prop error.io.pciex.source-nf-ecrcreq-u@pcibus/pcidev/pcifn (1)-> 1477 ereport.io.service.unaffected@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1478 error.io.service.restored@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1479 1480prop error.io.pciex.source-nf-ecrcreq-u@pcibus[b]/pcidev[d]/pcifn[f] (1)-> 1481 ereport.io.pciex.tl.ecrc@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1482 1483prop error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1484 error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn; 1485 1486prop error.io.pciex.ecrcreq-u@pciexbus/pciexdev/pciexfn (0)-> 1487 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_SWD || IS_SWU }; 1488 1489/* 1490 * upstream completion with ecrc error. 1491 * 1492 * - flt-ecrccomp-u is just on the pciex node which generated the fault. 1493 * - source-ecrccomp-u cascades down to at least one leaf device (pciex or pci), 1494 * whose bdf (if pciex) must match the source-id in the payload of the 1495 * ereport generated from the root complex. 1496 * - ecrccomp-u cascades up to the root complex, which should report it with an 1497 * ecrc ereport and any switches on route can optionally raise an ecrc 1498 * ereport. 1499 * 1500 * Additionally, as the root complex will just throw away the packet, we'll 1501 * eventually get a cto - so use an flt-nr-u at the pciex leaf or bridge to get 1502 * the appropriate behaviour. 1503 * 1504 * We can always recognize what sort of fault this from the ecrc/cto from the 1505 * root complex. Recognizing which leaf device may be implicated can be done 1506 * using either the source-id payload of the ecrc or the target-ma ereport if 1507 * available. 1508 */ 1509prop error.io.pciex.flt-f-ecrccomp-u@pciexbus/pciexdev/pciexfn (2)-> 1510 error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn, 1511 error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn; 1512 1513prop error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn (0)-> 1514 ereport.io.service.lost@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1515 ereport.io.service.degraded@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1516 1517prop error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 1518 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1519 1520prop error.io.pciex.source-f-ecrccomp-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 1521 ereport.io.pciex.tl.ecrc@pciexrc<> { 1522 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1523 1524prop error.io.pciex.source-f-ecrccomp-u@pcibus/pcidev/pcifn (0)-> 1525 ereport.io.service.lost@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1526 ereport.io.service.degraded@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1527 1528prop error.io.pciex.source-f-ecrccomp-u@pcibus[b]/pcidev[d]/pcifn[f] (1)-> 1529 ereport.io.pciex.tl.ecrc@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1530 1531prop error.io.pciex.flt-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn (2)-> 1532 error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn, 1533 error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn; 1534 1535prop error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 1536 error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1537 1538prop error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 1539 ereport.io.service.unaffected@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1540 error.io.service.restored@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1541 1542prop error.io.pciex.source-nf-ecrccomp-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 1543 ereport.io.pciex.tl.ecrc@pciexrc<> { 1544 SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC }; 1545 1546prop error.io.pciex.source-nf-ecrccomp-u@pcibus/pcidev/pcifn (1)-> 1547 ereport.io.service.unaffected@pcibus/pcidev/pcifn { IS_PCI_LEAF }, 1548 error.io.service.restored@pcibus/pcidev/pcifn { IS_PCI_LEAF }; 1549 1550prop error.io.pciex.source-nf-ecrccomp-u@pcibus[b]/pcidev[d]/pcifn[f] (1)-> 1551 ereport.io.pciex.tl.ecrc@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1552 1553prop error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1554 error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn; 1555 1556prop error.io.pciex.ecrccomp-u@pciexbus/pciexdev/pciexfn (0)-> 1557 ereport.io.pciex.tl.ecrc@pciexbus/pciexdev/pciexfn { IS_SWD || IS_SWU }; 1558 1559/* 1560 * no response to downstream requester 1561 * 1562 * - nr-d will effectively cascade downstream to the requester. The fault here 1563 * is always at the root complex. For a hardened leaf device driver, we will 1564 * always be able to recognize this as the requester will report this as a 1565 * cto. For non-hardened leaf devices, no cto will be reported, and though we 1566 * should still see a nonfatal error reported from the root complex 1567 * identifying the leaf device, we won't actually be informed that the error 1568 * was a cto. 1569 */ 1570prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (1)-> 1571 error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1572 1573prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (1)-> 1574 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1575 1576prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (1)-> 1577 ereport.io.pciex.tl.cto@pciexbus/pciexdev/pciexfn { IS_BDG }; 1578 1579prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (0)-> 1580 ereport.io.pciex.tl.cto@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1581 1582prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (0)-> 1583 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1584 1585/* 1586 * no response to upstream requester 1587 * 1588 * - flt-nr-u is just on the pciex node which generated the fault. 1589 * - nr-u will effectively cascade upstream to the root complex which will 1590 * report it as a cto. 1591 * 1592 * We have to use target-ma to informs us which device failed to respond. 1593 */ 1594prop error.io.pciex.flt-nr-u@pciexbus/pciexdev/pciexfn (2)-> 1595 error.io.pciex.nr-u@pciexbus/pciexdev/pciexfn, 1596 error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn; 1597 1598prop error.io.pciex.nr-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1599 error.io.pciex.nr-u@pciexbus/pciexdev/pciexfn; 1600 1601prop error.io.pciex.nr-u@pciexrc/pciexbus/pciexdev/pciexfn (1)-> 1602 ereport.io.pciex.tl.cto@pciexrc; 1603 1604prop error.io.pciex.nr-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1605 ereport.io.pci.sec-ma@pciexrc; 1606 1607/* 1608 * downstream malformed tlp 1609 * 1610 * This will cascade downstream to the receiver which will report it as an mtlp. 1611 * For non-hardened leaf drivers, no mtlp will be reported, and though we should 1612 * still see a fatal error reported from the root complex identifying the leaf 1613 * device, we won't actually be informed that the error was a mtlp. 1614 * Note that sw-mtlp-d is to handle the case where the switch is actually 1615 * the target of the packet (config request etc). 1616 */ 1617prop error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn (1)-> 1618 error.io.pciex.sw-mtlp-d@pciexbus/pciexdev/pciexfn, 1619 error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1620 1621prop error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn (1)-> 1622 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1623 1624prop error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn (1)-> 1625 ereport.io.pciex.tl.mtlp@pciexbus/pciexdev/pciexfn { IS_BDG }; 1626 1627prop error.io.pciex.mtlp-d@pciexbus/pciexdev/pciexfn (0)-> 1628 ereport.io.pciex.tl.mtlp@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1629 1630prop error.io.pciex.sw-mtlp-d@pciexbus/pciexdev/pciexfn (2)-> 1631 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn { IS_SWU }, 1632 ereport.io.pciex.tl.mtlp@pciexbus/pciexdev/pciexfn { IS_SWU }; 1633 1634/* 1635 * upstream malformed tlp 1636 * 1637 * This will cascade upstream to the receiver which will report it as an mtlp. 1638 */ 1639prop error.io.pciex.mtlp-u@pciexbus/pciexdev/pciexfn (1)-> 1640 error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn; 1641 1642prop error.io.pciex.source-mtlp-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (1)-> 1643 ereport.io.pciex.tl.mtlp@pciexrc<> { BDF_IS_LEAF && BDF_IS_UNDER_RC }; 1644 1645prop error.io.pciex.source-mtlp-u@pcibus[b]/pcidev[d]/pcifn[f] (1)-> 1646 ereport.io.pciex.tl.mtlp@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1647 1648/* 1649 * downstream completer aborts 1650 * 1651 * This could be the fault of the root complex or a switch reporting an internal 1652 * error, or of the leaf device sending an invalid request (the latter is 1653 * handled by the badreq-u case below). 1654 * 1655 * This is reported by the completer or by an intervening downstream switch 1656 * port. The completer abort response propagates down to the initiator which 1657 * will set the legacy pci bit rta. 1658 * 1659 * The fault can always be recognized by the ca ereport from the root complex 1660 * or downstream switch port. The originator of the request can be recognized 1661 * by the rta for a hardened driver or by using the source-id payload of the 1662 * ca ereport for a non-hardened driver. 1663 * 1664 * Note that there is no ur-d (we assume that a ur reported by the root complex 1665 * is always due to a badreq-u - see below). 1666 */ 1667prop error.io.pciex.flt-ca-d@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1668 error.io.pciex.ca-d@pciexrc/pciexbus/pciexdev/pciexfn, 1669 ereport.io.pciex.tl.ca@pciexrc; 1670 1671prop error.io.pciex.ca-d@pciexrc/pciexbus/pciexdev/pciexfn (1)-> 1672 ereport.io.pci.sec-sta@pciexrc; 1673 1674prop error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (0)-> 1675 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn; 1676 1677prop error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (2)-> 1678 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn, 1679 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 1680 1681prop error.io.pciex.flt-ca-d@pciexbus/pciexdev/pciexfn (0)-> 1682 error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn; 1683 1684prop error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn (1)-> 1685 error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1686 1687prop error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn (1)-> 1688 ereport.io.pci.rta@pciexbus/pciexdev/pciexfn { IS_BDG }; 1689 1690prop error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn (0)-> 1691 ereport.io.pci.rta@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1692 1693/* 1694 * upstream unexpected requests 1695 * 1696 * This could be the fault of a device behind a PCI Express/PCI(X) bridge not 1697 * responding, or of the root complex sending an invalid request (the latter 1698 * case is handled by badreq-d below). 1699 * 1700 * This is reported as a ur by the completer, which for non-posted reqs sets the 1701 * appropriate error bit in the completion message to the initiator which will 1702 * set the legacy pci bit sec-ma. 1703 * 1704 * The fault can always be recognized from the sec-ma bit at the root complex. 1705 * 1706 * If the fault was with the root complex, then we don't care which leaf is 1707 * involved. 1708 * 1709 * If the fault originated from a pci device behind a PCI Express/PCI(X) bridge 1710 * we can identify the leaf device from the target-ma ereport if available or 1711 * from the source-id payload of the sec-rma ereport from the bridge. 1712 */ 1713prop error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn (0)-> 1714 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn 1715 { IS_SWU || IS_LEAF || IS_BDG }; 1716 1717prop error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn (0)-> 1718 ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn { IS_LEAF || IS_BDG }; 1719 1720prop error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn (1)-> 1721 ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn { IS_SWU }; 1722 1723prop error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn (2)-> 1724 error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn, 1725 error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn; 1726 1727prop error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1728 error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn; 1729 1730prop error.io.pciex.ur-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1731 ereport.io.pci.sec-ma@pciexrc; 1732 1733/* 1734 * upstream completer aborts 1735 * 1736 * This could be the fault of the leaf device/bridge/upstream switch port 1737 * reporting an internal error, or of the root complex sending an invalid 1738 * request (the latter case is handled by badreq-d below). 1739 * 1740 * This is reported as a ca by the completer. The completer (for non-posted 1741 * requested) sends the appropriate error bits in the completion message to 1742 * the initiator which will set the legacy pci bit sec-rta. 1743 * 1744 * The fault can always be recognized from the sec-rta bit at the root complex. 1745 * 1746 * If the fault was with a PCI Express leaf with a hardened driver, then we 1747 * will identify the device from the ca ereport. 1748 * 1749 * If the fault was with a PCI Express leaf with a non-hardened driver, then we 1750 * can still identify the leaf device from the source-id payload of the nonfatal 1751 * message ereport from the root complex or from the target-rta ereport. 1752 * 1753 * If the fault originated from a PCI(X) device behind a PCI Express/PCI(X) 1754 * bridge, and it's driver is hardened, we can identify the device from the PCI 1755 * sta ereport or from the source-id payload of the sec-rta ereport from the 1756 * bridge. 1757 * 1758 * If the fault originated from a PCI(X) device behind a PCI Express/PCI(X) 1759 * bridge, and its driver is not hardened we can only identify the leaf device 1760 * from the target-rta ereport if available or from the source-id payload of 1761 * the sec-rta ereport from the bridge. 1762 */ 1763prop error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn (0)-> 1764 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn 1765 { IS_SWU || IS_LEAF || IS_BDG }; 1766 1767prop error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn (0)-> 1768 ereport.io.pci.sta@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1769 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1770 1771prop error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn (0)-> 1772 ereport.io.pci.sta@pciexbus/pciexdev/pciexfn { IS_SWU || IS_BDG }; 1773 1774prop error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn (1)-> 1775 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn { IS_SWU || IS_BDG }; 1776 1777prop error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn (2)-> 1778 error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn, 1779 error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn; 1780 1781prop error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1782 error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn; 1783 1784prop error.io.pciex.ca-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1785 ereport.io.pci.sec-rta@pciexrc; 1786 1787/* 1788 * upstream bad request 1789 * 1790 * When detecting bad data on a request the completer (or any switch on the 1791 * way to the completer) may report ur or ca. If the switch detects the problem 1792 * first then the request doesn't get forwarded on to the completer. 1793 * 1794 * These are reported as ur/ca ereports. For non-posted requests, the reporter 1795 * then sends the appropriate error bits in the completion message to the 1796 * initiator which will set the legacy pci bits ma or rta. 1797 * 1798 * For badreq-u, the ca/ur ereports contain a source-id payload that identifies 1799 * the initiator. 1800 * - flt-badreq-u represents the initiator that caused the fault. This may 1801 * be a child pci device in which case flt-badreq-u is generated in pci.esc 1802 * - badreq-u propagates up to the root complex. 1803 * 1804 * The fault can always be recognized by the ca/ur ereport from the root 1805 * complex or downstream switch port. The originator of the request can be 1806 * recognized by the rta/ma for a hardened driver or by using the source-id 1807 * payload of the ca/ur ereport for a non-hardened driver. 1808 * 1809 * Note that handling of badreq-u where source and detector are both pciexfn 1810 * has to be handled specially to avoid path name matching. 1811 */ 1812prop error.io.pciex.flt-badreq-u@pciexbus/pciexdev/pciexfn (1)-> 1813 error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn; 1814 1815prop error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn (1)-> 1816 error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn; 1817 1818prop error.io.pciex.badreq-u@pciexrc/pciexbus/pciexdev/pciexfn (0)-> 1819 ereport.io.pci.sec-sta@pciexrc; 1820 1821prop error.io.pciex.flt-badreq-u@pciexbus[b]/pciexdev[d]/pciexfn[f] (0)-> 1822 ereport.io.pciex.tl.ur@pciexrc<> { 1823 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC}, 1824 ereport.io.pciex.tl.ca@pciexrc<> { 1825 BDF_IS_LEAF && SOURCE_ID_MATCHES_BDF && BDF_IS_UNDER_RC}; 1826 1827prop error.io.pci.badreq-pw-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1828 ereport.io.pciex.tl.ur@pciexrc<> { PCIBDF_IS_UNDER_RC }, 1829 ereport.io.pciex.tl.ca@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1830 1831prop error.io.pci.badreq-drw-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1832 ereport.io.pciex.tl.ur@pciexrc<> { PCIBDF_IS_UNDER_RC }, 1833 ereport.io.pciex.tl.ca@pciexrc<> { PCIBDF_IS_UNDER_RC }; 1834 1835prop error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn (0)-> 1836 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn { IS_SWD }; 1837 1838prop error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn (0)-> 1839 error.io.pciex.badreq-u@pciexbus/pciexdev { IS_LEAF }; 1840 1841prop error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn (0)-> 1842 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 1843 1844prop error.io.pciex.badreq-u@pciexbus[b]/pciexdev[d] (0)-> 1845 ereport.io.pciex.tl.ur@pciexfn { 1846 (confprop(asru(pciexfn), TOPO_PCI_EXCAP) == "pciexswd") && 1847 (!payloadprop_defined("source-valid") || 1848 payloadprop("source-valid") == 0 || 1849 (payloadprop("source-id") & 0xfff8) == ((b << 8) | (d << 3))) }, 1850 ereport.io.pciex.tl.ca@pciexfn { 1851 (confprop(asru(pciexfn), TOPO_PCI_EXCAP) == "pciexswd") && 1852 (!payloadprop_defined("source-valid") || 1853 payloadprop("source-valid") == 0 || 1854 (payloadprop("source-id") & 0xfff8) == ((b << 8) | (d << 3))) }; 1855 1856prop error.io.pci.badreq-pw-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1857 ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn { IS_SWD && 1858 PCIBDF_IS_UNDER_DEV }, 1859 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn { IS_SWD && 1860 PCIBDF_IS_UNDER_DEV }; 1861 1862prop error.io.pci.badreq-drw-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 1863 ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn { IS_SWD && 1864 PCIBDF_IS_UNDER_DEV }, 1865 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn { IS_SWD && 1866 PCIBDF_IS_UNDER_DEV }; 1867 1868prop error.io.pciex.flt-badreq-u@pciexbus/pciexdev/pciexfn (0)-> 1869 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1870 ereport.io.pci.rta@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1871 1872/* 1873 * downstream bad request 1874 * 1875 * When detecting bad data on a request the completer (or any switch on the 1876 * way to the completer) may report ur or ca. If the switch detects the problem 1877 * first then the request doesn't get forwarded on to the completer. 1878 * 1879 * These are reported as ur/ca ereports (except where the completer is a non- 1880 * hardened leaf driver when all we get is a nonfatal error from the root 1881 * complex identifying the leaf device). The reporter then sends the appropriate 1882 * error bits in the completion message to the initiator which will set the 1883 * legacy pci bits ma or rta (oddly there is no equivalent in pcie error 1884 * reporting). 1885 */ 1886prop error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn (1)-> 1887 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn, 1888 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn, 1889 error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 1890 1891prop error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn (1)-> 1892 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn { IS_LEAF }, 1893 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1894 1895prop error.io.pciex.badreq-d@pciexbus/pciexdev/pciexfn (1)-> 1896 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn, 1897 error.io.pciex.flt-ca-u@pciexbus/pciexdev/pciexfn, 1898 error.io.pci.badreq-pw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 1899 error.io.pci.badreq-drw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 1900 1901/* 1902 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1903 * Stub unused legacy pci ereports at root complex. 1904 * Stub tl.uc as we can't do anything useful with it (we should eventually 1905 * get a cto which we can do something with - a uc without a cto is a genuinely 1906 * spurious completion which is at least harmless). 1907 * Stub messages that the root complex sends to itself. 1908 * Stub mce/mue/ce/nr/noadverr. 1909 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1910 */ 1911 1912event error.io.pciex.discard_rc@pciexrc; 1913 1914event ereport.io.pciex.tl.uc@pciexbus/pciexdev/pciexfn{within(5s)}; 1915event ereport.io.pciex.noadverr@pciexbus/pciexdev/pciexfn{within(5s)}; 1916event ereport.io.pciex.correctable@pciexbus/pciexdev/pciexfn{within(5s)}; 1917event ereport.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn{within(5s)}; 1918event ereport.io.pciex.a-nonfatal@pciexbus/pciexdev/pciexfn{within(5s)}; 1919event ereport.io.pciex.fatal@pciexbus/pciexdev/pciexfn{within(5s)}; 1920event ereport.io.pci.nr@pciexbus/pciexdev/pciexfn{within(5s)}; 1921event ereport.io.pci.nr@pciexrc{within(5s)}; 1922event ereport.io.pci.ma@pciexrc{within(5s)}; 1923event ereport.io.pci.rta@pciexrc{within(5s)}; 1924event ereport.io.pci.sta@pciexrc{within(5s)}; 1925event ereport.io.pci.dpe@pciexrc{within(5s)}; 1926event ereport.io.pci.mdpe@pciexrc{within(5s)}; 1927event ereport.io.pci.sserr@pciexrc{within(5s)}; 1928event ereport.io.pciex.tl.uc@pciexrc{within(5s)}; 1929event ereport.io.pciex.noadverr@pciexrc{within(5s)}; 1930event ereport.io.pciex.a-nonfatal@pciexrc{within(5s)}; 1931event ereport.io.pciex.rc.ce-msg@pciexrc{within(5s)}; 1932event ereport.io.pciex.rc.mce-msg@pciexrc{within(5s)}; 1933event ereport.io.pciex.rc.mue-msg@pciexrc{within(5s)}; 1934 1935event upset.io.pciex.discard_uc@pciexbus/pciexdev/pciexfn; 1936event upset.io.pciex.discard@pciexbus/pciexdev/pciexfn; 1937event upset.io.pciex.discard@pciexrc; 1938 1939prop upset.io.pciex.discard_uc@pciexbus/pciexdev/pciexfn (1)-> 1940 ereport.io.pciex.tl.uc@pciexbus/pciexdev/pciexfn { IS_BDG }; 1941 1942prop upset.io.pciex.discard_uc@pciexbus/pciexdev/pciexfn (1)-> 1943 ereport.io.pciex.tl.uc@pciexbus/pciexdev/pciexfn { IS_LEAF }; 1944 1945prop upset.io.pciex.discard@pciexbus/pciexdev/pciexfn (1)-> 1946 ereport.io.pci.nr@pciexbus/pciexdev/pciexfn, 1947 ereport.io.pciex.noadverr@pciexbus/pciexdev/pciexfn, 1948 ereport.io.pciex.correctable@pciexbus/pciexdev/pciexfn, 1949 ereport.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 1950 ereport.io.pciex.a-nonfatal@pciexbus/pciexdev/pciexfn, 1951 ereport.io.pciex.fatal@pciexbus/pciexdev/pciexfn; 1952 1953prop error.io.pciex.discard_rc@pciexrc (1)-> 1954 ereport.io.pciex.rc.fe-msg@pciexrc { SOURCE_ID_MATCHES_OWN_BDF }, 1955 ereport.io.pciex.rc.nfe-msg@pciexrc { SOURCE_ID_MATCHES_OWN_BDF }, 1956 ereport.io.pciex.rc.ce-msg@pciexrc { SOURCE_ID_MATCHES_OWN_BDF }; 1957 1958prop upset.io.pciex.discard@pciexrc (1)-> 1959 error.io.pciex.discard_rc@pciexrc, 1960 ereport.io.pci.nr@pciexrc, 1961 ereport.io.pciex.noadverr@pciexrc, 1962 ereport.io.pciex.a-nonfatal@pciexrc, 1963 ereport.io.pciex.rc.ce-msg@pciexrc, 1964 ereport.io.pciex.rc.mce-msg@pciexrc, 1965 ereport.io.pciex.rc.mue-msg@pciexrc, 1966 ereport.io.pciex.tl.uc@pciexrc, 1967 ereport.io.pci.ma@pciexrc, 1968 ereport.io.pci.rta@pciexrc, 1969 ereport.io.pci.sta@pciexrc, 1970 ereport.io.pci.dpe@pciexrc, 1971 ereport.io.pci.mdpe@pciexrc, 1972 ereport.io.pci.sserr@pciexrc; 1973 1974/* 1975 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1976 * rules for PCI Express to PCI bridge propagations 1977 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1978 */ 1979 1980event error.io.pci.retry-to-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1981event error.io.pci.badreq-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1982event error.io.pci.badreq-drw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1983event error.io.pci.ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1984event error.io.pci.ta-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1985event error.io.pci.ape-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1986event error.io.pci.source-ape-u@pcibus/pcidev/pcifn; 1987event error.io.pci.source-f-perr-u@pcibus/pcidev/pcifn; 1988event error.io.pci.source-nf-perr-u@pcibus/pcidev/pcifn; 1989event error.io.pci.target-ma-d@pcibus/pcidev/pcifn; 1990event error.io.pci.target-rta-d@pcibus/pcidev/pcifn; 1991event error.io.pci.f-dpdata-pw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1992event error.io.pci.nf-dpdata-pw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1993event error.io.pci.f-dpdata-dw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1994event error.io.pci.nf-dpdata-dw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1995event error.io.pci.f-dpdata-dr-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1996event error.io.pci.nf-dpdata-dr-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1997event error.io.pci.dpdata-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1998event error.io.pci.dpdata-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 1999event error.io.pci.dpdata-dr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2000event error.io.pci.perr-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2001event error.io.pci.perr-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2002event error.io.pci.perr-dr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2003event error.io.pci.serr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2004event error.io.pcix.scpe-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2005event error.io.pcix.source-scpe-u@pcibus/pcidev/pcifn; 2006event error.io.pcix.spl-comp-ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2007event error.io.pcix.spl-comp-ta-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2008event error.io.pcix.spl-comp-ma-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2009event error.io.pcix.spl-comp-ta-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2010event error.io.pcix.uscmd@pciexbus/pciexdev/pciexfn; 2011 2012event ereport.io.pcix.sec-spl-dis@pciexbus/pciexdev/pciexfn{within(5s)}; 2013event ereport.io.pciex.bdg.uscmd@pciexbus/pciexdev/pciexfn{within(5s)}; 2014event ereport.io.pciex.bdg.sec-perr@pciexbus/pciexdev/pciexfn{within(5s)}; 2015event ereport.io.pciex.bdg.sec-uadr@pciexbus/pciexdev/pciexfn{within(5s)}; 2016event ereport.io.pciex.bdg.sec-uat@pciexbus/pciexdev/pciexfn{within(5s)}; 2017event ereport.io.pciex.bdg.sec-serr@pciexbus/pciexdev/pciexfn{within(5s)}; 2018event ereport.io.pciex.bdg.sec-tex@pciexbus/pciexdev/pciexfn{within(5s)}; 2019event ereport.io.pciex.bdg.sec-rma@pciexbus/pciexdev/pciexfn{within(5s)}; 2020event ereport.io.pciex.bdg.sec-rta@pciexbus/pciexdev/pciexfn{within(5s)}; 2021event ereport.io.pciex.bdg.sec-ma-sc@pciexbus/pciexdev/pciexfn{within(5s)}; 2022event ereport.io.pciex.bdg.sec-ta-sc@pciexbus/pciexdev/pciexfn{within(5s)}; 2023event ereport.io.pci.dto@pciexbus/pciexdev/pciexfn{within(5s)}; 2024event ereport.io.pci.sec-rta@pciexbus/pciexdev/pciexfn{within(5s)}; 2025event ereport.io.pci.sec-ma@pciexbus/pciexdev/pciexfn{within(5s)}; 2026 2027/* 2028 * propagations from pci express onto pci/pci-x 2029 */ 2030 2031/* 2032 * poisoned tlps propagate as parity/ecc errors. 2033 */ 2034prop error.io.pciex.f-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 2035 error.io.pci.f-dpdata-pw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 2036 error.io.pci.f-dpdata-dw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2037 2038prop error.io.pciex.nf-poisreq-d@pciexbus/pciexdev/pciexfn (1)-> 2039 error.io.pci.nf-dpdata-pw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>, 2040 error.io.pci.nf-dpdata-dw-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2041 2042prop error.io.pciex.f-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 2043 error.io.pci.f-dpdata-dr-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2044 2045prop error.io.pciex.nf-poiscomp-d@pciexbus/pciexdev/pciexfn (1)-> 2046 error.io.pci.nf-dpdata-dr-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2047 2048/* 2049 * ca-d only propagates on to pci bus if non-posted access 2050 */ 2051prop error.io.pciex.ca-d@pciexbus/pciexdev/pciexfn (0)-> 2052 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 2053 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2054 2055/* 2056 * nr-d only propagates on to pci bus if non-posted access 2057 */ 2058prop error.io.pciex.nr-d@pciexbus/pciexdev/pciexfn (0)-> 2059 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 2060 error.io.pci.nr-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn, 2061 error.io.pci.ta-drw-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2062 2063/* 2064 * propagations from pci/pci-x onto pci express 2065 */ 2066 2067/* 2068 * ma-u will only propagate on to pciex bus for non-posted accesses. It 2069 * is then represented as an unsupported request. 2070 */ 2071prop error.io.pci.ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2072 ereport.io.pciex.tl.ur@pciexbus/pciexdev/pciexfn, 2073 error.io.pciex.ur-u@pciexbus/pciexdev/pciexfn; 2074 2075prop error.io.pci.ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (2)-> 2076 ereport.io.pci.sec-ma@pciexbus/pciexdev/pciexfn, 2077 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 2078 2079prop error.io.pci.target-ma-d@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2080 ereport.io.pciex.bdg.sec-rma@pciexbus/pciexdev/pciexfn { IS_BDG && 2081 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2082 2083/* 2084 * ta-u will only propagate on to pciex bus for non-posted accesses. It is 2085 * then represented as a completer abort. 2086 */ 2087prop error.io.pci.ta-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2088 ereport.io.pci.sta@pciexbus/pciexdev/pciexfn, 2089 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn, 2090 error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn; 2091 2092prop error.io.pci.ta-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (2)-> 2093 ereport.io.pci.sec-rta@pciexbus/pciexdev/pciexfn, 2094 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 2095 2096prop error.io.pci.target-rta-d@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2097 ereport.io.pciex.bdg.sec-rta@pciexbus/pciexdev/pciexfn { IS_BDG && 2098 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2099 2100/* 2101 * PERR# on a delayed write is represented as an unsupported request 2102 */ 2103prop error.io.pci.perr-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (1)-> 2104 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn; 2105 2106prop error.io.pci.perr-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2107 error.io.pciex.flt-ur-u@pciexbus/pciexdev/pciexfn; 2108 2109prop error.io.pci.perr-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (1)-> 2110 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn; 2111 2112prop error.io.pci.perr-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2113 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 2114 2115prop error.io.pci.source-f-perr-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2116 ereport.io.pciex.bdg.sec-perr@pciexbus/pciexdev/pciexfn { IS_BDG && 2117 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2118 2119prop error.io.pci.source-nf-perr-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2120 ereport.io.pciex.bdg.sec-perr@pciexbus/pciexdev/pciexfn { IS_BDG && 2121 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2122 2123prop error.io.pci.perr-dr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (1)-> 2124 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 2125 2126/* 2127 * If the bridge receives data with bad ecc/parity from pci/pci-x, it will 2128 * propagate onto pci express as a poisoned tlp 2129 */ 2130prop error.io.pci.dpdata-dr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (3)-> 2131 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn, 2132 ereport.io.pci.sec-mdpe@pciexbus/pciexdev/pciexfn, 2133 error.io.pciex.poiscomp-u@pciexbus/pciexdev/pciexfn; 2134 2135prop error.io.pci.dpdata-dr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2136 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 2137 ereport.io.pci.mdpe@pciexbus/pciexdev/pciexfn; 2138 2139prop error.io.pci.dpdata-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (1)-> 2140 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn; 2141 2142prop error.io.pci.dpdata-dw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2143 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 2144 error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 2145 2146prop error.io.pci.dpdata-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (2)-> 2147 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn, 2148 error.io.pciex.poisreq-u@pciexbus/pciexdev/pciexfn; 2149 2150prop error.io.pci.dpdata-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2151 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn; 2152 2153/* 2154 * If the bridge sees an address or attribute parity error it is considered 2155 * a fatal error. 2156 */ 2157prop error.io.pci.ape-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (2)-> 2158 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn, 2159 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn; 2160 2161prop error.io.pci.source-ape-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2162 ereport.io.pciex.bdg.sec-uat@pciexbus/pciexdev/pciexfn { IS_BDG && 2163 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }, 2164 ereport.io.pciex.bdg.sec-uadr@pciexbus/pciexdev/pciexfn { IS_BDG && 2165 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2166 2167prop error.io.pci.ape-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2168 ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn, 2169 ereport.io.pciex.bdg.sec-serr@pciexbus/pciexdev/pciexfn, 2170 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn; 2171 2172/* 2173 * If the bridge sees a split completion error (pci-x only) it could 2174 * result in a number of things 2175 * - unrecovered split completion message data error (uscmd). This would 2176 * happen on a pio write. A completer abort is returned to the initiator. 2177 * - for various faults in the split completion (eg address parity error) 2178 * we will respond with a target abort (which the child device will treat 2179 * as a split completion ta) 2180 * - for other faults we can't tell who send the split completion and so 2181 * just drop the request (which the child device sees as a split 2182 * completion ma) 2183 */ 2184prop error.io.pcix.scpe-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2185 ereport.io.pci.sec-dpe@pciexbus/pciexdev/pciexfn, 2186 ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn, 2187 ereport.io.pciex.bdg.sec-serr@pciexbus/pciexdev/pciexfn, 2188 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn, 2189 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn; 2190 2191prop error.io.pcix.source-scpe-u@pcibus[b]/pcidev[d]/pcifn[f] (0)-> 2192 ereport.io.pciex.bdg.sec-uat@pciexbus/pciexdev/pciexfn { IS_BDG && 2193 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }, 2194 ereport.io.pciex.bdg.sec-uadr@pciexbus/pciexdev/pciexfn { IS_BDG && 2195 BDF_IS_PCI_LEAF && SOURCE_ID_MATCHES_BDF && PCIBDF_IS_UNDER_DEV }; 2196 2197prop error.io.pcix.scpe-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (1)-> 2198 error.io.pcix.uscmd@pciexbus/pciexdev/pciexfn, 2199 error.io.pcix.spl-comp-ma-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn, 2200 error.io.pcix.spl-comp-ta-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2201 2202prop error.io.pcix.uscmd@pciexbus/pciexdev/pciexfn (5)-> 2203 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn, 2204 ereport.io.pci.sta@pciexbus/pciexdev/pciexfn, 2205 ereport.io.pciex.tl.ca@pciexbus/pciexdev/pciexfn, 2206 error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn, 2207 ereport.io.pciex.bdg.uscmd@pciexbus/pciexdev/pciexfn; 2208 2209/* 2210 * Similarly a child device may have responded with a master abort or 2211 * target abort to one of our split competions. The hardware just logs these. 2212 */ 2213prop error.io.pcix.spl-comp-ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (3)-> 2214 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 2215 ereport.io.pcix.sec-spl-dis@pciexbus/pciexdev/pciexfn, 2216 ereport.io.pciex.bdg.sec-ma-sc@pciexbus/pciexdev/pciexfn; 2217 2218prop error.io.pcix.spl-comp-ma-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2219 ereport.io.pci.sec-ma@pciexbus/pciexdev/pciexfn; 2220 2221prop error.io.pcix.spl-comp-ta-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (4)-> 2222 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 2223 ereport.io.pcix.sec-spl-dis@pciexbus/pciexdev/pciexfn, 2224 ereport.io.pciex.bdg.sec-ta-sc@pciexbus/pciexdev/pciexfn, 2225 ereport.io.pci.sec-rta@pciexbus/pciexdev/pciexfn; 2226 2227/* 2228 * SERR# is considered fatal 2229 */ 2230prop error.io.pci.serr-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (3)-> 2231 error.io.pciex.fatal@pciexbus/pciexdev/pciexfn, 2232 ereport.io.pci.sec-rserr@pciexbus/pciexdev/pciexfn, 2233 ereport.io.pciex.bdg.sec-serr@pciexbus/pciexdev/pciexfn; 2234 2235/* 2236 * Retry time-out is nonfatal. The initial requester has stopped retrying so 2237 * there's nothing else the hardware can do but flag the error. 2238 */ 2239prop error.io.pci.retry-to-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (2)-> 2240 error.io.pciex.nonfatal@pciexbus/pciexdev/pciexfn, 2241 ereport.io.pciex.bdg.sec-tex@pciexbus/pciexdev/pciexfn; 2242 2243prop error.io.pci.retry-to-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2244 ereport.io.pci.sta@pciexbus/pciexdev/pciexfn, 2245 error.io.pciex.ca-u@pciexbus/pciexdev/pciexfn, 2246 ereport.io.pci.dto@pciexbus/pciexdev/pciexfn; 2247 2248/* 2249 * A bad dma request (eg with invalid address) propagates onto pci express 2250 * as a bad dma request. The end result may be a master abort or target abort 2251 * (depending on whether the child is pci-x or pci). 2252 */ 2253prop error.io.pci.badreq-pw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2254 error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn, 2255 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn, 2256 ereport.io.pci.rta@pciexbus/pciexdev/pciexfn, 2257 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn; 2258 2259prop error.io.pci.badreq-drw-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn (0)-> 2260 error.io.pciex.badreq-u@pciexbus/pciexdev/pciexfn, 2261 ereport.io.pci.ma@pciexbus/pciexdev/pciexfn, 2262 ereport.io.pci.rta@pciexbus/pciexdev/pciexfn, 2263 ereport.io.pci.sec-sta@pciexbus/pciexdev/pciexfn; 2264 2265/* 2266 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2267 * source- and target- propagations 2268 * 2269 * The source- propagations cascade down to a leaf device, which can then have 2270 * its bdf matched against the source-id of various ereports. This is necessary 2271 * because for a number of cases the source-id represents the original requester 2272 * of the packet which may be different from the detector of the error (which 2273 * could be a bridge or switch). 2274 * 2275 * A Root Complex driver may generate "target-" ereports when knowledge of the 2276 * physical address associated with a fault allows the target device to be 2277 * determined. This is not a requirement of the Diagnosis Engine, but can be 2278 * valuable when available. 2279 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2280 */ 2281event error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2282event error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2283event error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2284event error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2285event error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2286event error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2287event error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2288event error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2289event error.io.pci.source-f-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2290event error.io.pci.source-nf-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2291event error.io.pci.source-f-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2292event error.io.pci.source-nf-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2293event error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2294event error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2295event error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2296event error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2297event error.io.pciex.source-f-ecrcreq-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 2298event error.io.pciex.source-nf-ecrcreq-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 2299event error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2300event error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2301event error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2302event error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2303event error.io.pciex.source-f-ecrccomp-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 2304event error.io.pciex.source-nf-ecrccomp-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 2305event error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn/pciexbus/pciexdev/pciexfn; 2306event error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn/pcibus/pcidev/pcifn; 2307event error.io.pciex.source-mtlp-u@pcibus/pcidev/pcifn/pcibus/pcidev/pcifn; 2308 2309event ereport.io.pci.target-mdpe@pciexbus/pciexdev/pciexfn{within(5s)}; 2310event ereport.io.pci.target-rta@pciexbus/pciexdev/pciexfn{within(5s)}; 2311event ereport.io.pci.target-ma@pciexbus/pciexdev/pciexfn{within(5s)}; 2312 2313prop error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn (1)-> 2314 error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2315 2316prop error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn (1)-> 2317 error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2318 2319prop error.io.pci.target-ma-d@pciexbus/pciexdev/pciexfn (0)-> 2320 ereport.io.pci.target-ma@pciexbus/pciexdev/pciexfn; 2321 2322prop error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn (1)-> 2323 error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2324 2325prop error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn (1)-> 2326 error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2327 2328prop error.io.pci.target-rta-d@pciexbus/pciexdev/pciexfn (0)-> 2329 ereport.io.pci.target-rta@pciexbus/pciexdev/pciexfn; 2330 2331prop error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn (1)-> 2332 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2333 2334prop error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn (1)-> 2335 error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2336 2337prop error.io.pci.target-mdpe-d@pciexbus/pciexdev/pciexfn (0)-> 2338 ereport.io.pci.target-mdpe@pciexbus/pciexdev/pciexfn; 2339 2340prop error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 2341 error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2342 2343prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 2344 error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2345 2346prop error.io.pciex.source-f-poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 2347 error.io.pci.source-f-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2348 2349prop error.io.pciex.source-nf-poisreq-u@pciexbus/pciexdev/pciexfn (1)-> 2350 error.io.pci.source-nf-dpdata-w-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2351 2352prop error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 2353 error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2354 2355prop error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 2356 error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2357 2358prop error.io.pciex.source-f-poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 2359 error.io.pci.source-f-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2360 2361prop error.io.pciex.source-nf-poiscomp-u@pciexbus/pciexdev/pciexfn (1)-> 2362 error.io.pci.source-nf-dpdata-r-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2363 2364prop error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn (1)-> 2365 error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2366 2367prop error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn (1)-> 2368 error.io.pciex.source-f-ecrcreq-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2369 2370prop error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn (1)-> 2371 error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2372 2373prop error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn (1)-> 2374 error.io.pciex.source-nf-ecrcreq-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2375 2376prop error.io.pciex.source-f-ecrcreq-u@pcibus/pcidev/pcifn (1)-> 2377 error.io.pciex.source-f-ecrcreq-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 2378 2379prop error.io.pciex.source-nf-ecrcreq-u@pcibus/pcidev/pcifn (1)-> 2380 error.io.pciex.source-nf-ecrcreq-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 2381 2382prop error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 2383 error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2384 2385prop error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 2386 error.io.pciex.source-f-ecrccomp-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2387 2388prop error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 2389 error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2390 2391prop error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn (1)-> 2392 error.io.pciex.source-nf-ecrccomp-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2393 2394prop error.io.pciex.source-f-ecrccomp-u@pcibus/pcidev/pcifn (1)-> 2395 error.io.pciex.source-f-ecrccomp-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 2396 2397prop error.io.pciex.source-nf-ecrccomp-u@pcibus/pcidev/pcifn (1)-> 2398 error.io.pciex.source-nf-ecrccomp-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 2399 2400prop error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn (1)-> 2401 error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn/pciexbus<>/pciexdev<>/pciexfn<>; 2402 2403prop error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn (1)-> 2404 error.io.pciex.source-mtlp-u@pciexbus/pciexdev/pciexfn/pcibus<>/pcidev<>/pcifn<>; 2405 2406prop error.io.pciex.source-mtlp-u@pcibus/pcidev/pcifn (1)-> 2407 error.io.pciex.source-mtlp-u@pcibus/pcidev/pcifn/pcibus<>/pcidev<>/pcifn<>; 2408 2409/* 2410 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2411 * stub unused pciex-pci bridge ereports 2412 * - ignore usc/sec-unex-spl 2413 * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info) 2414 * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe) 2415 * - ignore ecc.ce ereports for now (could do serd on these) 2416 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2417 */ 2418 2419event ereport.io.pciex.bdg.usc@pciexbus/pciexdev/pciexfn{within(5s)}; 2420event ereport.io.pcix.sec-unex-spl@pciexbus/pciexdev/pciexfn{within(5s)}; 2421event ereport.io.pcix.sec-spl-or@pciexbus/pciexdev/pciexfn{within(5s)}; 2422event ereport.io.pcix.sec-spl-dly@pciexbus/pciexdev/pciexfn{within(5s)}; 2423event ereport.io.pcix.sec-ecc.ce-addr@pciexbus/pciexdev/pciexfn{within(5s)}; 2424event ereport.io.pcix.sec-ecc.ce-attr@pciexbus/pciexdev/pciexfn{within(5s)}; 2425event ereport.io.pcix.sec-ecc.ce-data@pciexbus/pciexdev/pciexfn{within(5s)}; 2426event ereport.io.pcix.sec-ecc.ue-addr@pciexbus/pciexdev/pciexfn{within(5s)}; 2427event ereport.io.pcix.sec-ecc.ue-attr@pciexbus/pciexdev/pciexfn{within(5s)}; 2428event ereport.io.pcix.sec-ecc.ue-data@pciexbus/pciexdev/pciexfn{within(5s)}; 2429event ereport.io.pcix.sec-s-ce@pciexbus/pciexdev/pciexfn{within(5s)}; 2430event ereport.io.pcix.sec-s-ue@pciexbus/pciexdev/pciexfn{within(5s)}; 2431 2432event upset.io.pciex.discard-bdg@pciexbus/pciexdev/pciexfn; 2433 2434prop upset.io.pciex.discard-bdg@pciexbus/pciexdev/pciexfn (1)-> 2435 ereport.io.pciex.bdg.usc@pciexbus/pciexdev/pciexfn, 2436 ereport.io.pcix.sec-unex-spl@pciexbus/pciexdev/pciexfn, 2437 ereport.io.pcix.sec-spl-or@pciexbus/pciexdev/pciexfn, 2438 ereport.io.pcix.sec-spl-dly@pciexbus/pciexdev/pciexfn, 2439 ereport.io.pcix.sec-ecc.ce-addr@pciexbus/pciexdev/pciexfn, 2440 ereport.io.pcix.sec-ecc.ce-attr@pciexbus/pciexdev/pciexfn, 2441 ereport.io.pcix.sec-ecc.ce-data@pciexbus/pciexdev/pciexfn, 2442 ereport.io.pcix.sec-ecc.ue-addr@pciexbus/pciexdev/pciexfn, 2443 ereport.io.pcix.sec-ecc.ue-attr@pciexbus/pciexdev/pciexfn, 2444 ereport.io.pcix.sec-ecc.ue-data@pciexbus/pciexdev/pciexfn, 2445 ereport.io.pcix.sec-s-ce@pciexbus/pciexdev/pciexfn, 2446 ereport.io.pcix.sec-s-ue@pciexbus/pciexdev/pciexfn; 2447