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