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