100d0963fSdilpreet/* 200d0963fSdilpreet * CDDL HEADER START 300d0963fSdilpreet * 400d0963fSdilpreet * The contents of this file are subject to the terms of the 500d0963fSdilpreet * Common Development and Distribution License (the "License"). 600d0963fSdilpreet * You may not use this file except in compliance with the License. 700d0963fSdilpreet * 800d0963fSdilpreet * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 900d0963fSdilpreet * or http://www.opensolaris.org/os/licensing. 1000d0963fSdilpreet * See the License for the specific language governing permissions 1100d0963fSdilpreet * and limitations under the License. 1200d0963fSdilpreet * 1300d0963fSdilpreet * When distributing Covered Code, include this CDDL HEADER in each 1400d0963fSdilpreet * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1500d0963fSdilpreet * If applicable, add the following below this CDDL HEADER, with the 1600d0963fSdilpreet * fields enclosed by brackets "[]" replaced with your own identifying 1700d0963fSdilpreet * information: Portions Copyright [yyyy] [name of copyright owner] 1800d0963fSdilpreet * 1900d0963fSdilpreet * CDDL HEADER END 2000d0963fSdilpreet */ 2100d0963fSdilpreet/* 228cffa125SStephen Hanson * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2300d0963fSdilpreet * Use is subject to license terms. 2400d0963fSdilpreet */ 2500d0963fSdilpreet 2600d0963fSdilpreet#pragma dictionary "PCIEX" 2700d0963fSdilpreet 280eb822a1Scindi#include <fm/topo_hc.h> 290eb822a1Scindi 3000d0963fSdilpreet/* 3100d0963fSdilpreet * FIT rates - assume leaf devices are somewhat less reliable than 3200d0963fSdilpreet * root complexes, switches and bridges 3300d0963fSdilpreet */ 3400d0963fSdilpreet#define PCIEX_RC_FIT 500 3500d0963fSdilpreet#define PCIEX_SW_FIT 500 3600d0963fSdilpreet#define PCIEX_BDG_FIT 500 3700d0963fSdilpreet#define PCIEX_DEV_FIT 1000 3800d0963fSdilpreet#define PCIEX_RC_INV_FIT 500 3900d0963fSdilpreet#define PCIEX_DEV_INV_FIT 1000 4000d0963fSdilpreet#define PCIEX_RC_NR_FIT 500 4100d0963fSdilpreet#define PCIEX_SW_NR_FIT 500 4200d0963fSdilpreet#define PCIEX_BDG_NR_FIT 500 4300d0963fSdilpreet#define PCIEX_DEV_NR_FIT 1000 4400d0963fSdilpreet#define PCIEX_BUS_FIT 500 4500d0963fSdilpreet#define PCIEX_BUS_NR_FIT 500 4600d0963fSdilpreet 4700d0963fSdilpreet/* 4800d0963fSdilpreet * SERD parameters. 4900d0963fSdilpreet * 5000d0963fSdilpreet * PCI Express correctable link errors are automatically handled by the 5100d0963fSdilpreet * hardware, so have relatively little impact and we can allow quite a 5200d0963fSdilpreet * high frequency. We will also be quite conservative about nonfatal internal 5300d0963fSdilpreet * errors reported by the driver. 5400d0963fSdilpreet * 5500d0963fSdilpreet * Nonfatal dpe errors (ptlp/ecrc errors) have to be recovered by the hardened 5600d0963fSdilpreet * driver which may cause intermittant performance/responsiveness problems, so 5700d0963fSdilpreet * we have tighter serd parameters for these. These are most likely errors in 5800d0963fSdilpreet * buffers/caches within devices and bridges, so use similar rates to cpu 5900d0963fSdilpreet * data cache parity errors. 6000d0963fSdilpreet */ 6100d0963fSdilpreet#define CORRLINK_COUNT 6 6200d0963fSdilpreet#define CORRLINK_TIME 2h 636e1fa242SStephen Hanson#define BTLP_COUNT 6 646e1fa242SStephen Hanson#define BTLP_TIME 2h 656e1fa242SStephen Hanson#define BDLLP_COUNT 6 666e1fa242SStephen Hanson#define BDLLP_TIME 2h 676e1fa242SStephen Hanson#define RTO_COUNT 6 686e1fa242SStephen Hanson#define RTO_TIME 2h 696e1fa242SStephen Hanson#define RNR_COUNT 6 706e1fa242SStephen Hanson#define RNR_TIME 2h 716e1fa242SStephen Hanson#define RE_COUNT 6 726e1fa242SStephen Hanson#define RE_TIME 2h 73b7d3956bSstephh#define NONFATAL_DPE_COUNT 3 74b7d3956bSstephh#define NONFATAL_DPE_TIME 168h 7500d0963fSdilpreet 7600d0963fSdilpreet/* 7700d0963fSdilpreet * if the source-id payload is valid, then check it matches 7800d0963fSdilpreet */ 7900d0963fSdilpreet#define SOURCE_ID_MATCHES_BDF \ 80e5ba14ffSstephh (!payloadprop_defined("source-valid") || \ 81e5ba14ffSstephh payloadprop("source-valid") == 0 || \ 8200d0963fSdilpreet payloadprop("source-id") == ((b << 8) | (d << 3) | f)) 8300d0963fSdilpreet 8400d0963fSdilpreet#define SOURCE_ID_MATCHES_OWN_BDF \ 85e5ba14ffSstephh (payloadprop_defined("source-valid") && \ 86e5ba14ffSstephh payloadprop("source-valid") == 1 && \ 87b7d3956bSstephh payloadprop("source-id") == (confprop(pciexrc, TOPO_PCI_BDF) + 0)) 8800d0963fSdilpreet 8900d0963fSdilpreet/* 9000d0963fSdilpreet * Other useful macros. These use the EXCAP property (PCI Express Capabilities 9100d0963fSdilpreet * register) to find the type for PCI Express devices, and the CLASS-CODE 9200d0963fSdilpreet * property (PCI Class Code register) for to find the type of PCI devices behind 9300d0963fSdilpreet * a PCI Express-PCI bridge - note that 60400 and 60401 are defined as PCI-PCI 9400d0963fSdilpreet * bridges, everything else is consider a PCI leaf device. 9500d0963fSdilpreet */ 96b7d3956bSstephh#define PCIEXFN pciexbus/pciexdev/pciexfn 97b7d3956bSstephh#define PCIEXFNHZ pciexbus<>/pciexdev<>/pciexfn<> 98b7d3956bSstephh#define PCIEXFN1 pciexbus[b]/pciexdev[d]/pciexfn[f] 99b7d3956bSstephh#define PCIFN pcibus/pcidev/pcifn 100b7d3956bSstephh#define PCIFNHZ pcibus<>/pcidev<>/pcifn<> 101b7d3956bSstephh#define PCIFN1 pcibus[b]/pcidev[d]/pcifn[f] 102b7d3956bSstephh#define IS_LF(f) (confprop(f, TOPO_PCI_EXCAP) == "pciexdev") 103b7d3956bSstephh#define IS_BG(f) (confprop(f, TOPO_PCI_EXCAP) == "pcibus") 104b7d3956bSstephh#define IS_SD(f) (confprop(f, TOPO_PCI_EXCAP) == "pciexswd") 105b7d3956bSstephh#define IS_SU(f) (confprop(f, TOPO_PCI_EXCAP) == "pciexswu") 106b7d3956bSstephh#define IS_PCI_LF(f) (confprop_defined(f, TOPO_PCI_CLASS) && \ 107b7d3956bSstephh confprop(f, TOPO_PCI_CLASS) != "60400" && \ 108b7d3956bSstephh confprop(f, TOPO_PCI_CLASS) != "60401") 10900d0963fSdilpreet 11000d0963fSdilpreet/* 11100d0963fSdilpreet * define faults 11200d0963fSdilpreet */ 11305dd151bSStephen Hansonevent fault.io.pciex.fw_corrupt@PCIEXFN, FITrate=PCIEX_DEV_FIT, retire=0; 11405dd151bSStephen Hansonevent fault.io.pciex.fw_mismatch@PCIEXFN, FITrate=PCIEX_DEV_FIT, retire=0; 11505dd151bSStephen Hanson 116b7d3956bSstephhevent fault.io.pciex.device-interr@PCIEXFN, FITrate=PCIEX_DEV_FIT; 11700d0963fSdilpreet 118b7d3956bSstephhevent fault.io.pciex.device-interr-deg@PCIEXFN, FITrate=PCIEX_DEV_FIT, retire=0; 11900d0963fSdilpreet 120b7d3956bSstephhengine serd.io.pciex.flt-nf@PCIEXFN, N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME; 121b7d3956bSstephhevent fault.io.pciex.device-interr-unaf@PCIEXFN, FITrate=PCIEX_DEV_FIT, 122b7d3956bSstephh engine=serd.io.pciex.flt-nf@PCIEXFN; 12300d0963fSdilpreet 1248cffa125SStephen Hansonengine serd.io.device.nonfatal@PCIEXFN, N=CORRLINK_COUNT, T=CORRLINK_TIME; 125b7d3956bSstephhevent fault.io.pciex.device-interr-corr@PCIEXFN, FITrate=PCIEX_DEV_FIT, 1268cffa125SStephen Hanson engine=serd.io.device.nonfatal@PCIEXFN; 1276e1fa242SStephen Hansonengine serd.io.device.nonfatal@PCIEXFN/PCIEXFN, 1286e1fa242SStephen Hanson N=CORRLINK_COUNT, T=CORRLINK_TIME; 1296e1fa242SStephen Hansonevent fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN, FITrate=PCIEX_DEV_FIT, 1306e1fa242SStephen Hanson engine=serd.io.device.nonfatal@PCIEXFN/PCIEXFN; 1316e1fa242SStephen Hansonengine serd.io.device.nonfatal@pciexrc/PCIEXFN, 1326e1fa242SStephen Hanson N=CORRLINK_COUNT, T=CORRLINK_TIME; 1336e1fa242SStephen Hansonevent fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN, FITrate=PCIEX_DEV_FIT, 1346e1fa242SStephen Hanson engine=serd.io.device.nonfatal@pciexrc/PCIEXFN; 13500d0963fSdilpreet 136b7d3956bSstephhevent fault.io.pciex.device-interr@pciexrc, FITrate=PCIEX_RC_FIT; 13700d0963fSdilpreet 138b7d3956bSstephhevent fault.io.pciex.device-interr-deg@pciexrc, FITrate=PCIEX_RC_FIT, retire=0; 13900d0963fSdilpreet 140b7d3956bSstephhengine serd.io.pciex.flt-nf@pciexrc, N=NONFATAL_DPE_COUNT, T=NONFATAL_DPE_TIME; 141b7d3956bSstephhevent fault.io.pciex.device-interr-unaf@pciexrc, FITrate=PCIEX_RC_FIT, 142b7d3956bSstephh engine=serd.io.pciex.flt-nf@pciexrc; 14300d0963fSdilpreet 1448cffa125SStephen Hansonengine serd.io.device.nonfatal@pciexrc, N=CORRLINK_COUNT, T=CORRLINK_TIME; 145b7d3956bSstephhevent fault.io.pciex.device-interr-corr@pciexrc, FITrate=PCIEX_RC_FIT, 1468cffa125SStephen Hanson engine=serd.io.device.nonfatal@pciexrc; 14700d0963fSdilpreet 148b7d3956bSstephhevent fault.io.pciex.device-invreq@PCIEXFN, FITrate=PCIEX_DEV_INV_FIT; 14900d0963fSdilpreet 150b7d3956bSstephhevent fault.io.pciex.device-invreq@pciexrc, FITrate=PCIEX_RC_FIT; 15100d0963fSdilpreet 152b7d3956bSstephhevent fault.io.pciex.device-noresp@PCIEXFN, FITrate=PCIEX_DEV_NR_FIT; 15300d0963fSdilpreet 154b7d3956bSstephhevent fault.io.pciex.device-noresp@pciexrc, FITrate=PCIEX_RC_NR_FIT; 15500d0963fSdilpreet 156b7d3956bSstephhevent fault.io.pciex.bus-noresp@PCIEXFN, FITrate=PCIEX_BUS_NR_FIT; 15700d0963fSdilpreet 158b7d3956bSstephhevent fault.io.pciex.bus-linkerr@PCIEXFN, FITrate=PCIEX_BUS_FIT; 15927134bdaSstephh 1606e1fa242SStephen Hansonengine serd.io.pciex.corrlink-bus@pciexrc/PCIEXFN, 1616e1fa242SStephen Hanson N=CORRLINK_COUNT, T=CORRLINK_TIME; 1626e1fa242SStephen Hansonevent fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN, FITrate=PCIEX_BUS_FIT, 1636e1fa242SStephen Hanson engine=serd.io.pciex.corrlink-bus@pciexrc/PCIEXFN; 1646e1fa242SStephen Hansonengine serd.io.pciex.corrlink-bus@PCIEXFN/PCIEXFN, 1656e1fa242SStephen Hanson N=CORRLINK_COUNT, T=CORRLINK_TIME; 1666e1fa242SStephen Hansonevent fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN, FITrate=PCIEX_BUS_FIT, 1676e1fa242SStephen Hanson engine=serd.io.pciex.corrlink-bus@PCIEXFN/PCIEXFN; 16827134bdaSstephh 16900d0963fSdilpreet/* 17000d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17100d0963fSdilpreet * Handling of leaf driver detected internal errors. Use serd engine if 17200d0963fSdilpreet * no service impact - otherwise fail immediately 17300d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17400d0963fSdilpreet */ 175b7d3956bSstephhevent ereport.io.device.inval_state@PCIEXFN{within(5s)}; 176b7d3956bSstephhevent ereport.io.device.no_response@PCIEXFN{within(5s)}; 177b7d3956bSstephhevent ereport.io.device.stall@PCIEXFN{within(5s)}; 178b7d3956bSstephhevent ereport.io.device.badint_limit@PCIEXFN{within(5s)}; 179b7d3956bSstephhevent ereport.io.device.intern_corr@PCIEXFN{within(5s)}; 180b7d3956bSstephhevent ereport.io.device.intern_uncorr@PCIEXFN{within(5s)}; 181b7d3956bSstephhevent ereport.io.service.lost@PCIEXFN{within(5s)}; 182b7d3956bSstephhevent ereport.io.service.degraded@PCIEXFN{within(5s)}; 183b7d3956bSstephhevent ereport.io.service.unaffected@PCIEXFN{within(5s)}; 184b7d3956bSstephhevent ereport.io.service.restored@PCIEXFN{within(30s)}; 185b7d3956bSstephhevent ereport.io.service.lost@PCIFN{within(5s)}; 186b7d3956bSstephhevent ereport.io.service.degraded@PCIFN{within(5s)}; 187b7d3956bSstephhevent ereport.io.service.unaffected@PCIFN{within(5s)}; 18800d0963fSdilpreet 189b7d3956bSstephhevent error.io.pciex.noimpact-d@PCIEXFN; 190b7d3956bSstephhevent error.io.pciex.degraded-d@PCIEXFN; 191b7d3956bSstephhevent error.io.pciex.lost-d@PCIEXFN; 192b7d3956bSstephhevent error.io.service.restored@PCIEXFN; 193b7d3956bSstephhevent error.io.service.restored@PCIFN; 194b7d3956bSstephhevent error.io.device.nf-device@PCIEXFN; 195b7d3956bSstephhevent error.io.device.deg-device@PCIEXFN; 196b7d3956bSstephhevent error.io.device.f-device@PCIEXFN; 19700d0963fSdilpreet 198b7d3956bSstephhprop error.io.device.f-device@PCIEXFN (1)-> 199b7d3956bSstephh ereport.io.device.inval_state@PCIEXFN, 200b7d3956bSstephh ereport.io.device.no_response@PCIEXFN, 201b7d3956bSstephh ereport.io.device.stall@PCIEXFN, 202b7d3956bSstephh ereport.io.device.badint_limit@PCIEXFN, 203b7d3956bSstephh ereport.io.device.intern_corr@PCIEXFN, 204b7d3956bSstephh ereport.io.device.intern_uncorr@PCIEXFN; 20500d0963fSdilpreet 2068cffa125SStephen Hansonprop error.io.device.f-device@PCIEXFN (0)-> 207b7d3956bSstephh error.io.pciex.lost-d@PCIEXFN; 20800d0963fSdilpreet 209b7d3956bSstephhprop error.io.device.deg-device@PCIEXFN (1)-> 210b7d3956bSstephh ereport.io.device.inval_state@PCIEXFN, 211b7d3956bSstephh ereport.io.device.no_response@PCIEXFN, 212b7d3956bSstephh ereport.io.device.stall@PCIEXFN, 213b7d3956bSstephh ereport.io.device.badint_limit@PCIEXFN, 214b7d3956bSstephh ereport.io.device.intern_corr@PCIEXFN, 215b7d3956bSstephh ereport.io.device.intern_uncorr@PCIEXFN; 21600d0963fSdilpreet 217b7d3956bSstephhprop error.io.device.deg-device@PCIEXFN (1)-> 218b7d3956bSstephh error.io.pciex.degraded-d@PCIEXFN; 21900d0963fSdilpreet 220b7d3956bSstephhprop error.io.device.nf-device@PCIEXFN (1)-> 221b7d3956bSstephh ereport.io.device.inval_state@PCIEXFN, 222b7d3956bSstephh ereport.io.device.no_response@PCIEXFN, 223b7d3956bSstephh ereport.io.device.stall@PCIEXFN, 224b7d3956bSstephh ereport.io.device.badint_limit@PCIEXFN, 225b7d3956bSstephh ereport.io.device.intern_corr@PCIEXFN, 226b7d3956bSstephh ereport.io.device.intern_uncorr@PCIEXFN; 22700d0963fSdilpreet 228b7d3956bSstephhprop error.io.device.nf-device@PCIEXFN (1)-> 229b7d3956bSstephh error.io.pciex.noimpact-d@PCIEXFN; 23000d0963fSdilpreet 23100d0963fSdilpreet/* 232b7d3956bSstephh * handling of service impact ereports. 23300d0963fSdilpreet */ 2348cffa125SStephen Hansonprop error.io.pciex.lost-d@PCIEXFN (1)-> 23526733bfeSStephen Hanson ereport.io.service.lost@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 23626733bfeSStephen Hanson ereport.io.service.lost@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }; 23700d0963fSdilpreet 2388cffa125SStephen Hansonprop error.io.pciex.lost-d@PCIEXFN (0)-> 23926733bfeSStephen Hanson ereport.io.service.unaffected@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 24026733bfeSStephen Hanson ereport.io.service.unaffected@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }, 24126733bfeSStephen Hanson ereport.io.service.degraded@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 24226733bfeSStephen Hanson ereport.io.service.degraded@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }; 2438cffa125SStephen Hanson 244b7d3956bSstephhprop error.io.pciex.degraded-d@PCIEXFN (1)-> 24526733bfeSStephen Hanson ereport.io.service.degraded@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 24626733bfeSStephen Hanson ereport.io.service.degraded@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }; 24700d0963fSdilpreet 2488cffa125SStephen Hansonprop error.io.pciex.degraded-d@PCIEXFN (0)-> 24926733bfeSStephen Hanson ereport.io.service.unaffected@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 25026733bfeSStephen Hanson ereport.io.service.unaffected@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }; 2518cffa125SStephen Hanson 252b7d3956bSstephhprop error.io.pciex.noimpact-d@PCIEXFN (1)-> 25326733bfeSStephen Hanson ereport.io.service.unaffected@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 25426733bfeSStephen Hanson ereport.io.service.unaffected@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }, 25526733bfeSStephen Hanson error.io.service.restored@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 25626733bfeSStephen Hanson error.io.service.restored@PCIFNHZ { is_under(PCIEXFN, PCIFNHZ) }; 25700d0963fSdilpreet 258b7d3956bSstephhprop error.io.service.restored@PCIEXFN (1)-> 259b7d3956bSstephh ereport.io.service.lost@PCIEXFN, 260b7d3956bSstephh ereport.io.service.degraded@PCIEXFN; 26100d0963fSdilpreet 262b7d3956bSstephhprop error.io.service.restored@PCIEXFN (1)-> 263b7d3956bSstephh ereport.io.service.restored@PCIEXFN; 26400d0963fSdilpreet 26500d0963fSdilpreet/* 26600d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 26700d0963fSdilpreet * A faulty PCI Express hostbridge (root complex) may cause: 26800d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 26900d0963fSdilpreet * - nr-d: the device not to respond to a valid upstream request 27000d0963fSdilpreet * - ca-d: the device to completer abort a valid upstream request 27100d0963fSdilpreet * - mtlp-d: a malformed tlp to be transmitted downstream 27200d0963fSdilpreet * - badreq-d: a bad downstream request - not CRC error (may cause 27300d0963fSdilpreet * completer to respond with ur or ca) 27400d0963fSdilpreet * - ecrcreq-d: TLP with end-to-end CRC error transmitted downstream 27500d0963fSdilpreet * - ecrccomp-d: TLP with end-to-end CRC error transmitted downstream 27600d0963fSdilpreet * - poisreq-d: poisoned request transmitted downstream 27700d0963fSdilpreet * - poiscomp-d: poisoned completion transmitted downstream 27800d0963fSdilpreet * - corrlink: correctable link or physical level error 27900d0963fSdilpreet * - fatlink: fatal link or physical level error 28000d0963fSdilpreet */ 281b7d3956bSstephhevent error.io.pciex.nr-d@pciexrc/PCIEXFN; 282b7d3956bSstephhevent error.io.pciex.ca-d@pciexrc/PCIEXFN; 283b7d3956bSstephhevent error.io.pciex.mtlp-d@pciexrc/PCIEXFN; 284b7d3956bSstephhevent error.io.pciex.fatlink@pciexrc/PCIEXFN; 285b7d3956bSstephhevent error.io.pciex.badreq-d@pciexrc/PCIEXFN; 286b7d3956bSstephhevent error.io.pciex.nf-poisecrc-d@pciexrc/PCIEXFN; 287b7d3956bSstephhevent error.io.pciex.f-poisecrc-d@pciexrc/PCIEXFN; 288b7d3956bSstephhevent error.io.pciex.deg-poisecrc-d@pciexrc/PCIEXFN; 2896e1fa242SStephen Hansonevent ereport.io.pciex.dl.btlp@pciexrc{within(5s)}; 2906e1fa242SStephen Hansonevent ereport.io.pciex.dl.bdllp@pciexrc{within(5s)}; 2916e1fa242SStephen Hansonevent ereport.io.pciex.dl.rto@pciexrc{within(5s)}; 2926e1fa242SStephen Hansonevent ereport.io.pciex.dl.rnr@pciexrc{within(5s)}; 2936e1fa242SStephen Hansonevent ereport.io.pciex.pl.re@pciexrc{within(5s)}; 2946e1fa242SStephen Hansonevent ereport.io.pciex.dl.btlp@pciexrc/PCIEXFN{within(5s)}; 2956e1fa242SStephen Hansonevent ereport.io.pciex.dl.bdllp@pciexrc/PCIEXFN{within(5s)}; 2966e1fa242SStephen Hansonevent ereport.io.pciex.dl.rto@pciexrc/PCIEXFN{within(5s)}; 2976e1fa242SStephen Hansonevent ereport.io.pciex.dl.rnr@pciexrc/PCIEXFN{within(5s)}; 2986e1fa242SStephen Hansonevent ereport.io.pciex.pl.re@pciexrc/PCIEXFN{within(5s)}; 29900d0963fSdilpreet 30000d0963fSdilpreetprop fault.io.pciex.device-noresp@pciexrc (1)-> 301b7d3956bSstephh error.io.pciex.nr-d@pciexrc/PCIEXFNHZ; 30200d0963fSdilpreet 303eae2e508Skrishnaeprop fault.io.pciex.device-invreq@pciexrc (1)-> 304b7d3956bSstephh error.io.pciex.badreq-d@pciexrc/PCIEXFNHZ; 305b7d3956bSstephh 3066e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc { 3076e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 3086e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 3096e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc, 3106e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc/PCIEXFNHZ; 3116e1fa242SStephen Hanson 3126e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc { 3136e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 3146e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 3156e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc, 3166e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc/PCIEXFNHZ; 3176e1fa242SStephen Hanson 3186e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc { 3196e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 3206e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 3216e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc, 3226e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc/PCIEXFNHZ; 3236e1fa242SStephen Hanson 3246e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc { 3256e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 3266e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 3276e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc, 3286e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc/PCIEXFNHZ; 3296e1fa242SStephen Hanson 3306e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc { 3316e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 3326e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 3336e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc, 3346e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc/PCIEXFNHZ; 335b7d3956bSstephh 336b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@pciexrc (1)-> 337b7d3956bSstephh error.io.pciex.nf-poisecrc-d@pciexrc/PCIEXFNHZ; 338b7d3956bSstephh 339b7d3956bSstephhprop fault.io.pciex.device-interr-deg@pciexrc (1)-> 340b7d3956bSstephh error.io.pciex.deg-poisecrc-d@pciexrc/PCIEXFNHZ; 34100d0963fSdilpreet 34200d0963fSdilpreetprop fault.io.pciex.device-interr@pciexrc (1)-> 343b7d3956bSstephh error.io.pciex.f-poisecrc-d@pciexrc/PCIEXFNHZ, 344b7d3956bSstephh error.io.pciex.ca-d@pciexrc/PCIEXFNHZ, 345b7d3956bSstephh error.io.pciex.mtlp-d@pciexrc/PCIEXFNHZ, 346b7d3956bSstephh error.io.pciex.fatlink@pciexrc/PCIEXFNHZ; 34700d0963fSdilpreet 34800d0963fSdilpreet/* 34900d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 35000d0963fSdilpreet * A faulty PCI Express leaf device or upstream switch port may cause: 35100d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 352b7d3956bSstephh * - flt-nr-u: the device not to respond to a valid downstream request 353b7d3956bSstephh * - flt-ca-u: the device to completer abort a valid downstream request 354b7d3956bSstephh * - flt-badreq-u: a bad upstream request - not CRC error (may cause 35500d0963fSdilpreet * completer to respond with ur or ca) - leaf only 356b7d3956bSstephh * - flt-mtlp-u: a malformed tlp transmitted upstream - leaf only 357b7d3956bSstephh * - flt-ecrcreq-u: request with end-to-end CRC error transmitted upstream 358b7d3956bSstephh * - flt-ecrccomp-u: compl with end-to-end CRC error transmitted upstream 359b7d3956bSstephh * - flt-poisreq-u: poisoned request transmitted upstream 360b7d3956bSstephh * - flt-poiscomp-u: poisoned completion transmitted upstream 36100d0963fSdilpreet * - device: internal error reported by leaf device 36200d0963fSdilpreet * - corrlink: correctable link or physical level error 36300d0963fSdilpreet * - fatlink: fatal link or physical level error 36400d0963fSdilpreet */ 36500d0963fSdilpreet 366b7d3956bSstephhevent error.io.pciex.flt-nr-u@PCIEXFN; 367b7d3956bSstephhevent error.io.pciex.flt-ca-u@PCIEXFN; 368b7d3956bSstephhevent error.io.pciex.flt-mtlp-u@PCIEXFN; 369b7d3956bSstephhevent error.io.pciex.fatlink@PCIEXFN; 370b7d3956bSstephhevent error.io.pciex.flt-badreq-u@PCIEXFN; 371b7d3956bSstephhevent error.io.pciex.flt-nf-poisecrc-u@PCIEXFN; 372b7d3956bSstephhevent error.io.pciex.flt-f-poisecrc-u@PCIEXFN; 373b7d3956bSstephhevent error.io.pciex.flt-deg-poisecrc-u@PCIEXFN; 3746e1fa242SStephen Hansonevent ereport.io.pciex.dl.btlp@PCIEXFN{within(5s)}; 3756e1fa242SStephen Hansonevent ereport.io.pciex.dl.bdllp@PCIEXFN{within(5s)}; 3766e1fa242SStephen Hansonevent ereport.io.pciex.dl.rto@PCIEXFN{within(5s)}; 3776e1fa242SStephen Hansonevent ereport.io.pciex.dl.rnr@PCIEXFN{within(5s)}; 3786e1fa242SStephen Hansonevent ereport.io.pciex.pl.re@PCIEXFN{within(5s)}; 3796e1fa242SStephen Hansonevent ereport.io.pciex.dl.btlp@PCIEXFN/PCIEXFN{within(5s)}; 3806e1fa242SStephen Hansonevent ereport.io.pciex.dl.bdllp@PCIEXFN/PCIEXFN{within(5s)}; 3816e1fa242SStephen Hansonevent ereport.io.pciex.dl.rto@PCIEXFN/PCIEXFN{within(5s)}; 3826e1fa242SStephen Hansonevent ereport.io.pciex.dl.rnr@PCIEXFN/PCIEXFN{within(5s)}; 3836e1fa242SStephen Hansonevent ereport.io.pciex.pl.re@PCIEXFN/PCIEXFN{within(5s)}; 38405dd151bSStephen Hansonevent ereport.io.device.fw_corrupt@PCIEXFN{within(5s)}; 38505dd151bSStephen Hansonevent ereport.io.device.fw_mismatch@PCIEXFN{within(5s)}; 38600d0963fSdilpreet 387b7d3956bSstephhprop fault.io.pciex.device-noresp@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 388b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN; 38900d0963fSdilpreet 390b7d3956bSstephhprop fault.io.pciex.device-noresp@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 391b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN; 39200d0963fSdilpreet 393b7d3956bSstephhprop fault.io.pciex.device-invreq@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 394b7d3956bSstephh error.io.pciex.flt-badreq-u@PCIEXFN; 39500d0963fSdilpreet 3966e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN { 3976e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 3986e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 3996e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc, 4006e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc/PCIEXFNHZ; 4016e1fa242SStephen Hanson 4026e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN { 4036e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 4046e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 4056e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc, 4066e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc/PCIEXFNHZ; 4076e1fa242SStephen Hanson 4086e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN { 4096e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 4106e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 4116e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc, 4126e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc/PCIEXFNHZ; 4136e1fa242SStephen Hanson 4146e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN { 4156e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 4166e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 4176e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc, 4186e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc/PCIEXFNHZ; 4196e1fa242SStephen Hanson 4206e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@pciexrc/PCIEXFN { 4216e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 4226e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 4236e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc, 4246e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc/PCIEXFNHZ; 4256e1fa242SStephen Hanson 4266e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN { 4276e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 4286e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 4296e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 4306e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN, 4316e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN/PCIEXFNHZ; 4326e1fa242SStephen Hanson 4336e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN { 4346e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 4356e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 4366e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 4376e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN, 4386e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN/PCIEXFNHZ; 4396e1fa242SStephen Hanson 4406e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN { 4416e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 4426e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 4436e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 4446e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN, 4456e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN/PCIEXFNHZ; 4466e1fa242SStephen Hanson 4476e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN { 4486e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 4496e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 4506e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 4516e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN, 4526e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN/PCIEXFNHZ; 4536e1fa242SStephen Hanson 4546e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN/PCIEXFN { 4556e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 4566e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 4576e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 4586e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN, 4596e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN/PCIEXFNHZ; 46000d0963fSdilpreet 461b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 462b7d3956bSstephh error.io.pciex.flt-nf-poisecrc-u@PCIEXFN; 463b7d3956bSstephh 4648cffa125SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 465b7d3956bSstephh error.io.device.nf-device@PCIEXFN; 466b7d3956bSstephh 467b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 468b7d3956bSstephh error.io.pciex.flt-nf-poisecrc-u@PCIEXFN; 469b7d3956bSstephh 470b7d3956bSstephhprop fault.io.pciex.device-interr-deg@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 471b7d3956bSstephh error.io.pciex.flt-deg-poisecrc-u@PCIEXFN; 472b7d3956bSstephh 473b7d3956bSstephhprop fault.io.pciex.device-interr@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 474b7d3956bSstephh error.io.pciex.flt-f-poisecrc-u@PCIEXFN, 475b7d3956bSstephh error.io.pciex.flt-ca-u@PCIEXFN, 476b7d3956bSstephh error.io.pciex.fatlink@PCIEXFN; 477b7d3956bSstephh 478b7d3956bSstephhprop fault.io.pciex.device-interr-deg@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 479b7d3956bSstephh error.io.pciex.flt-deg-poisecrc-u@PCIEXFN, 480b7d3956bSstephh error.io.device.deg-device@PCIEXFN; 481b7d3956bSstephh 482b7d3956bSstephhprop fault.io.pciex.device-interr@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 483b7d3956bSstephh error.io.pciex.flt-f-poisecrc-u@PCIEXFN, 484b7d3956bSstephh error.io.device.f-device@PCIEXFN, 485b7d3956bSstephh error.io.pciex.flt-ca-u@PCIEXFN, 486b7d3956bSstephh error.io.pciex.flt-mtlp-u@PCIEXFN, 487b7d3956bSstephh error.io.pciex.fatlink@PCIEXFN; 48800d0963fSdilpreet 48905dd151bSStephen Hansonprop fault.io.pciex.fw_corrupt@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 49005dd151bSStephen Hanson ereport.io.device.fw_corrupt@PCIEXFN; 49105dd151bSStephen Hanson 49205dd151bSStephen Hansonprop fault.io.pciex.fw_corrupt@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 49305dd151bSStephen Hanson ereport.io.service.lost@PCIEXFN, 49405dd151bSStephen Hanson ereport.io.service.degraded@PCIEXFN; 49505dd151bSStephen Hanson 49605dd151bSStephen Hansonprop fault.io.pciex.fw_mismatch@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 49705dd151bSStephen Hanson ereport.io.device.fw_mismatch@PCIEXFN; 49805dd151bSStephen Hanson 49905dd151bSStephen Hansonprop fault.io.pciex.fw_mismatch@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 50005dd151bSStephen Hanson ereport.io.service.lost@PCIEXFN, 50105dd151bSStephen Hanson ereport.io.service.degraded@PCIEXFN; 50205dd151bSStephen Hanson 50300d0963fSdilpreet/* 50400d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 50500d0963fSdilpreet * A faulty PCI Express downstream switch port may cause 50600d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 50700d0963fSdilpreet * - nr-d: the device not to respond to an upstream request 50800d0963fSdilpreet * - ca-d: the device to completer abort an upstream request 50900d0963fSdilpreet * - ecrcreq-d: TLP with end-to-end CRC error transmitted upstream 51000d0963fSdilpreet * - ecrccomp-d: TLP with end-to-end CRC error transmitted upstream 51100d0963fSdilpreet * - poisreq-d: poisoned request transmitted upstream 51200d0963fSdilpreet * - poiscomp-d: poisoned completion transmitted upstream 51300d0963fSdilpreet * - corrlink: correctable link or physical level error 51400d0963fSdilpreet * - fatlink: fatal link or physical level error 51500d0963fSdilpreet */ 51600d0963fSdilpreet 517b7d3956bSstephhevent error.io.pciex.nr-d@PCIEXFN/PCIEXFN; 518b7d3956bSstephhevent error.io.pciex.ca-d@PCIEXFN/PCIEXFN; 519b7d3956bSstephhevent error.io.pciex.fatlink@PCIEXFN/PCIEXFN; 520b7d3956bSstephhevent error.io.pciex.nf-poisecrc-d@PCIEXFN/PCIEXFN; 521b7d3956bSstephhevent error.io.pciex.f-poisecrc-d@PCIEXFN/PCIEXFN; 522b7d3956bSstephhevent error.io.pciex.deg-poisecrc-d@PCIEXFN/PCIEXFN; 52300d0963fSdilpreet 524b7d3956bSstephhprop fault.io.pciex.device-noresp@PCIEXFN { IS_SD(PCIEXFN) } (1)-> 525b7d3956bSstephh error.io.pciex.nr-d@PCIEXFN/PCIEXFNHZ; 52600d0963fSdilpreet 5276e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_SD(PCIEXFN) && 5286e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 5296e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 5306e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN, 5316e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN/PCIEXFNHZ; 5326e1fa242SStephen Hanson 5336e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_SD(PCIEXFN) && 5346e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 5356e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 5366e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN, 5376e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN/PCIEXFNHZ; 5386e1fa242SStephen Hanson 5396e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_SD(PCIEXFN) && 5406e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 5416e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 5426e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN, 5436e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN/PCIEXFNHZ; 5446e1fa242SStephen Hanson 5456e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_SD(PCIEXFN) && 5466e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 5476e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 5486e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN, 5496e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN/PCIEXFNHZ; 5506e1fa242SStephen Hanson 5516e1fa242SStephen Hansonprop fault.io.pciex.device-interr-corr@PCIEXFN { IS_SD(PCIEXFN) && 5526e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 5536e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 5546e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN, 5556e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN/PCIEXFNHZ; 556b7d3956bSstephh 557b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@PCIEXFN { IS_SD(PCIEXFN) } (1)-> 558b7d3956bSstephh error.io.pciex.nf-poisecrc-d@PCIEXFN/PCIEXFNHZ; 559b7d3956bSstephh 560b7d3956bSstephhprop fault.io.pciex.device-interr-deg@PCIEXFN { IS_SD(PCIEXFN) } (1)-> 561b7d3956bSstephh error.io.pciex.deg-poisecrc-d@PCIEXFN/PCIEXFNHZ; 562b7d3956bSstephh 563b7d3956bSstephhprop fault.io.pciex.device-interr@PCIEXFN { IS_SD(PCIEXFN) } (1)-> 564b7d3956bSstephh error.io.pciex.ca-d@PCIEXFN/PCIEXFNHZ, 565b7d3956bSstephh error.io.pciex.f-poisecrc-d@PCIEXFN/PCIEXFNHZ, 566b7d3956bSstephh error.io.pciex.fatlink@PCIEXFN/PCIEXFNHZ; 56700d0963fSdilpreet 56800d0963fSdilpreet/* 56900d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 57000d0963fSdilpreet * A faulty PCIEX bus may cause: 57100d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 572b7d3956bSstephh * - flt-nr-u: a device to not respond because the link is down 57300d0963fSdilpreet * - nr-d: a device to not respond because the link is down 57400d0963fSdilpreet * - corrlink: correctable link or physical level error 57500d0963fSdilpreet * - fatlink: fatal link or physical level error 57600d0963fSdilpreet */ 57700d0963fSdilpreet 578b7d3956bSstephhevent error.io.pciex.nr-d@PCIEXFN; 57900d0963fSdilpreet 580b7d3956bSstephhprop fault.io.pciex.bus-noresp@PCIEXFN { !IS_SD(PCIEXFN) } (0)-> 581b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN, 582b7d3956bSstephh error.io.pciex.nr-d@PCIEXFN; 58300d0963fSdilpreet 5846e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN { 5856e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 5866e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 5876e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 5886e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN, 5896e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@PCIEXFN/PCIEXFNHZ; 5906e1fa242SStephen Hanson 5916e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN { 5926e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 5936e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 5946e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 5956e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN, 5966e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@PCIEXFN/PCIEXFNHZ; 5976e1fa242SStephen Hanson 5986e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN { 5996e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 6006e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 6016e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 6026e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN, 6036e1fa242SStephen Hanson ereport.io.pciex.dl.rto@PCIEXFN/PCIEXFNHZ; 6046e1fa242SStephen Hanson 6056e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN { 6066e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 6076e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 6086e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 6096e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN, 6106e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@PCIEXFN/PCIEXFNHZ; 6116e1fa242SStephen Hanson 6126e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@PCIEXFN/PCIEXFN { 6136e1fa242SStephen Hanson !IS_SD(PCIEXFN/PCIEXFN) && 6146e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 6156e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 6166e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN, 6176e1fa242SStephen Hanson ereport.io.pciex.pl.re@PCIEXFN/PCIEXFNHZ; 6186e1fa242SStephen Hanson 6196e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN { 6206e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_btlp") && 6216e1fa242SStephen Hanson setserdn(BTLP_COUNT) && setserdt(BTLP_TIME) } (0)-> 6226e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc, 6236e1fa242SStephen Hanson ereport.io.pciex.dl.btlp@pciexrc/PCIEXFNHZ; 6246e1fa242SStephen Hanson 6256e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN { 6266e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_bdllp") && 6276e1fa242SStephen Hanson setserdn(BDLLP_COUNT) && setserdt(BDLLP_TIME) } (0)-> 6286e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc, 6296e1fa242SStephen Hanson ereport.io.pciex.dl.bdllp@pciexrc/PCIEXFNHZ; 6306e1fa242SStephen Hanson 6316e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN { 6326e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rto") && 6336e1fa242SStephen Hanson setserdn(RTO_COUNT) && setserdt(RTO_TIME) } (0)-> 6346e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc, 6356e1fa242SStephen Hanson ereport.io.pciex.dl.rto@pciexrc/PCIEXFNHZ; 6366e1fa242SStephen Hanson 6376e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN { 6386e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_rnr") && 6396e1fa242SStephen Hanson setserdn(RNR_COUNT) && setserdt(RNR_TIME) } (0)-> 6406e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc, 6416e1fa242SStephen Hanson ereport.io.pciex.dl.rnr@pciexrc/PCIEXFNHZ; 6426e1fa242SStephen Hanson 6436e1fa242SStephen Hansonprop fault.io.pciex.bus-linkerr-corr@pciexrc/PCIEXFN { 6446e1fa242SStephen Hanson payloadprop_defined("detector") && setserdsuffix("_re") && 6456e1fa242SStephen Hanson setserdn(RE_COUNT) && setserdt(RE_TIME) } (0)-> 6466e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc, 6476e1fa242SStephen Hanson ereport.io.pciex.pl.re@pciexrc/PCIEXFNHZ; 648b7d3956bSstephh 649b7d3956bSstephhprop fault.io.pciex.bus-linkerr@PCIEXFN { !IS_SD(PCIEXFN) } (0)-> 650b7d3956bSstephh error.io.pciex.fatlink@PCIEXFN; 65100d0963fSdilpreet 65200d0963fSdilpreet/* 65300d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 65400d0963fSdilpreet * A faulty pciex-pci bridge may cause 65500d0963fSdilpreet * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 65600d0963fSdilpreet * The following errors to propagate onto the PCI Express fabric 657b7d3956bSstephh * - flt-nr-u: the device not to respond to a valid downstream request 658b7d3956bSstephh * - flt-ca-u: the device to completer abort a valid downstream request 659b7d3956bSstephh * - flt-ecrcreq-u: request with end-to-end CRC error transmitted upstream 660b7d3956bSstephh * - flt-ecrccomp-u: compl with end-to-end CRC error transmitted upstream 661b7d3956bSstephh * - flt-poisreq-u: poisoned request transmitted upstream 662b7d3956bSstephh * - flt-poiscomp-u: poisoned completion transmitted upstream 66300d0963fSdilpreet * - corrlink: correctable link or physical level error upstream 66400d0963fSdilpreet * - fatlink: fatal link or physical level error upstream 66500d0963fSdilpreet * - sec-interr: internal error on pci express to pci bridge 66600d0963fSdilpreet * 66700d0963fSdilpreet * And the following errors to propagate onto the secondary pci or pci/x bus 66800d0963fSdilpreet * (these will be handled by code in the pci.esc file). 66900d0963fSdilpreet * - nr-pw-d: the device not to respond to a valid upstream request 67000d0963fSdilpreet * - nr-drw-d: the device not to respond to a valid upstream request 67100d0963fSdilpreet * - retry-to-d: failure to retry an downstream delayed request 67200d0963fSdilpreet * - ta-pw-d: the device responds with a ta to a valid upstream 67300d0963fSdilpreet * request 67400d0963fSdilpreet * - ta-drw-d: the device responds with a ta to a valid upstream 67500d0963fSdilpreet * request 67600d0963fSdilpreet * - ape-d: address/parity to get corrupted during downstream transmission. 67700d0963fSdilpreet * - dpe-d: data/parity to get corrupted during downstream transmission. 67800d0963fSdilpreet * - scpe-d: split completion to get corrupted during downstream transmission 67900d0963fSdilpreet */ 68000d0963fSdilpreet 681b7d3956bSstephhevent error.io.pci.ape-d@PCIEXFN/PCIFN; 682b7d3956bSstephhevent error.io.pci.f-dpe-d@PCIEXFN/PCIFN; 683b7d3956bSstephhevent error.io.pci.deg-dpe-d@PCIEXFN/PCIFN; 684b7d3956bSstephhevent error.io.pci.nf-dpe-d@PCIEXFN/PCIFN; 685b7d3956bSstephhevent error.io.pci.retry-to-d@PCIEXFN/PCIFN; 686b7d3956bSstephhevent error.io.pci.nr-pw-d@PCIEXFN/PCIFN; 687b7d3956bSstephhevent error.io.pci.nr-drw-d@PCIEXFN/PCIFN; 688b7d3956bSstephhevent error.io.pci.ta-pw-d@PCIEXFN/PCIFN; 689b7d3956bSstephhevent error.io.pci.ta-drw-d@PCIEXFN/PCIFN; 690b7d3956bSstephhevent error.io.pcix.scpe-d@PCIEXFN/PCIFN; 691b7d3956bSstephhevent error.io.pciex.sec-interr@PCIEXFN; 692b7d3956bSstephhevent ereport.io.pci.sec-sta@PCIEXFN{within(5s)}; 69300d0963fSdilpreet 694b7d3956bSstephhprop fault.io.pciex.device-noresp@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 695b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN, 696b7d3956bSstephh error.io.pci.retry-to-d@PCIEXFN/PCIFNHZ, 697b7d3956bSstephh error.io.pci.nr-pw-d@PCIEXFN/PCIFNHZ, 698b7d3956bSstephh error.io.pci.nr-drw-d@PCIEXFN/PCIFNHZ; 69900d0963fSdilpreet 700b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 701b7d3956bSstephh error.io.pciex.flt-nf-poisecrc-u@PCIEXFN, 702b7d3956bSstephh error.io.pci.nf-dpe-d@PCIEXFN/PCIFNHZ; 703b7d3956bSstephh 704b7d3956bSstephhprop fault.io.pciex.device-interr-deg@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 705b7d3956bSstephh error.io.pciex.flt-deg-poisecrc-u@PCIEXFN, 706b7d3956bSstephh error.io.pci.deg-dpe-d@PCIEXFN/PCIFNHZ; 707b7d3956bSstephh 708b7d3956bSstephhprop fault.io.pciex.device-interr@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 709b7d3956bSstephh error.io.pciex.flt-f-poisecrc-u@PCIEXFN, 710b7d3956bSstephh error.io.pciex.flt-ca-u@PCIEXFN, 711b7d3956bSstephh error.io.pciex.flt-mtlp-u@PCIEXFN, 712b7d3956bSstephh error.io.pciex.sec-interr@PCIEXFN, 713b7d3956bSstephh error.io.pciex.fatlink@PCIEXFN, 714b7d3956bSstephh error.io.pci.ta-pw-d@PCIEXFN/PCIFNHZ, 715b7d3956bSstephh error.io.pci.ta-drw-d@PCIEXFN/PCIFNHZ, 716b7d3956bSstephh error.io.pci.ape-d@PCIEXFN/PCIFNHZ, 717b7d3956bSstephh error.io.pcix.scpe-d@PCIEXFN/PCIFNHZ, 718b7d3956bSstephh error.io.pci.f-dpe-d@PCIEXFN/PCIFNHZ; 719b7d3956bSstephh 720b7d3956bSstephhprop fault.io.pciex.device-interr-unaf@PCIEXFN { IS_BG(PCIEXFN) } (0)-> 721b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 722b7d3956bSstephh 723b7d3956bSstephhprop fault.io.pciex.device-interr@PCIEXFN { IS_BG(PCIEXFN) } (0)-> 724b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 725b7d3956bSstephh 726b7d3956bSstephh/* 727b7d3956bSstephh * the following rules for ptlp and ecrc faults are split into fatal and 728b7d3956bSstephh * nonfatal, depending on the service impact reported by the leaf driver 729b7d3956bSstephh */ 730b7d3956bSstephhevent error.io.pciex.nf-poisecrc-d@PCIEXFN; 731b7d3956bSstephhevent error.io.pciex.deg-poisecrc-d@PCIEXFN; 732b7d3956bSstephhevent error.io.pciex.f-poisecrc-d@PCIEXFN; 733b7d3956bSstephhevent error.io.pciex.ecrcreq-d@PCIEXFN; 734b7d3956bSstephhevent error.io.pciex.ecrccomp-d@PCIEXFN; 735b7d3956bSstephhevent error.io.pciex.poisreq-d@PCIEXFN; 736b7d3956bSstephhevent error.io.pciex.poiscomp-d@PCIEXFN; 737b7d3956bSstephhevent error.io.pciex.flt-poisreq-u@PCIEXFN; 738b7d3956bSstephhevent error.io.pciex.flt-poiscomp-u@PCIEXFN; 739b7d3956bSstephhevent error.io.pciex.flt-ecrcreq-u@PCIEXFN; 740b7d3956bSstephhevent error.io.pciex.flt-ecrccomp-u@PCIEXFN; 741b7d3956bSstephh 742b7d3956bSstephhprop error.io.pciex.nf-poisecrc-d@PCIEXFN (1)-> 743b7d3956bSstephh error.io.pciex.ecrcreq-d@PCIEXFN, 744b7d3956bSstephh error.io.pciex.ecrccomp-d@PCIEXFN, 745b7d3956bSstephh error.io.pciex.poisreq-d@PCIEXFN, 746b7d3956bSstephh error.io.pciex.poiscomp-d@PCIEXFN; 747b7d3956bSstephh 748b7d3956bSstephhprop error.io.pciex.nf-poisecrc-d@PCIEXFN (1)-> 749b7d3956bSstephh error.io.pciex.noimpact-d@PCIEXFN; 750b7d3956bSstephh 751b7d3956bSstephhprop error.io.pciex.f-poisecrc-d@PCIEXFN (1)-> 752b7d3956bSstephh error.io.pciex.ecrcreq-d@PCIEXFN, 753b7d3956bSstephh error.io.pciex.ecrccomp-d@PCIEXFN, 754b7d3956bSstephh error.io.pciex.poisreq-d@PCIEXFN, 755b7d3956bSstephh error.io.pciex.poiscomp-d@PCIEXFN; 756b7d3956bSstephh 7578cffa125SStephen Hansonprop error.io.pciex.f-poisecrc-d@PCIEXFN (0)-> 758b7d3956bSstephh error.io.pciex.lost-d@PCIEXFN; 759b7d3956bSstephh 760b7d3956bSstephhprop error.io.pciex.deg-poisecrc-d@PCIEXFN (1)-> 761b7d3956bSstephh error.io.pciex.ecrcreq-d@PCIEXFN, 762b7d3956bSstephh error.io.pciex.ecrccomp-d@PCIEXFN, 763b7d3956bSstephh error.io.pciex.poisreq-d@PCIEXFN, 764b7d3956bSstephh error.io.pciex.poiscomp-d@PCIEXFN; 765b7d3956bSstephh 766b7d3956bSstephhprop error.io.pciex.deg-poisecrc-d@PCIEXFN (1)-> 767b7d3956bSstephh error.io.pciex.degraded-d@PCIEXFN; 768b7d3956bSstephh 769b7d3956bSstephhprop error.io.pciex.flt-nf-poisecrc-u@PCIEXFN (1)-> 770b7d3956bSstephh error.io.pciex.flt-ecrcreq-u@PCIEXFN, 771b7d3956bSstephh error.io.pciex.flt-ecrccomp-u@PCIEXFN, 772b7d3956bSstephh error.io.pciex.flt-poisreq-u@PCIEXFN, 773b7d3956bSstephh error.io.pciex.flt-poiscomp-u@PCIEXFN; 774b7d3956bSstephh 775b7d3956bSstephhprop error.io.pciex.flt-nf-poisecrc-u@PCIEXFN (1)-> 776b7d3956bSstephh error.io.pciex.noimpact-d@PCIEXFN; 777b7d3956bSstephh 778b7d3956bSstephhprop error.io.pciex.flt-deg-poisecrc-u@PCIEXFN (1)-> 779b7d3956bSstephh error.io.pciex.flt-ecrcreq-u@PCIEXFN, 780b7d3956bSstephh error.io.pciex.flt-ecrccomp-u@PCIEXFN, 781b7d3956bSstephh error.io.pciex.flt-poisreq-u@PCIEXFN, 782b7d3956bSstephh error.io.pciex.flt-poiscomp-u@PCIEXFN; 783b7d3956bSstephh 784b7d3956bSstephhprop error.io.pciex.flt-deg-poisecrc-u@PCIEXFN (1)-> 785b7d3956bSstephh error.io.pciex.degraded-d@PCIEXFN; 786b7d3956bSstephh 787b7d3956bSstephhprop error.io.pciex.flt-f-poisecrc-u@PCIEXFN (1)-> 788b7d3956bSstephh error.io.pciex.flt-ecrcreq-u@PCIEXFN, 789b7d3956bSstephh error.io.pciex.flt-ecrccomp-u@PCIEXFN, 790b7d3956bSstephh error.io.pciex.flt-poisreq-u@PCIEXFN, 791b7d3956bSstephh error.io.pciex.flt-poiscomp-u@PCIEXFN; 792b7d3956bSstephh 7938cffa125SStephen Hansonprop error.io.pciex.flt-f-poisecrc-u@PCIEXFN (0)-> 794b7d3956bSstephh error.io.pciex.lost-d@PCIEXFN; 79500d0963fSdilpreet 79600d0963fSdilpreet/* 79700d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 79800d0963fSdilpreet * declarations 79900d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 80000d0963fSdilpreet */ 801b7d3956bSstephhevent error.io.pciex.fatal@PCIEXFN; 802b7d3956bSstephhevent error.io.pciex.nonfatal@PCIEXFN; 80326733bfeSStephen Hansonevent error.io.pciex.nr-fwd-d@PCIEXFN; 80426733bfeSStephen Hansonevent error.io.pciex.mtlp-fwd-d@PCIEXFN; 805b7d3956bSstephhevent error.io.pciex.flt-ur-u@PCIEXFN; 806b7d3956bSstephhevent error.io.pciex.mtlp-d@PCIEXFN; 807b7d3956bSstephhevent error.io.pciex.ca-d@PCIEXFN; 808b7d3956bSstephhevent error.io.pciex.ca-fwd-d@PCIEXFN; 809b7d3956bSstephhevent error.io.pciex.poisreq-fwd-d@PCIEXFN; 810b7d3956bSstephhevent error.io.pciex.poisreq-fwd-d@pciexrc/PCIEXFN; 811b7d3956bSstephhevent error.io.pciex.poisreq-fwd-d@PCIEXFN/PCIEXFN; 812b7d3956bSstephhevent error.io.pciex.poiscomp-fwd-d@PCIEXFN; 813b7d3956bSstephhevent error.io.pciex.poiscomp-fwd-d@PCIEXFN/PCIEXFN; 814b7d3956bSstephhevent error.io.pciex.ecrcreq-fwd-d@PCIEXFN; 815b7d3956bSstephhevent error.io.pciex.ecrccomp-fwd-d@PCIEXFN; 816b7d3956bSstephhevent error.io.pciex.source-ecrcreq-u@PCIEXFN; 817b7d3956bSstephhevent error.io.pciex.source-ecrccomp-u@PCIEXFN; 818b7d3956bSstephhevent error.io.pciex.source-poiscomp-u@PCIEXFN; 819b7d3956bSstephhevent error.io.pciex.source-poisreq-u@PCIEXFN; 820b7d3956bSstephhevent error.io.pciex.badreq-d@PCIEXFN; 821b7d3956bSstephhevent error.io.pci.badreq-pw-d@PCIEXFN/PCIFN; 822b7d3956bSstephhevent error.io.pci.badreq-drw-d@PCIEXFN/PCIFN; 823b7d3956bSstephhevent error.io.pci.target-ma-d@PCIEXFN; 824b7d3956bSstephhevent error.io.pci.target-rta-d@PCIEXFN; 825b7d3956bSstephhevent error.io.pci.dpdata-pw-d@PCIEXFN/PCIFN; 826b7d3956bSstephhevent error.io.pci.dpdata-dw-d@PCIEXFN/PCIFN; 827b7d3956bSstephhevent error.io.pci.dpdata-dr-d@PCIEXFN/PCIFN; 828b7d3956bSstephhevent error.io.pciex.ca-u@PCIEXFN; 829b7d3956bSstephhevent error.io.pciex.ca-u@PCIEXFN/PCIEXFN; 830b7d3956bSstephhevent error.io.pciex.ca-u@pciexrc/PCIEXFN; 831b7d3956bSstephhevent error.io.pciex.ur-u@PCIEXFN; 832b7d3956bSstephhevent error.io.pciex.ur-u@PCIEXFN/PCIEXFN; 833b7d3956bSstephhevent error.io.pciex.ur-u@pciexrc/PCIEXFN; 834b7d3956bSstephhevent error.io.pciex.nr-u@PCIEXFN; 835b7d3956bSstephhevent error.io.pciex.nr-u@PCIEXFN/PCIEXFN; 836b7d3956bSstephhevent error.io.pciex.nr-u@pciexrc/PCIEXFN; 837b7d3956bSstephhevent error.io.pciex.mtlp-u@PCIEXFN; 838b7d3956bSstephhevent error.io.pciex.mtlp-u@PCIEXFN/PCIEXFN; 839b7d3956bSstephhevent error.io.pciex.mtlp-u@pciexrc/PCIEXFN; 840b7d3956bSstephhevent error.io.pciex.badreq-u@PCIEXFN; 841b7d3956bSstephhevent error.io.pciex.badreq-u@PCIEXFN/PCIEXFN; 842b7d3956bSstephhevent error.io.pciex.badreq-u@pciexrc/PCIEXFN; 843b7d3956bSstephhevent error.io.pciex.poisreq-u@PCIEXFN; 844b7d3956bSstephhevent error.io.pciex.poisreq-u@PCIEXFN/PCIEXFN; 845b7d3956bSstephhevent error.io.pciex.poisreq-u@pciexrc/PCIEXFN; 846b7d3956bSstephhevent error.io.pciex.poiscomp-u@PCIEXFN; 847b7d3956bSstephhevent error.io.pciex.poiscomp-u@PCIEXFN/PCIEXFN; 848b7d3956bSstephhevent error.io.pciex.poiscomp-u@pciexrc/PCIEXFN; 849b7d3956bSstephhevent error.io.pciex.ecrcreq-u@PCIEXFN; 850b7d3956bSstephhevent error.io.pciex.ecrcreq-u@PCIEXFN/PCIEXFN; 851b7d3956bSstephhevent error.io.pciex.ecrccomp-u@PCIEXFN; 852b7d3956bSstephhevent error.io.pciex.ecrccomp-u@PCIEXFN/PCIEXFN; 85300d0963fSdilpreet 854b7d3956bSstephhevent ereport.io.pci.ma@PCIEXFN{within(5s)}; 855b7d3956bSstephhevent ereport.io.pci.mdpe@PCIEXFN{within(5s)}; 856b7d3956bSstephhevent ereport.io.pci.dpe@PCIEXFN{within(5s)}; 857b7d3956bSstephhevent ereport.io.pci.rta@PCIEXFN{within(5s)}; 858b7d3956bSstephhevent ereport.io.pci.sta@PCIEXFN{within(5s)}; 859b7d3956bSstephhevent ereport.io.pciex.dl.dllp@PCIEXFN{within(5s)}; 860b7d3956bSstephhevent ereport.io.pciex.pl.te@PCIEXFN{within(5s)}; 861*b0daa853SStephen Hansonevent ereport.io.pciex.pl.sd@PCIEXFN{within(5s)}; 862b7d3956bSstephhevent ereport.io.pciex.tl.fcp@PCIEXFN{within(5s)}; 863b7d3956bSstephhevent ereport.io.pciex.tl.rof@PCIEXFN{within(5s)}; 864b7d3956bSstephhevent ereport.io.pciex.tl.mtlp@PCIEXFN{within(5s)}; 865b7d3956bSstephhevent ereport.io.pciex.tl.ur@PCIEXFN{within(5s)}; 866b7d3956bSstephhevent ereport.io.pciex.tl.ca@PCIEXFN{within(5s)}; 867b7d3956bSstephhevent ereport.io.pciex.tl.ptlp@PCIEXFN{within(5s)}; 868b7d3956bSstephhevent ereport.io.pciex.tl.ecrc@PCIEXFN{within(5s)}; 869b7d3956bSstephhevent ereport.io.pciex.tl.uc@PCIEXFN{within(5s)}; 870b7d3956bSstephhevent ereport.io.pciex.tl.cto@PCIEXFN{within(5s)}; 87100d0963fSdilpreetevent ereport.io.pciex.dl.dllp@pciexrc{within(5s)}; 87200d0963fSdilpreetevent ereport.io.pciex.pl.te@pciexrc{within(5s)}; 873*b0daa853SStephen Hansonevent ereport.io.pciex.pl.sd@pciexrc{within(5s)}; 87400d0963fSdilpreetevent ereport.io.pciex.tl.fcp@pciexrc{within(5s)}; 87500d0963fSdilpreetevent ereport.io.pciex.tl.rof@pciexrc{within(5s)}; 87600d0963fSdilpreetevent ereport.io.pciex.tl.mtlp@pciexrc{within(5s)}; 87700d0963fSdilpreetevent ereport.io.pciex.tl.ur@pciexrc{within(5s)}; 87800d0963fSdilpreetevent ereport.io.pciex.tl.ca@pciexrc{within(5s)}; 87900d0963fSdilpreetevent ereport.io.pciex.tl.ptlp@pciexrc{within(5s)}; 88000d0963fSdilpreetevent ereport.io.pciex.tl.ecrc@pciexrc{within(5s)}; 88100d0963fSdilpreetevent ereport.io.pciex.tl.cto@pciexrc{within(5s)}; 88200d0963fSdilpreetevent ereport.io.pci.sec-ma@pciexrc{within(5s)}; 88300d0963fSdilpreetevent ereport.io.pci.sec-mdpe@pciexrc{within(5s)}; 88400d0963fSdilpreetevent ereport.io.pci.sec-dpe@pciexrc{within(5s)}; 88500d0963fSdilpreetevent ereport.io.pci.sec-rta@pciexrc{within(5s)}; 88600d0963fSdilpreetevent ereport.io.pci.sec-sta@pciexrc{within(5s)}; 887b7d3956bSstephhevent ereport.io.pci.sec-mdpe@PCIEXFN{within(5s)}; 888b7d3956bSstephhevent ereport.io.pci.sec-dpe@PCIEXFN{within(5s)}; 889b7d3956bSstephhevent ereport.io.pci.sec-rserr@PCIEXFN{within(5s)}; 890b7d3956bSstephhevent ereport.io.pci.sserr@PCIEXFN{within(5s)}; 89100d0963fSdilpreetevent ereport.io.pci.sec-rserr@pciexrc{within(5s)}; 89200d0963fSdilpreetevent ereport.io.pciex.rc.fe-msg@pciexrc{within(5s)}; 89300d0963fSdilpreetevent ereport.io.pciex.rc.nfe-msg@pciexrc{within(5s)}; 894b7d3956bSstephhevent ereport.io.pciex.rc.mue-msg@pciexrc{within(5s)}; 895b7d3956bSstephhevent ereport.io.pciex.bdg.sec-interr@PCIEXFN{within(5s)}; 896b7d3956bSstephhevent ereport.io.pciex.bdg.sec-ude@PCIEXFN{within(5s)}; 897b7d3956bSstephhevent ereport.io.pci.target-mdpe@PCIEXFN{within(5s)}; 898b7d3956bSstephhevent ereport.io.pci.target-mdpe@PCIFN{within(5s)}; 89900d0963fSdilpreet 90000d0963fSdilpreet/* 90100d0963fSdilpreet * handling of fatal and nonfatal error messages propagated up to root complex 90200d0963fSdilpreet * 90300d0963fSdilpreet * Use these for errors reported by root-complex on behalf of another device. 90400d0963fSdilpreet * Can use source-id payload to identify where the message came from. 90500d0963fSdilpreet */ 906b7d3956bSstephhprop error.io.pciex.fatal@PCIEXFN1 (1)-> 907b7d3956bSstephh ereport.io.pciex.rc.mue-msg@pciexrc { is_under(pciexrc, PCIEXFN1) }, 908b7d3956bSstephh ereport.io.pciex.rc.fe-msg@pciexrc { is_under(pciexrc, PCIEXFN1) && 909b7d3956bSstephh SOURCE_ID_MATCHES_BDF }; 91000d0963fSdilpreet 911b7d3956bSstephhprop error.io.pciex.fatal@PCIEXFN (0)-> 9126e1fa242SStephen Hanson ereport.io.pci.sserr@PCIEXFN; 91300d0963fSdilpreet 914b7d3956bSstephhprop error.io.pciex.fatal@PCIEXFN { is_under(PCIEXFN1, PCIEXFN) } (0)-> 915b7d3956bSstephh ereport.io.pci.sserr@PCIEXFN1, 916b7d3956bSstephh ereport.io.pci.sec-rserr@PCIEXFN1; 91700d0963fSdilpreet 918b7d3956bSstephhprop error.io.pciex.fatal@PCIEXFN { is_under(pciexrc, PCIEXFN) } (0)-> 91900d0963fSdilpreet ereport.io.pci.sec-rserr@pciexrc; 92000d0963fSdilpreet 921b7d3956bSstephhprop error.io.pciex.nonfatal@PCIEXFN1 (1)-> 922b7d3956bSstephh ereport.io.pciex.rc.mue-msg@pciexrc { is_under(pciexrc, PCIEXFN1) }, 923b7d3956bSstephh ereport.io.pciex.rc.nfe-msg@pciexrc { is_under(pciexrc, PCIEXFN1) && 924b7d3956bSstephh SOURCE_ID_MATCHES_BDF }; 92500d0963fSdilpreet 926b7d3956bSstephhprop error.io.pciex.nonfatal@PCIEXFN (0)-> 927b7d3956bSstephh ereport.io.pci.sserr@PCIEXFN; 92800d0963fSdilpreet 929b7d3956bSstephhprop error.io.pciex.nonfatal@PCIEXFN { is_under(PCIEXFN1, PCIEXFN) } (0)-> 930b7d3956bSstephh ereport.io.pci.sserr@PCIEXFN1, 931b7d3956bSstephh ereport.io.pci.sec-rserr@PCIEXFN1; 93200d0963fSdilpreet 933b7d3956bSstephhprop error.io.pciex.nonfatal@PCIEXFN { is_under(pciexrc, PCIEXFN) } (0)-> 93400d0963fSdilpreet ereport.io.pci.sec-rserr@pciexrc; 93500d0963fSdilpreet 93600d0963fSdilpreet/* 93700d0963fSdilpreet * link-level errors - could generate ereports at either end of link 93800d0963fSdilpreet * 93900d0963fSdilpreet * can use may propagations here as these ereports are only seen for these 94000d0963fSdilpreet * faults. 94100d0963fSdilpreet */ 942b7d3956bSstephhprop error.io.pciex.fatlink@PCIEXFN { !IS_SD(PCIEXFN) } (0)-> 943b7d3956bSstephh error.io.pciex.fatal@PCIEXFN; 94400d0963fSdilpreet 945b7d3956bSstephhprop error.io.pciex.fatlink@PCIEXFN { !IS_SD(PCIEXFN) } (0)-> 946b7d3956bSstephh ereport.io.pciex.dl.dllp@PCIEXFN, 947b7d3956bSstephh ereport.io.pciex.tl.fcp@PCIEXFN, 948b7d3956bSstephh ereport.io.pciex.tl.rof@PCIEXFN; 94900d0963fSdilpreet 950b7d3956bSstephhprop error.io.pciex.fatlink@PCIEXFN/PCIEXFN { IS_SD(PCIEXFN) } (0)-> 951b7d3956bSstephh error.io.pciex.fatal@PCIEXFN; 95200d0963fSdilpreet 953b7d3956bSstephhprop error.io.pciex.fatlink@PCIEXFN/PCIEXFN { IS_SD(PCIEXFN) } (0)-> 954b7d3956bSstephh ereport.io.pciex.dl.dllp@PCIEXFN, 955b7d3956bSstephh ereport.io.pciex.pl.te@PCIEXFN, 956*b0daa853SStephen Hanson ereport.io.pciex.pl.sd@PCIEXFN, 957b7d3956bSstephh ereport.io.pciex.tl.fcp@PCIEXFN, 958b7d3956bSstephh ereport.io.pciex.tl.rof@PCIEXFN; 95900d0963fSdilpreet 960b7d3956bSstephhprop error.io.pciex.fatlink@pciexrc/PCIEXFN (0)-> 96100d0963fSdilpreet ereport.io.pciex.dl.dllp@pciexrc, 96200d0963fSdilpreet ereport.io.pciex.pl.te@pciexrc, 963*b0daa853SStephen Hanson ereport.io.pciex.pl.sd@pciexrc, 96400d0963fSdilpreet ereport.io.pciex.tl.fcp@pciexrc, 96500d0963fSdilpreet ereport.io.pciex.tl.rof@pciexrc; 96600d0963fSdilpreet 96700d0963fSdilpreet/* 96800d0963fSdilpreet * bridge internal error 96900d0963fSdilpreet */ 970b7d3956bSstephhprop error.io.pciex.sec-interr@PCIEXFN { IS_BG(PCIEXFN) } (2) -> 971b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 972b7d3956bSstephh ereport.io.pciex.bdg.sec-interr@PCIEXFN; 97300d0963fSdilpreet 97400d0963fSdilpreet/* 97500d0963fSdilpreet * downstream poisoned request 97600d0963fSdilpreet * 97700d0963fSdilpreet * - poisreq-d cascades down to the leaf device/bridge and any switch ports 97800d0963fSdilpreet * on route must raise a ptlp ereport while any switch ports forwarding 97900d0963fSdilpreet * the poisoned request must raise sec-mdpe ereports. The originator of the 98000d0963fSdilpreet * poisoning (be it root complex or downstream port of a switch) also raises 981b7d3956bSstephh * sec-mdpe. A hardened leaf driver will also raise ptlp. A target-mdpe may 982b7d3956bSstephh * be seen at the leaf (which may be a pci device beyond the bridge). 98300d0963fSdilpreet * 98400d0963fSdilpreet * Additionally, the leaf/bridge may treat the request as a ur, which the 98500d0963fSdilpreet * root complex will see and report an ma. Use flt-ur-u to represent this. 98600d0963fSdilpreet * 98700d0963fSdilpreet * The fault can always be recognized and the source identified using the ptlp 98800d0963fSdilpreet * and sec-mdpe ereports. 98900d0963fSdilpreet */ 990b7d3956bSstephhprop error.io.pciex.poisreq-d@PCIEXFN (1)-> 991b7d3956bSstephh error.io.pciex.poisreq-fwd-d@PCIEXFN; 99200d0963fSdilpreet 993b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_SD(PCIEXFN) || 994b7d3956bSstephh IS_SU(PCIEXFN) } (1)-> 995b7d3956bSstephh error.io.pciex.flt-ur-u@PCIEXFN, 996b7d3956bSstephh error.io.pciex.poisreq-fwd-d@PCIEXFN/PCIEXFNHZ; 99700d0963fSdilpreet 998b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@pciexrc/PCIEXFN (1)-> 99900d0963fSdilpreet ereport.io.pci.sec-mdpe@pciexrc; 100000d0963fSdilpreet 1001b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN/PCIEXFN { IS_SU(PCIEXFN) } (0)-> 1002b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN; 100300d0963fSdilpreet 1004b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (2)-> 1005b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1006b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN; 100700d0963fSdilpreet 1008b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (0)-> 1009b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 101000d0963fSdilpreet 1011b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN/PCIEXFN { IS_SD(PCIEXFN) } (1)-> 1012b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN; 101300d0963fSdilpreet 1014b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_SD(PCIEXFN) } (0)-> 1015b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1016b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1017b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 101800d0963fSdilpreet 1019b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (3)-> 1020b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1021b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1022b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 102300d0963fSdilpreet 1024b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 1025b7d3956bSstephh error.io.pci.dpdata-pw-d@PCIEXFN/PCIFNHZ, 1026b7d3956bSstephh error.io.pci.dpdata-dw-d@PCIEXFN/PCIFNHZ; 102700d0963fSdilpreet 1028b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1029b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 1030b7d3956bSstephh 1031b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1032b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1033b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1034b7d3956bSstephh error.io.pciex.flt-ur-u@PCIEXFN; 1035b7d3956bSstephh 1036b7d3956bSstephhprop error.io.pciex.poisreq-fwd-d@PCIEXFN (0)-> 1037b7d3956bSstephh ereport.io.pci.target-mdpe@PCIEXFN; 103800d0963fSdilpreet 103900d0963fSdilpreet/* 104000d0963fSdilpreet * downstream poisoned completion 104100d0963fSdilpreet * 104200d0963fSdilpreet * - poiscomp-d cascades down to the leaf device/bridge and any switch ports on 104300d0963fSdilpreet * route must raise ptlp and mdpe ereports. A hardened leaf driver will also 104400d0963fSdilpreet * raise pltp and mdpe. For non-hardened leaf devices, no ptlp/mdpe may be 104500d0963fSdilpreet * reported, and though we should still see a nonfatal error reported from 104600d0963fSdilpreet * the root complex identifying the leaf device, we won't actually be informed 104700d0963fSdilpreet * that the error was an ptlp. 104800d0963fSdilpreet */ 1049b7d3956bSstephhprop error.io.pciex.poiscomp-d@PCIEXFN (1)-> 1050b7d3956bSstephh error.io.pciex.poiscomp-fwd-d@PCIEXFN; 105100d0963fSdilpreet 1052b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN (1)-> 1053b7d3956bSstephh error.io.pciex.poiscomp-fwd-d@PCIEXFN/PCIEXFNHZ; 105400d0963fSdilpreet 1055b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (2)-> 1056b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1057b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN; 105800d0963fSdilpreet 1059b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 1060b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1061b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN; 106200d0963fSdilpreet 1063b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (0)-> 1064b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 106500d0963fSdilpreet 1066b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_SD(PCIEXFN) } (0)-> 1067b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1068b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN, 1069b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1070b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1071b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 107200d0963fSdilpreet 1073b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (4)-> 1074b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1075b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1076b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1077b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 10788aec9182Sstephh 1079b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 1080b7d3956bSstephh error.io.pci.dpdata-dr-d@PCIEXFN/PCIFNHZ; 108100d0963fSdilpreet 1082b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1083b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 108400d0963fSdilpreet 1085b7d3956bSstephhprop error.io.pciex.poiscomp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1086b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1087b7d3956bSstephh ereport.io.pci.dpe@PCIEXFN, 1088b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN; 108900d0963fSdilpreet 109000d0963fSdilpreet/* 109100d0963fSdilpreet * downstream request with ecrc error. 109200d0963fSdilpreet * 109300d0963fSdilpreet * - ecrcreq-d cascades down to the leaf device/bridge and any switches on 109400d0963fSdilpreet * route can optionally raise an ecrc ereport. A hardened leaf driver may also 109500d0963fSdilpreet * raise ecrc. For non-hardened leaf devices, no ecrc may be reported, and 109600d0963fSdilpreet * though we should still see a nonfatal error reported from the root complex 109700d0963fSdilpreet * identifying the leaf device, we won't actually be informed that the error 109800d0963fSdilpreet * was an ecrc. 109900d0963fSdilpreet * 110000d0963fSdilpreet * Additionally, as the leaf/bridge will just throw away the packet, we should 1101b7d3956bSstephh * eventually get a cto at the root complex - so use an nr-u at the pciex 110200d0963fSdilpreet * leaf or bridge to get the appropriate behaviour. For the case where the leaf 110300d0963fSdilpreet * driver wasn't hardened we may be able to identify the leaf device (and 110400d0963fSdilpreet * therefore any intermediate switches which might have caused the problem) 110500d0963fSdilpreet * either via a target-ma ereport if available or via the nonfatal error 110600d0963fSdilpreet * reported from the root complex identifying the leaf device. The combination 110700d0963fSdilpreet * of a nonfatal error reported from the root complex and a cto from the root 110800d0963fSdilpreet * complex is sufficient to positively identify this case. 110900d0963fSdilpreet */ 1110b7d3956bSstephhprop error.io.pciex.ecrcreq-d@PCIEXFN (1)-> 111126733bfeSStephen Hanson error.io.pciex.ecrcreq-fwd-d@PCIEXFN, 111226733bfeSStephen Hanson error.io.pciex.ecrcreq-fwd-d@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }; 111300d0963fSdilpreet 1114b7d3956bSstephhprop error.io.pciex.ecrcreq-fwd-d@PCIEXFN { IS_SU(PCIEXFN) || 1115b7d3956bSstephh IS_SD(PCIEXFN) } (1)-> 111626733bfeSStephen Hanson error.io.pciex.flt-nr-u@PCIEXFN; 111700d0963fSdilpreet 1118b7d3956bSstephhprop error.io.pciex.ecrcreq-fwd-d@PCIEXFN { IS_SU(PCIEXFN) || 1119b7d3956bSstephh IS_SD(PCIEXFN) } (0)-> 1120b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1121b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 112200d0963fSdilpreet 1123b7d3956bSstephhprop error.io.pciex.ecrcreq-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (3)-> 1124b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1125b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1126b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN; 112700d0963fSdilpreet 1128b7d3956bSstephhprop error.io.pciex.ecrcreq-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (2)-> 1129b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1130b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN; 113100d0963fSdilpreet 1132b7d3956bSstephhprop error.io.pciex.ecrcreq-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1133b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN; 113400d0963fSdilpreet 113500d0963fSdilpreet/* 113600d0963fSdilpreet * downstream completion with ecrc error. 113700d0963fSdilpreet * 113800d0963fSdilpreet * - ecrccomp-d cascades down to the leaf device/bridge and any switches on 113900d0963fSdilpreet * route can optionally raise an ecrc ereport. A hardened leaf driver may 114000d0963fSdilpreet * also raise ecrc. For non-hardened leaf devices, no ecrc may be reported, 114100d0963fSdilpreet * and though we should still see a nonfatal error reported from the root 114200d0963fSdilpreet * complex identifying the leaf device, we won't actually be informed that 114300d0963fSdilpreet * the error was an ecrc. 114400d0963fSdilpreet * 114500d0963fSdilpreet * Additionally, as the leaf/bridge will just throw away the packet, we should 114600d0963fSdilpreet * eventually get a cto. Note the leaf ereports are optional (ie in case driver 114700d0963fSdilpreet * not hardened) but if we get both ecrc and cto we need to distinguish from 114800d0963fSdilpreet * cto only which would be an nr-d. 114900d0963fSdilpreet */ 1150b7d3956bSstephhprop error.io.pciex.ecrccomp-d@PCIEXFN (1)-> 115126733bfeSStephen Hanson error.io.pciex.ecrccomp-fwd-d@PCIEXFN, 115226733bfeSStephen Hanson error.io.pciex.ecrccomp-fwd-d@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }; 115300d0963fSdilpreet 1154b7d3956bSstephhprop error.io.pciex.ecrccomp-fwd-d@PCIEXFN { IS_SU(PCIEXFN) || 1155b7d3956bSstephh IS_SD(PCIEXFN) } (0)-> 1156b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1157b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN; 115800d0963fSdilpreet 1159b7d3956bSstephhprop error.io.pciex.ecrccomp-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (3)-> 1160b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1161b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1162b7d3956bSstephh error.io.pciex.nr-d@PCIEXFN; 116300d0963fSdilpreet 1164b7d3956bSstephhprop error.io.pciex.ecrccomp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1165b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 116600d0963fSdilpreet 1167b7d3956bSstephhprop error.io.pciex.ecrccomp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1168b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1169b7d3956bSstephh error.io.pciex.nr-d@PCIEXFN; 117000d0963fSdilpreet 117100d0963fSdilpreet/* 117200d0963fSdilpreet * upstream poisoned request 117300d0963fSdilpreet * 1174b7d3956bSstephh * - flt-poisreq-u is on the pciex node which generated the fault 1175b7d3956bSstephh * - source-poisreq-u refers to at least one leaf or bridge device 1176b7d3956bSstephh * whose bdf (if leaf) must match the source-id in the payload of the 11778aec9182Sstephh * ereport generated from the root complex. 1178b7d3956bSstephh * - poisreq-u propagates up to the root complex and any switch ports on 117900d0963fSdilpreet * route will raise a ptlp ereport, while any upstream devices generating 118000d0963fSdilpreet * or forwarding the poisoned packed will raise an mdpe ereport. The root 118100d0963fSdilpreet * complex should also report a ptlp. 118200d0963fSdilpreet * 118300d0963fSdilpreet * Additionally, as the root complex may treat the request as a ur, which the 118400d0963fSdilpreet * leaf/bridge will see (and if hardened report) as an ma (including sending a 118500d0963fSdilpreet * ta onto the child pci bus if this was a delayed write). 118600d0963fSdilpreet * 118700d0963fSdilpreet * We can always recognize what sort of fault this is from the ptlp (with no 118800d0963fSdilpreet * sec-mdpe) at the root complex. Recognizing which originating devices may be 118900d0963fSdilpreet * implicated can be done using the mdpe ereport (for a hardened leaf driver), 119000d0963fSdilpreet * or for a non-hardened leaf driver by using the source-id payload in the ptlp 119100d0963fSdilpreet * ereport to identify the originator of the request. The ptlp/mdpe ereports 119200d0963fSdilpreet * at the intervening switches will narrow the fault down to a single suspect. 119300d0963fSdilpreet */ 119400d0963fSdilpreet 1195b7d3956bSstephhprop error.io.pciex.flt-poisreq-u@PCIEXFN1 { (IS_LF(PCIEXFN) || 1196b7d3956bSstephh IS_BG(PCIEXFN)) && is_under(PCIEXFN1, PCIEXFN) } (0)-> 1197b7d3956bSstephh error.io.pciex.source-poisreq-u@PCIEXFN; 119800d0963fSdilpreet 1199b7d3956bSstephhprop error.io.pciex.source-poisreq-u@PCIEXFN1 { IS_LF(PCIEXFN1) && 1200b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(pciexrc, PCIEXFN1) } (0)-> 1201b7d3956bSstephh ereport.io.pciex.tl.ptlp@pciexrc, 1202b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc; 120300d0963fSdilpreet 1204b7d3956bSstephhprop error.io.pciex.source-poisreq-u@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1205b7d3956bSstephh ereport.io.pci.ma@PCIEXFN; 120600d0963fSdilpreet 1207b7d3956bSstephhprop error.io.pciex.source-poisreq-u@PCIEXFN { IS_BG(PCIEXFN) && 1208b7d3956bSstephh is_under(pciexrc, PCIEXFN) } (0)-> 1209b7d3956bSstephh ereport.io.pciex.tl.ptlp@pciexrc, 1210b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc; 121100d0963fSdilpreet 1212b7d3956bSstephhprop error.io.pciex.source-poisreq-u@PCIEXFN { IS_BG(PCIEXFN) } (0)-> 1213b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1214b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1215b7d3956bSstephh error.io.pci.ta-drw-d@PCIEXFN/PCIFN; 121600d0963fSdilpreet 1217b7d3956bSstephhprop error.io.pciex.flt-poisreq-u@PCIEXFN (1)-> 1218b7d3956bSstephh error.io.pciex.poisreq-u@PCIEXFN; 121900d0963fSdilpreet 1220b7d3956bSstephh/* 1221b7d3956bSstephh * the remaining propagations are also used for poisoned requests propagating 1222b7d3956bSstephh * up due to a fault behind a pcie-pci bridge 1223b7d3956bSstephh */ 1224b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN/PCIEXFN (1)-> 1225b7d3956bSstephh error.io.pciex.poisreq-u@PCIEXFN; 122600d0963fSdilpreet 1227b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 1228b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN; 122900d0963fSdilpreet 1230b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1231b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN; 123200d0963fSdilpreet 1233b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_SD(PCIEXFN) } (2)-> 1234b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1235b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN; 123600d0963fSdilpreet 1237b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_SD(PCIEXFN) } (0)-> 1238b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1239b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 124000d0963fSdilpreet 1241b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_SU(PCIEXFN) } (1)-> 1242b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN; 124300d0963fSdilpreet 1244b7d3956bSstephhprop error.io.pciex.poisreq-u@PCIEXFN { IS_SU(PCIEXFN) } (0)-> 1245b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1246b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1247b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 124800d0963fSdilpreet 1249b7d3956bSstephhprop error.io.pciex.poisreq-u@pciexrc/PCIEXFN (1)-> 125000d0963fSdilpreet ereport.io.pci.sec-dpe@pciexrc; 125100d0963fSdilpreet 125200d0963fSdilpreet/* 125300d0963fSdilpreet * upstream poisoned completion 125400d0963fSdilpreet * 1255b7d3956bSstephh * - flt-poiscomp-u is on the pciex node which generated the fault. There will 125600d0963fSdilpreet * be a target-mdpe downstream from here. 1257b7d3956bSstephh * - source-poiscomp-u refers to at least one leaf or bridge device 1258b7d3956bSstephh * whose bdf (if leaf) must match the source-id in the payload of the 12598aec9182Sstephh * ereport generated from the root complex. 1260b7d3956bSstephh * - poiscomp-u propagates up to the root complex and any switches on 126100d0963fSdilpreet * route will raise ptlp and sec-mdpe ereports. The root complex will also 126200d0963fSdilpreet * raise a sec-mdpe and ptlp. 126300d0963fSdilpreet * 126400d0963fSdilpreet * We can always recognize what sort of fault this is from the ptlp/sec-mdpe at 126500d0963fSdilpreet * the root complex. Recognizing which originating devices may be implicated 126600d0963fSdilpreet * can be done using the source-id payload in the ptlp ereport to identify the 126700d0963fSdilpreet * originator of the completion. The ptlp/sec-mdpe ereports at the intervening 126800d0963fSdilpreet * switches will narrow the fault down to a single suspect. 126900d0963fSdilpreet */ 1270b7d3956bSstephhprop error.io.pciex.flt-poiscomp-u@PCIEXFN { IS_LF(PCIEXFN1) && 1271b7d3956bSstephh is_under(PCIEXFN, PCIEXFN1) } (0)-> 1272b7d3956bSstephh ereport.io.pci.target-mdpe@PCIEXFN1; 127300d0963fSdilpreet 1274b7d3956bSstephhprop error.io.pciex.flt-poiscomp-u@PCIEXFN { IS_PCI_LF(PCIFN) && 1275b7d3956bSstephh is_under(PCIEXFN, PCIFN) } (0)-> 1276b7d3956bSstephh ereport.io.pci.target-mdpe@PCIFN; 127700d0963fSdilpreet 1278b7d3956bSstephhprop error.io.pciex.flt-poiscomp-u@PCIEXFN1 { (IS_LF(PCIEXFN) || 1279b7d3956bSstephh IS_BG(PCIEXFN)) && is_under(PCIEXFN1, PCIEXFN) } (0)-> 1280b7d3956bSstephh error.io.pciex.source-poiscomp-u@PCIEXFN; 128100d0963fSdilpreet 1282b7d3956bSstephhprop error.io.pciex.source-poiscomp-u@PCIEXFN1 { IS_LF(PCIEXFN1) && 1283b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(pciexrc, PCIEXFN1) } (0)-> 1284b7d3956bSstephh ereport.io.pciex.tl.ptlp@pciexrc; 128500d0963fSdilpreet 1286b7d3956bSstephhprop error.io.pciex.source-poiscomp-u@PCIEXFN1 { IS_BG(PCIEXFN1) && 1287b7d3956bSstephh is_under(pciexrc, PCIEXFN1) } (0)-> 1288b7d3956bSstephh ereport.io.pciex.tl.ptlp@pciexrc; 128900d0963fSdilpreet 1290b7d3956bSstephhprop error.io.pciex.flt-poiscomp-u@PCIEXFN (1)-> 1291b7d3956bSstephh error.io.pciex.poiscomp-u@PCIEXFN; 129200d0963fSdilpreet 1293b7d3956bSstephh/* 1294b7d3956bSstephh * the remaining propagations are also used for poisoned completions propagating 1295b7d3956bSstephh * up due to a fault behind a pcie-pci bridge 1296b7d3956bSstephh */ 1297b7d3956bSstephhprop error.io.pciex.poiscomp-u@PCIEXFN/PCIEXFN (1)-> 1298b7d3956bSstephh error.io.pciex.poiscomp-u@PCIEXFN; 129900d0963fSdilpreet 1300b7d3956bSstephhprop error.io.pciex.poiscomp-u@PCIEXFN { IS_SD(PCIEXFN) } (2)-> 1301b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1302b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN; 130300d0963fSdilpreet 1304b7d3956bSstephhprop error.io.pciex.poiscomp-u@PCIEXFN { IS_SD(PCIEXFN) } (1)-> 1305b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN, 1306b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN; 130700d0963fSdilpreet 1308b7d3956bSstephhprop error.io.pciex.poiscomp-u@PCIEXFN { IS_SD(PCIEXFN) } (0)-> 1309b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 131000d0963fSdilpreet 1311b7d3956bSstephhprop error.io.pciex.poiscomp-u@PCIEXFN { IS_SU(PCIEXFN) } (0)-> 1312b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN, 1313b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN, 1314b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1315b7d3956bSstephh ereport.io.pciex.tl.ptlp@PCIEXFN, 1316b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 131700d0963fSdilpreet 1318b7d3956bSstephhprop error.io.pciex.poiscomp-u@pciexrc/PCIEXFN (1)-> 131900d0963fSdilpreet ereport.io.pci.sec-dpe@pciexrc; 132000d0963fSdilpreet 1321b7d3956bSstephhprop error.io.pciex.poiscomp-u@pciexrc/PCIEXFN (0)-> 132200d0963fSdilpreet ereport.io.pci.sec-mdpe@pciexrc; 132300d0963fSdilpreet 132400d0963fSdilpreet/* 132500d0963fSdilpreet * upstream request with ecrc error. 132600d0963fSdilpreet * 1327b7d3956bSstephh * - flt-ecrcreq-u is on the pciex node which generated the fault. 132800d0963fSdilpreet * - source-ecrcreq-u cascades down to at least one leaf device (pciex or pci), 13298aec9182Sstephh * whose bdf (if pciex) must match the source-id in the payload of the 13308aec9182Sstephh * ereport generated from the root complex. 1331b7d3956bSstephh * - ecrcreq-u propagates up to the root complex which must report it with an 1332b7d3956bSstephh * ecrc ereport and any switches on route can optionally raise an ecrc ereport 133300d0963fSdilpreet * 13348aec9182Sstephh * Additionally, as the root complex will just throw away the packet, we may 133500d0963fSdilpreet * eventually get a cto - so use an nr-d at the pciex leaf or bridge to get 133600d0963fSdilpreet * the appropriate behaviour. 133700d0963fSdilpreet * 133800d0963fSdilpreet * We can always recognize what sort of fault this is from the ecrc (with no 133900d0963fSdilpreet * cto) at the root complex. Recognizing which leaf device may be implicated 134000d0963fSdilpreet * can be done from the cto ereport (for a hardened leaf driver) or for a 134100d0963fSdilpreet * non-hardened leaf using the source-id payload of the ecrc. 134200d0963fSdilpreet */ 1343b7d3956bSstephhprop error.io.pciex.flt-ecrcreq-u@PCIEXFN1 { (IS_LF(PCIEXFN) || 1344b7d3956bSstephh IS_BG(PCIEXFN)) && is_under(PCIEXFN1, PCIEXFN) } (0)-> 1345b7d3956bSstephh error.io.pciex.source-ecrcreq-u@PCIEXFN; 134600d0963fSdilpreet 1347b7d3956bSstephhprop error.io.pciex.source-ecrcreq-u@PCIEXFN (0)-> 1348b7d3956bSstephh error.io.pciex.nr-d@PCIEXFN; 134900d0963fSdilpreet 1350b7d3956bSstephhprop error.io.pciex.source-ecrcreq-u@PCIEXFN1 { IS_LF(PCIEXFN1) && 1351b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(pciexrc, PCIEXFN1) } (0)-> 1352b7d3956bSstephh ereport.io.pciex.tl.ecrc@pciexrc; 135300d0963fSdilpreet 1354b7d3956bSstephhprop error.io.pciex.source-ecrcreq-u@PCIEXFN { IS_BG(PCIEXFN) && 1355b7d3956bSstephh is_under(pciexrc, PCIEXFN) } (0)-> 1356b7d3956bSstephh ereport.io.pciex.tl.ecrc@pciexrc; 135700d0963fSdilpreet 1358b7d3956bSstephhprop error.io.pciex.flt-ecrcreq-u@PCIEXFN (1)-> 1359b7d3956bSstephh error.io.pciex.ecrcreq-u@PCIEXFN; 136000d0963fSdilpreet 1361b7d3956bSstephhprop error.io.pciex.ecrcreq-u@PCIEXFN/PCIEXFN (1)-> 1362b7d3956bSstephh error.io.pciex.ecrcreq-u@PCIEXFN; 136300d0963fSdilpreet 1364b7d3956bSstephhprop error.io.pciex.ecrcreq-u@PCIEXFN { IS_SD(PCIEXFN)||IS_SU(PCIEXFN) } (0)-> 1365b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1366b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 136700d0963fSdilpreet 136800d0963fSdilpreet/* 136900d0963fSdilpreet * upstream completion with ecrc error. 137000d0963fSdilpreet * 1371b7d3956bSstephh * - flt-ecrccomp-u is on the pciex node which generated the fault. 137200d0963fSdilpreet * - source-ecrccomp-u cascades down to at least one leaf device (pciex or pci), 13738aec9182Sstephh * whose bdf (if pciex) must match the source-id in the payload of the 13748aec9182Sstephh * ereport generated from the root complex. 1375b7d3956bSstephh * - ecrccomp-u propagates up to the root complex, which should report it with 1376b7d3956bSstephh * an ecrc ereport and any switches on route can optionally raise an ecrc 137700d0963fSdilpreet * ereport. 137800d0963fSdilpreet * 137900d0963fSdilpreet * Additionally, as the root complex will just throw away the packet, we'll 138000d0963fSdilpreet * eventually get a cto - so use an flt-nr-u at the pciex leaf or bridge to get 138100d0963fSdilpreet * the appropriate behaviour. 138200d0963fSdilpreet * 138300d0963fSdilpreet * We can always recognize what sort of fault this from the ecrc/cto from the 138400d0963fSdilpreet * root complex. Recognizing which leaf device may be implicated can be done 138500d0963fSdilpreet * using either the source-id payload of the ecrc or the target-ma ereport if 138600d0963fSdilpreet * available. 138700d0963fSdilpreet */ 1388b7d3956bSstephhprop error.io.pciex.flt-ecrccomp-u@PCIEXFN1 { (IS_LF(PCIEXFN) || 1389b7d3956bSstephh IS_BG(PCIEXFN)) && is_under(PCIEXFN1, PCIEXFN) } (0)-> 1390b7d3956bSstephh error.io.pciex.source-ecrccomp-u@PCIEXFN; 139100d0963fSdilpreet 1392b7d3956bSstephhprop error.io.pciex.source-ecrccomp-u@PCIEXFN (0)-> 1393b7d3956bSstephh error.io.pciex.flt-nr-u@PCIEXFN; 139400d0963fSdilpreet 1395b7d3956bSstephhprop error.io.pciex.source-ecrccomp-u@PCIEXFN1 { IS_LF(PCIEXFN1) && 1396b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(pciexrc, PCIEXFN1) } (0)-> 1397b7d3956bSstephh ereport.io.pciex.tl.ecrc@pciexrc; 139800d0963fSdilpreet 1399b7d3956bSstephhprop error.io.pciex.source-ecrccomp-u@PCIEXFN { IS_BG(PCIEXFN) && 1400b7d3956bSstephh is_under(pciexrc, PCIEXFN) } (0)-> 1401b7d3956bSstephh ereport.io.pciex.tl.ecrc@pciexrc; 140200d0963fSdilpreet 1403b7d3956bSstephhprop error.io.pciex.flt-ecrccomp-u@PCIEXFN (1)-> 1404b7d3956bSstephh error.io.pciex.ecrccomp-u@PCIEXFN; 140500d0963fSdilpreet 1406b7d3956bSstephhprop error.io.pciex.ecrccomp-u@PCIEXFN/PCIEXFN (1)-> 1407b7d3956bSstephh error.io.pciex.ecrccomp-u@PCIEXFN; 140800d0963fSdilpreet 1409b7d3956bSstephhprop error.io.pciex.ecrccomp-u@PCIEXFN { IS_SD(PCIEXFN)||IS_SU(PCIEXFN) } (0)-> 1410b7d3956bSstephh ereport.io.pciex.tl.ecrc@PCIEXFN, 1411b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 141200d0963fSdilpreet 141300d0963fSdilpreet/* 141400d0963fSdilpreet * no response to downstream requester 141500d0963fSdilpreet * 141600d0963fSdilpreet * - nr-d will effectively cascade downstream to the requester. The fault here 141700d0963fSdilpreet * is always at the root complex. For a hardened leaf device driver, we will 141800d0963fSdilpreet * always be able to recognize this as the requester will report this as a 141900d0963fSdilpreet * cto. For non-hardened leaf devices, no cto will be reported, and though we 142000d0963fSdilpreet * should still see a nonfatal error reported from the root complex 142100d0963fSdilpreet * identifying the leaf device, we won't actually be informed that the error 142200d0963fSdilpreet * was a cto. 142300d0963fSdilpreet */ 1424b7d3956bSstephhprop error.io.pciex.nr-d@PCIEXFN (1)-> 142526733bfeSStephen Hanson error.io.pciex.nr-fwd-d@PCIEXFN { IS_BG(PCIEXFN) || IS_LF(PCIEXFN) }, 142626733bfeSStephen Hanson error.io.pciex.nr-fwd-d@PCIEXFNHZ { (IS_BG(PCIEXFNHZ) || 142726733bfeSStephen Hanson IS_LF(PCIEXFNHZ)) && is_under(PCIEXFN, PCIEXFNHZ) }; 142800d0963fSdilpreet 142926733bfeSStephen Hansonprop error.io.pciex.nr-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (2)-> 1430b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1431b7d3956bSstephh ereport.io.pciex.tl.cto@PCIEXFN; 143200d0963fSdilpreet 143326733bfeSStephen Hansonprop error.io.pciex.nr-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (0)-> 1434b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1435b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1436b7d3956bSstephh error.io.pci.nr-drw-d@PCIEXFN/PCIFN, 1437b7d3956bSstephh error.io.pci.ta-drw-d@PCIEXFN/PCIFN; 143800d0963fSdilpreet 143926733bfeSStephen Hansonprop error.io.pciex.nr-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1440b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 144100d0963fSdilpreet 144226733bfeSStephen Hansonprop error.io.pciex.nr-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1443b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1444b7d3956bSstephh ereport.io.pciex.tl.cto@PCIEXFN; 144500d0963fSdilpreet 144600d0963fSdilpreet/* 144700d0963fSdilpreet * no response to upstream requester 144800d0963fSdilpreet * 1449b7d3956bSstephh * - flt-nr-u will effectively cascade upstream to the root complex which will 145000d0963fSdilpreet * report it as a cto. 145100d0963fSdilpreet * 145200d0963fSdilpreet * We have to use target-ma to informs us which device failed to respond. 145300d0963fSdilpreet */ 1454b7d3956bSstephhprop error.io.pciex.flt-nr-u@PCIEXFN (1)-> 1455b7d3956bSstephh error.io.pci.target-ma-d@PCIEXFN; 145600d0963fSdilpreet 1457b7d3956bSstephhprop error.io.pciex.flt-nr-u@PCIEXFN (1)-> 1458b7d3956bSstephh error.io.pciex.nr-u@PCIEXFN; 145900d0963fSdilpreet 1460b7d3956bSstephhprop error.io.pciex.nr-u@PCIEXFN/PCIEXFN (1)-> 1461b7d3956bSstephh error.io.pciex.nr-u@PCIEXFN; 1462b7d3956bSstephh 1463b7d3956bSstephhprop error.io.pciex.nr-u@pciexrc/PCIEXFN (1)-> 146400d0963fSdilpreet ereport.io.pciex.tl.cto@pciexrc; 146500d0963fSdilpreet 1466b7d3956bSstephhprop error.io.pciex.nr-u@pciexrc/PCIEXFN (0)-> 146700d0963fSdilpreet ereport.io.pci.sec-ma@pciexrc; 146800d0963fSdilpreet 146900d0963fSdilpreet/* 147000d0963fSdilpreet * downstream malformed tlp 147100d0963fSdilpreet * 147200d0963fSdilpreet * This will cascade downstream to the receiver which will report it as an mtlp. 147300d0963fSdilpreet * For non-hardened leaf drivers, no mtlp will be reported, and though we should 147400d0963fSdilpreet * still see a fatal error reported from the root complex identifying the leaf 147500d0963fSdilpreet * device, we won't actually be informed that the error was a mtlp. 147600d0963fSdilpreet * Note that sw-mtlp-d is to handle the case where the switch is actually 147700d0963fSdilpreet * the target of the packet (config request etc). 147800d0963fSdilpreet */ 147926733bfeSStephen Hansonprop error.io.pciex.mtlp-d@PCIEXFN (1)-> 148026733bfeSStephen Hanson error.io.pciex.mtlp-fwd-d@PCIEXFN { !IS_SD(PCIEXFN) }, 148126733bfeSStephen Hanson error.io.pciex.mtlp-fwd-d@PCIEXFNHZ { !IS_SD(PCIEXFNHZ) && 148226733bfeSStephen Hanson is_under(PCIEXFN, PCIEXFNHZ) }; 148300d0963fSdilpreet 148426733bfeSStephen Hansonprop error.io.pciex.mtlp-fwd-d@PCIEXFN { IS_SU(PCIEXFN) } (2)-> 1485b7d3956bSstephh error.io.pciex.fatal@PCIEXFN, 1486b7d3956bSstephh ereport.io.pciex.tl.mtlp@PCIEXFN; 148700d0963fSdilpreet 148826733bfeSStephen Hansonprop error.io.pciex.mtlp-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (2)-> 1489b7d3956bSstephh error.io.pciex.fatal@PCIEXFN, 1490b7d3956bSstephh ereport.io.pciex.tl.mtlp@PCIEXFN; 149100d0963fSdilpreet 149226733bfeSStephen Hansonprop error.io.pciex.mtlp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1493b7d3956bSstephh error.io.pciex.fatal@PCIEXFN; 149400d0963fSdilpreet 149526733bfeSStephen Hansonprop error.io.pciex.mtlp-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1496b7d3956bSstephh ereport.io.pciex.tl.mtlp@PCIEXFN; 149700d0963fSdilpreet 149800d0963fSdilpreet/* 149900d0963fSdilpreet * upstream malformed tlp 150000d0963fSdilpreet * 150100d0963fSdilpreet * This will cascade upstream to the receiver which will report it as an mtlp. 150200d0963fSdilpreet */ 1503b7d3956bSstephhprop error.io.pciex.flt-mtlp-u@PCIEXFN (1)-> 1504b7d3956bSstephh error.io.pciex.mtlp-u@PCIEXFN; 150500d0963fSdilpreet 1506b7d3956bSstephhprop error.io.pciex.mtlp-u@PCIEXFN/PCIEXFN (1)-> 1507b7d3956bSstephh error.io.pciex.mtlp-u@PCIEXFN; 150800d0963fSdilpreet 1509b7d3956bSstephhprop error.io.pciex.mtlp-u@pciexrc/PCIEXFN (1)-> 1510b7d3956bSstephh ereport.io.pciex.tl.mtlp@pciexrc; 151100d0963fSdilpreet 151200d0963fSdilpreet/* 151300d0963fSdilpreet * downstream completer aborts 151400d0963fSdilpreet * 151500d0963fSdilpreet * This could be the fault of the root complex or a switch reporting an internal 151600d0963fSdilpreet * error, or of the leaf device sending an invalid request (the latter is 1517b7d3956bSstephh * handled by the flt-badreq-u case below). 151800d0963fSdilpreet * 151900d0963fSdilpreet * This is reported by the completer or by an intervening downstream switch 152000d0963fSdilpreet * port. The completer abort response propagates down to the initiator which 152100d0963fSdilpreet * will set the legacy pci bit rta. 152200d0963fSdilpreet * 152300d0963fSdilpreet * The fault can always be recognized by the ca ereport from the root complex 152400d0963fSdilpreet * or downstream switch port. The originator of the request can be recognized 152500d0963fSdilpreet * by the rta for a hardened driver or by using the source-id payload of the 152600d0963fSdilpreet * ca ereport for a non-hardened driver. 152700d0963fSdilpreet */ 1528b7d3956bSstephhprop error.io.pciex.ca-d@pciexrc/PCIEXFN (0)-> 15298aec9182Sstephh ereport.io.pciex.tl.ca@pciexrc; 15308aec9182Sstephh 1531b7d3956bSstephhprop error.io.pciex.ca-d@pciexrc/PCIEXFN (1)-> 153200d0963fSdilpreet ereport.io.pci.sec-sta@pciexrc; 153300d0963fSdilpreet 1534b7d3956bSstephhprop error.io.pciex.ca-d@PCIEXFN/PCIEXFN (0)-> 1535b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 153600d0963fSdilpreet 1537b7d3956bSstephhprop error.io.pciex.ca-d@PCIEXFN/PCIEXFN (2)-> 1538b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN, 1539b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 154000d0963fSdilpreet 154126733bfeSStephen Hansonprop error.io.pciex.ca-d@PCIEXFN (1)-> 154226733bfeSStephen Hanson error.io.pciex.ca-fwd-d@PCIEXFN { IS_BG(PCIEXFN) || IS_LF(PCIEXFN) }, 154326733bfeSStephen Hanson error.io.pciex.ca-fwd-d@PCIEXFNHZ { (IS_BG(PCIEXFNHZ) || 154426733bfeSStephen Hanson IS_LF(PCIEXFNHZ)) && is_under(PCIEXFN, PCIEXFNHZ) }; 154500d0963fSdilpreet 1546b7d3956bSstephhprop error.io.pciex.ca-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 1547b7d3956bSstephh ereport.io.pci.rta@PCIEXFN; 154800d0963fSdilpreet 1549b7d3956bSstephhprop error.io.pciex.ca-fwd-d@PCIEXFN { IS_BG(PCIEXFN) } (0)-> 1550b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1551b7d3956bSstephh error.io.pci.ta-drw-d@PCIEXFN/PCIFN; 155200d0963fSdilpreet 1553b7d3956bSstephhprop error.io.pciex.ca-fwd-d@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1554b7d3956bSstephh ereport.io.pci.rta@PCIEXFN; 155500d0963fSdilpreet 155600d0963fSdilpreet/* 155700d0963fSdilpreet * upstream completer aborts 155800d0963fSdilpreet * 155900d0963fSdilpreet * This could be the fault of the leaf device/bridge/upstream switch port 156000d0963fSdilpreet * reporting an internal error, or of the root complex sending an invalid 156100d0963fSdilpreet * request (the latter case is handled by badreq-d below). 156200d0963fSdilpreet * 15638aec9182Sstephh * This is reported as a ca by the completer. The completer (for non-posted 1564b7d3956bSstephh * requests) sends the appropriate error bits in the completion message to 15658aec9182Sstephh * the initiator which will set the legacy pci bit sec-rta. 156600d0963fSdilpreet * 156700d0963fSdilpreet * The fault can always be recognized from the sec-rta bit at the root complex. 156800d0963fSdilpreet * 156900d0963fSdilpreet * If the fault was with a PCI Express leaf with a hardened driver, then we 157000d0963fSdilpreet * will identify the device from the ca ereport. 157100d0963fSdilpreet * 157200d0963fSdilpreet * If the fault was with a PCI Express leaf with a non-hardened driver, then we 157300d0963fSdilpreet * can still identify the leaf device from the source-id payload of the nonfatal 157400d0963fSdilpreet * message ereport from the root complex or from the target-rta ereport. 157500d0963fSdilpreet */ 1576b7d3956bSstephhprop error.io.pciex.flt-ca-u@PCIEXFN { !IS_LF(PCIEXFN) } (1)-> 1577b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN; 157800d0963fSdilpreet 1579b7d3956bSstephhprop error.io.pciex.flt-ca-u@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1580b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN; 158100d0963fSdilpreet 1582b7d3956bSstephhprop error.io.pciex.flt-ca-u@PCIEXFN (0)-> 1583b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1584b7d3956bSstephh ereport.io.pci.sta@PCIEXFN; 15858aec9182Sstephh 1586b7d3956bSstephhprop error.io.pciex.flt-ca-u@PCIEXFN (2)-> 1587b7d3956bSstephh error.io.pci.target-rta-d@PCIEXFN, 1588b7d3956bSstephh error.io.pciex.ca-u@PCIEXFN; 158900d0963fSdilpreet 1590b7d3956bSstephhprop error.io.pciex.ca-u@PCIEXFN/PCIEXFN (1)-> 1591b7d3956bSstephh error.io.pciex.ca-u@PCIEXFN; 159200d0963fSdilpreet 1593b7d3956bSstephhprop error.io.pciex.ca-u@pciexrc/PCIEXFN (0)-> 159400d0963fSdilpreet ereport.io.pci.sec-rta@pciexrc; 159500d0963fSdilpreet 159600d0963fSdilpreet/* 159700d0963fSdilpreet * upstream bad request 159800d0963fSdilpreet * 159900d0963fSdilpreet * When detecting bad data on a request the completer (or any switch on the 160000d0963fSdilpreet * way to the completer) may report ur or ca. If the switch detects the problem 160100d0963fSdilpreet * first then the request doesn't get forwarded on to the completer. 160200d0963fSdilpreet * 16038aec9182Sstephh * These are reported as ur/ca ereports. For non-posted requests, the reporter 16048aec9182Sstephh * then sends the appropriate error bits in the completion message to the 16058aec9182Sstephh * initiator which will set the legacy pci bits ma or rta. 160600d0963fSdilpreet * 1607b7d3956bSstephh * For flt-badreq-u, the ca/ur ereports contain a source-id payload that 1608b7d3956bSstephh * identifies the initiator. 160900d0963fSdilpreet * 161000d0963fSdilpreet * The fault can always be recognized by the ca/ur ereport from the root 161100d0963fSdilpreet * complex or downstream switch port. The originator of the request can be 161200d0963fSdilpreet * recognized by the rta/ma for a hardened driver or by using the source-id 161300d0963fSdilpreet * payload of the ca/ur ereport for a non-hardened driver. 161400d0963fSdilpreet */ 1615b7d3956bSstephhprop error.io.pciex.flt-badreq-u@PCIEXFN (0)-> 1616b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1617b7d3956bSstephh ereport.io.pci.rta@PCIEXFN; 161800d0963fSdilpreet 1619b7d3956bSstephhprop error.io.pciex.flt-badreq-u@PCIEXFN1 { 1620b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(pciexrc, PCIEXFN1) } (0)-> 1621b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc, 1622b7d3956bSstephh ereport.io.pciex.tl.ca@pciexrc; 162300d0963fSdilpreet 1624b7d3956bSstephhprop error.io.pciex.flt-badreq-u@PCIEXFN (1)-> 1625b7d3956bSstephh error.io.pciex.badreq-u@PCIEXFN; 1626b7d3956bSstephh 1627b7d3956bSstephhprop error.io.pciex.badreq-u@PCIEXFN/PCIEXFN (1)-> 1628b7d3956bSstephh error.io.pciex.badreq-u@PCIEXFN; 1629b7d3956bSstephh 1630b7d3956bSstephhprop error.io.pciex.badreq-u@pciexrc/PCIEXFN (0)-> 163100d0963fSdilpreet ereport.io.pci.sec-sta@pciexrc; 163200d0963fSdilpreet 1633b7d3956bSstephhprop error.io.pciex.flt-badreq-u@PCIEXFN1 { IS_SD(PCIEXFN) && 1634b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIEXFN1) } (0)-> 1635b7d3956bSstephh ereport.io.pciex.tl.ur@PCIEXFN, 1636b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN; 163700d0963fSdilpreet 1638b7d3956bSstephhprop error.io.pciex.flt-badreq-u@PCIEXFN1 { IS_SD(PCIEXFN) && 1639b7d3956bSstephh is_under(PCIEXFN, PCIEXFN1) } (0)-> 1640b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1641b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 164200d0963fSdilpreet 164300d0963fSdilpreet/* 164400d0963fSdilpreet * downstream bad request 164500d0963fSdilpreet * 164600d0963fSdilpreet * When detecting bad data on a request the completer (or any switch on the 164700d0963fSdilpreet * way to the completer) may report ur or ca. If the switch detects the problem 164800d0963fSdilpreet * first then the request doesn't get forwarded on to the completer. 164900d0963fSdilpreet * 165000d0963fSdilpreet * These are reported as ur/ca ereports (except where the completer is a non- 165100d0963fSdilpreet * hardened leaf driver when all we get is a nonfatal error from the root 165200d0963fSdilpreet * complex identifying the leaf device). The reporter then sends the appropriate 165300d0963fSdilpreet * error bits in the completion message to the initiator which will set the 165400d0963fSdilpreet * legacy pci bits ma or rta (oddly there is no equivalent in pcie error 165500d0963fSdilpreet * reporting). 165600d0963fSdilpreet */ 165726733bfeSStephen Hansonprop error.io.pciex.badreq-d@PCIEXFN (1)-> 1658b7d3956bSstephh error.io.pciex.flt-ur-u@PCIEXFN, 1659b7d3956bSstephh error.io.pciex.flt-ca-u@PCIEXFN, 166026733bfeSStephen Hanson error.io.pciex.flt-ur-u@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 166126733bfeSStephen Hanson error.io.pciex.flt-ca-u@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 166226733bfeSStephen Hanson error.io.pci.badreq-pw-d@PCIEXFNHZ/PCIFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 166326733bfeSStephen Hanson error.io.pci.badreq-drw-d@PCIEXFNHZ/PCIFNHZ { is_under(PCIEXFN,PCIEXFNHZ) }; 1664b7d3956bSstephh 1665b7d3956bSstephhprop error.io.pciex.flt-ur-u@PCIEXFN { !IS_LF(PCIEXFN) } (1)-> 1666b7d3956bSstephh ereport.io.pciex.tl.ur@PCIEXFN; 1667b7d3956bSstephh 1668b7d3956bSstephhprop error.io.pciex.flt-ur-u@PCIEXFN { IS_LF(PCIEXFN) } (0)-> 1669b7d3956bSstephh ereport.io.pciex.tl.ur@PCIEXFN; 1670b7d3956bSstephh 1671b7d3956bSstephhprop error.io.pciex.flt-ur-u@PCIEXFN (2)-> 1672b7d3956bSstephh error.io.pci.target-ma-d@PCIEXFN, 1673b7d3956bSstephh error.io.pciex.ur-u@PCIEXFN; 1674b7d3956bSstephh 1675b7d3956bSstephhprop error.io.pciex.flt-ur-u@PCIEXFN (0)-> 1676b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 1677b7d3956bSstephh 1678b7d3956bSstephhprop error.io.pciex.ur-u@PCIEXFN/PCIEXFN (1)-> 1679b7d3956bSstephh error.io.pciex.ur-u@PCIEXFN; 1680b7d3956bSstephh 1681b7d3956bSstephhprop error.io.pciex.ur-u@pciexrc/PCIEXFN (0)-> 1682b7d3956bSstephh ereport.io.pci.sec-ma@pciexrc; 168300d0963fSdilpreet 168400d0963fSdilpreet/* 168500d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 168600d0963fSdilpreet * Stub unused legacy pci ereports at root complex. 168700d0963fSdilpreet * Stub tl.uc as we can't do anything useful with it (we should eventually 168800d0963fSdilpreet * get a cto which we can do something with - a uc without a cto is a genuinely 168900d0963fSdilpreet * spurious completion which is at least harmless). 169000d0963fSdilpreet * Stub messages that the root complex sends to itself. 169100d0963fSdilpreet * Stub mce/mue/ce/nr/noadverr. 169200d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 169300d0963fSdilpreet */ 169400d0963fSdilpreet 169500d0963fSdilpreetevent error.io.pciex.discard_rc@pciexrc; 169600d0963fSdilpreet 1697b7d3956bSstephhevent ereport.io.pciex.noadverr@PCIEXFN{within(5s)}; 1698b7d3956bSstephhevent ereport.io.pciex.correctable@PCIEXFN{within(5s)}; 1699b7d3956bSstephhevent ereport.io.pciex.nonfatal@PCIEXFN{within(5s)}; 1700b7d3956bSstephhevent ereport.io.pciex.a-nonfatal@PCIEXFN{within(5s)}; 1701b7d3956bSstephhevent ereport.io.pciex.fatal@PCIEXFN{within(5s)}; 1702b7d3956bSstephhevent ereport.io.pci.nr@PCIEXFN{within(5s)}; 170300d0963fSdilpreetevent ereport.io.pci.nr@pciexrc{within(5s)}; 170400d0963fSdilpreetevent ereport.io.pci.ma@pciexrc{within(5s)}; 170500d0963fSdilpreetevent ereport.io.pci.rta@pciexrc{within(5s)}; 170600d0963fSdilpreetevent ereport.io.pci.sta@pciexrc{within(5s)}; 170700d0963fSdilpreetevent ereport.io.pci.dpe@pciexrc{within(5s)}; 170800d0963fSdilpreetevent ereport.io.pci.mdpe@pciexrc{within(5s)}; 170900d0963fSdilpreetevent ereport.io.pci.sserr@pciexrc{within(5s)}; 171000d0963fSdilpreetevent ereport.io.pciex.tl.uc@pciexrc{within(5s)}; 171100d0963fSdilpreetevent ereport.io.pciex.noadverr@pciexrc{within(5s)}; 17121d76b125Sstephhevent ereport.io.pciex.a-nonfatal@pciexrc{within(5s)}; 171300d0963fSdilpreetevent ereport.io.pciex.rc.ce-msg@pciexrc{within(5s)}; 171400d0963fSdilpreetevent ereport.io.pciex.rc.mce-msg@pciexrc{within(5s)}; 171500d0963fSdilpreet 1716b7d3956bSstephhevent upset.io.pciex.discard_uc@PCIEXFN; 1717b7d3956bSstephhevent upset.io.pciex.discard@PCIEXFN; 171800d0963fSdilpreetevent upset.io.pciex.discard@pciexrc; 171900d0963fSdilpreet 1720b7d3956bSstephhprop upset.io.pciex.discard_uc@PCIEXFN { IS_BG(PCIEXFN) } (1)-> 1721b7d3956bSstephh ereport.io.pciex.tl.uc@PCIEXFN; 172200d0963fSdilpreet 1723b7d3956bSstephhprop upset.io.pciex.discard_uc@PCIEXFN { IS_LF(PCIEXFN) } (1)-> 1724b7d3956bSstephh ereport.io.pciex.tl.uc@PCIEXFN; 172500d0963fSdilpreet 1726b7d3956bSstephhprop upset.io.pciex.discard@PCIEXFN (1)-> 1727b7d3956bSstephh ereport.io.pci.nr@PCIEXFN, 1728b7d3956bSstephh ereport.io.pciex.noadverr@PCIEXFN, 1729b7d3956bSstephh ereport.io.pciex.correctable@PCIEXFN, 1730b7d3956bSstephh ereport.io.pciex.nonfatal@PCIEXFN, 1731b7d3956bSstephh ereport.io.pciex.a-nonfatal@PCIEXFN, 1732b7d3956bSstephh ereport.io.pciex.fatal@PCIEXFN; 173300d0963fSdilpreet 1734b7d3956bSstephhprop error.io.pciex.discard_rc@pciexrc (0)-> 1735b7d3956bSstephh ereport.io.pciex.rc.mue-msg@pciexrc, 173600d0963fSdilpreet ereport.io.pciex.rc.fe-msg@pciexrc { SOURCE_ID_MATCHES_OWN_BDF }, 1737b7d3956bSstephh ereport.io.pciex.rc.nfe-msg@pciexrc { SOURCE_ID_MATCHES_OWN_BDF }; 173800d0963fSdilpreet 173900d0963fSdilpreetprop upset.io.pciex.discard@pciexrc (1)-> 174000d0963fSdilpreet error.io.pciex.discard_rc@pciexrc, 174100d0963fSdilpreet ereport.io.pci.nr@pciexrc, 174200d0963fSdilpreet ereport.io.pciex.noadverr@pciexrc, 17431d76b125Sstephh ereport.io.pciex.a-nonfatal@pciexrc, 174400d0963fSdilpreet ereport.io.pciex.rc.ce-msg@pciexrc, 174500d0963fSdilpreet ereport.io.pciex.rc.mce-msg@pciexrc, 174600d0963fSdilpreet ereport.io.pciex.tl.uc@pciexrc, 174700d0963fSdilpreet ereport.io.pci.ma@pciexrc, 174800d0963fSdilpreet ereport.io.pci.rta@pciexrc, 174900d0963fSdilpreet ereport.io.pci.sta@pciexrc, 175000d0963fSdilpreet ereport.io.pci.dpe@pciexrc, 175100d0963fSdilpreet ereport.io.pci.mdpe@pciexrc, 175200d0963fSdilpreet ereport.io.pci.sserr@pciexrc; 175300d0963fSdilpreet 175400d0963fSdilpreet/* 175500d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1756b7d3956bSstephh * rules for propagations from child PCI bus 175700d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 175800d0963fSdilpreet */ 175900d0963fSdilpreet 1760b7d3956bSstephhevent error.io.pci.retry-to-u@PCIEXFN/PCIFN; 1761b7d3956bSstephhevent error.io.pci.ma-u@PCIEXFN/PCIFN; 1762b7d3956bSstephhevent error.io.pci.ta-u@PCIEXFN/PCIFN; 1763b7d3956bSstephhevent error.io.pci.ape-u@PCIEXFN/PCIFN; 1764b7d3956bSstephhevent error.io.pci.source-ape-u@PCIFN; 1765b7d3956bSstephhevent error.io.pci.target-ma-d@PCIFN; 1766b7d3956bSstephhevent error.io.pci.target-rta-d@PCIFN; 1767b7d3956bSstephhevent error.io.pci.badreq-pw-u@PCIEXFN/PCIFN; 1768b7d3956bSstephhevent error.io.pci.badreq-drw-u@PCIEXFN/PCIFN; 1769b7d3956bSstephhevent error.io.pci.source-perr-u@PCIFN; 1770b7d3956bSstephhevent error.io.pci.source-dpdata-u@PCIFN; 1771b7d3956bSstephhevent error.io.pci.dpdata-pw-u@PCIEXFN/PCIFN; 1772b7d3956bSstephhevent error.io.pci.dpdata-dw-u@PCIEXFN/PCIFN; 1773b7d3956bSstephhevent error.io.pci.dpdata-dr-u@PCIEXFN/PCIFN; 1774b7d3956bSstephhevent error.io.pci.perr-pw-u@PCIEXFN/PCIFN; 1775b7d3956bSstephhevent error.io.pci.perr-dw-u@PCIEXFN/PCIFN; 1776b7d3956bSstephhevent error.io.pci.perr-dr-u@PCIEXFN/PCIFN; 1777b7d3956bSstephhevent error.io.pci.serr-u@PCIEXFN/PCIFN; 1778b7d3956bSstephhevent error.io.pcix.scpe-u@PCIEXFN/PCIFN; 1779b7d3956bSstephhevent error.io.pcix.source-scpe-u@PCIFN; 1780b7d3956bSstephhevent error.io.pcix.spl-comp-ma-u@PCIEXFN/PCIFN; 1781b7d3956bSstephhevent error.io.pcix.spl-comp-ta-u@PCIEXFN/PCIFN; 1782b7d3956bSstephhevent error.io.pcix.spl-comp-ma-d@PCIEXFN/PCIFN; 1783b7d3956bSstephhevent error.io.pcix.spl-comp-ta-d@PCIEXFN/PCIFN; 1784b7d3956bSstephhevent error.io.pcix.uscmd@PCIEXFN; 178500d0963fSdilpreet 1786b7d3956bSstephhevent ereport.io.pcix.sec-spl-dis@PCIEXFN{within(5s)}; 1787b7d3956bSstephhevent ereport.io.pciex.bdg.uscmd@PCIEXFN{within(5s)}; 1788b7d3956bSstephhevent ereport.io.pciex.bdg.sec-perr@PCIEXFN{within(5s)}; 1789b7d3956bSstephhevent ereport.io.pciex.bdg.sec-uadr@PCIEXFN{within(5s)}; 1790b7d3956bSstephhevent ereport.io.pciex.bdg.sec-uat@PCIEXFN{within(5s)}; 1791b7d3956bSstephhevent ereport.io.pciex.bdg.sec-serr@PCIEXFN{within(5s)}; 1792b7d3956bSstephhevent ereport.io.pciex.bdg.sec-tex@PCIEXFN{within(5s)}; 1793b7d3956bSstephhevent ereport.io.pciex.bdg.sec-rma@PCIEXFN{within(5s)}; 1794b7d3956bSstephhevent ereport.io.pciex.bdg.sec-rta@PCIEXFN{within(5s)}; 1795b7d3956bSstephhevent ereport.io.pciex.bdg.sec-ma-sc@PCIEXFN{within(5s)}; 1796b7d3956bSstephhevent ereport.io.pciex.bdg.sec-ta-sc@PCIEXFN{within(5s)}; 1797b7d3956bSstephhevent ereport.io.pci.dto@PCIEXFN{within(5s)}; 1798b7d3956bSstephhevent ereport.io.pci.sec-rta@PCIEXFN{within(5s)}; 1799b7d3956bSstephhevent ereport.io.pci.sec-ma@PCIEXFN{within(5s)}; 180000d0963fSdilpreet 180100d0963fSdilpreet/* 180200d0963fSdilpreet * ma-u will only propagate on to pciex bus for non-posted accesses. It 180300d0963fSdilpreet * is then represented as an unsupported request. 180400d0963fSdilpreet */ 1805b7d3956bSstephhprop error.io.pci.ma-u@PCIEXFN/PCIFN (0)-> 1806*b0daa853SStephen Hanson ereport.io.pciex.tl.ur@PCIEXFN, 1807*b0daa853SStephen Hanson error.io.pciex.ur-u@PCIEXFN; 180800d0963fSdilpreet 1809b7d3956bSstephhprop error.io.pci.ma-u@PCIEXFN/PCIFN (2)-> 1810b7d3956bSstephh ereport.io.pci.sec-ma@PCIEXFN, 1811b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 1812b7d3956bSstephh 1813b7d3956bSstephhprop error.io.pci.target-ma-d@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) && 1814b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1815b7d3956bSstephh ereport.io.pciex.bdg.sec-rma@PCIEXFN; 181600d0963fSdilpreet 181700d0963fSdilpreet/* 181800d0963fSdilpreet * ta-u will only propagate on to pciex bus for non-posted accesses. It is 181900d0963fSdilpreet * then represented as a completer abort. 182000d0963fSdilpreet */ 1821b7d3956bSstephhprop error.io.pci.ta-u@PCIEXFN/PCIFN (0)-> 1822b7d3956bSstephh ereport.io.pci.sta@PCIEXFN, 1823*b0daa853SStephen Hanson ereport.io.pciex.tl.ca@PCIEXFN, 1824*b0daa853SStephen Hanson error.io.pciex.ca-u@PCIEXFN; 182500d0963fSdilpreet 1826b7d3956bSstephhprop error.io.pci.ta-u@PCIEXFN/PCIFN (2)-> 1827b7d3956bSstephh ereport.io.pci.sec-rta@PCIEXFN, 1828b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 1829b7d3956bSstephh 1830b7d3956bSstephhprop error.io.pci.target-rta-d@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) && 1831b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1832b7d3956bSstephh ereport.io.pciex.bdg.sec-rta@PCIEXFN; 183300d0963fSdilpreet 183400d0963fSdilpreet/* 183500d0963fSdilpreet * PERR# on a delayed write is represented as an unsupported request 183600d0963fSdilpreet */ 1837b7d3956bSstephhprop error.io.pci.perr-dw-u@PCIEXFN/PCIFN (1)-> 1838b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN; 183900d0963fSdilpreet 1840b7d3956bSstephhprop error.io.pci.perr-dw-u@PCIEXFN/PCIFN (0)-> 1841b7d3956bSstephh error.io.pciex.flt-ur-u@PCIEXFN; 184200d0963fSdilpreet 1843b7d3956bSstephhprop error.io.pci.perr-pw-u@PCIEXFN/PCIFN (1)-> 1844b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN; 184500d0963fSdilpreet 1846b7d3956bSstephhprop error.io.pci.perr-pw-u@PCIEXFN/PCIFN (0)-> 1847b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 184800d0963fSdilpreet 1849b7d3956bSstephhprop error.io.pci.perr-dr-u@PCIEXFN/PCIFN (1)-> 1850b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 185100d0963fSdilpreet 1852b7d3956bSstephhprop error.io.pci.source-perr-u@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) && 1853b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1854b7d3956bSstephh ereport.io.pciex.bdg.sec-perr@PCIEXFN; 185500d0963fSdilpreet 185600d0963fSdilpreet/* 185700d0963fSdilpreet * If the bridge receives data with bad ecc/parity from pci/pci-x, it will 185800d0963fSdilpreet * propagate onto pci express as a poisoned tlp 185900d0963fSdilpreet */ 1860b7d3956bSstephhprop error.io.pci.dpdata-dr-u@PCIEXFN/PCIFN (2)-> 1861b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1862b7d3956bSstephh error.io.pciex.poiscomp-u@PCIEXFN; 186300d0963fSdilpreet 1864b7d3956bSstephhprop error.io.pci.dpdata-dr-u@PCIEXFN/PCIFN (0)-> 1865b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN; 1866eae2e508Skrishnae 1867b7d3956bSstephhprop error.io.pci.dpdata-dr-u@PCIEXFN/PCIFN (1)-> 1868b7d3956bSstephh ereport.io.pci.sec-mdpe@PCIEXFN, 1869b7d3956bSstephh ereport.io.pci.mdpe@PCIEXFN; 187000d0963fSdilpreet 1871b7d3956bSstephhprop error.io.pci.dpdata-dw-u@PCIEXFN/PCIFN (1)-> 1872b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN; 187300d0963fSdilpreet 1874b7d3956bSstephhprop error.io.pci.dpdata-dw-u@PCIEXFN/PCIFN (0)-> 1875b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1876b7d3956bSstephh error.io.pciex.poisreq-u@PCIEXFN, 1877b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1878b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1879b7d3956bSstephh error.io.pci.ta-drw-d@PCIEXFN/PCIFN; 188000d0963fSdilpreet 1881b7d3956bSstephhprop error.io.pci.dpdata-pw-u@PCIEXFN/PCIFN (2)-> 1882b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1883b7d3956bSstephh error.io.pciex.poisreq-u@PCIEXFN; 18848aec9182Sstephh 1885b7d3956bSstephhprop error.io.pci.dpdata-pw-u@PCIEXFN/PCIFN (0)-> 1886b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1887b7d3956bSstephh ereport.io.pci.ma@PCIEXFN; 1888b7d3956bSstephh 1889b7d3956bSstephhprop error.io.pci.source-dpdata-u@PCIFN { is_under(pciexrc, PCIFN) } (0)-> 1890b7d3956bSstephh ereport.io.pciex.tl.ptlp@pciexrc, 1891b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc; 1892b7d3956bSstephh 1893b7d3956bSstephhprop error.io.pci.source-dpdata-u@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) 1894b7d3956bSstephh && SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1895b7d3956bSstephh ereport.io.pciex.bdg.sec-ude@PCIEXFN; 189600d0963fSdilpreet 189700d0963fSdilpreet/* 189800d0963fSdilpreet * If the bridge sees an address or attribute parity error it is considered 189900d0963fSdilpreet * a fatal error. 190000d0963fSdilpreet */ 1901b7d3956bSstephhprop error.io.pci.ape-u@PCIEXFN/PCIFN (2)-> 1902b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1903b7d3956bSstephh error.io.pciex.fatal@PCIEXFN; 190400d0963fSdilpreet 1905b7d3956bSstephhprop error.io.pci.source-ape-u@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) && 1906b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1907b7d3956bSstephh ereport.io.pciex.bdg.sec-uat@PCIEXFN, 1908b7d3956bSstephh ereport.io.pciex.bdg.sec-uadr@PCIEXFN; 190900d0963fSdilpreet 1910b7d3956bSstephhprop error.io.pci.ape-u@PCIEXFN/PCIFN (0)-> 1911b7d3956bSstephh ereport.io.pci.sec-rserr@PCIEXFN, 1912b7d3956bSstephh ereport.io.pciex.bdg.sec-serr@PCIEXFN, 1913b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 191400d0963fSdilpreet 191500d0963fSdilpreet/* 191600d0963fSdilpreet * If the bridge sees a split completion error (pci-x only) it could 191700d0963fSdilpreet * result in a number of things 191800d0963fSdilpreet * - unrecovered split completion message data error (uscmd). This would 191900d0963fSdilpreet * happen on a pio write. A completer abort is returned to the initiator. 192000d0963fSdilpreet * - for various faults in the split completion (eg address parity error) 192100d0963fSdilpreet * we will respond with a target abort (which the child device will treat 192200d0963fSdilpreet * as a split completion ta) 192300d0963fSdilpreet * - for other faults we can't tell who send the split completion and so 192400d0963fSdilpreet * just drop the request (which the child device sees as a split 192500d0963fSdilpreet * completion ma) 192600d0963fSdilpreet */ 1927b7d3956bSstephhprop error.io.pcix.scpe-u@PCIEXFN/PCIFN (0)-> 1928b7d3956bSstephh ereport.io.pci.sec-dpe@PCIEXFN, 1929b7d3956bSstephh ereport.io.pci.sec-rserr@PCIEXFN, 1930b7d3956bSstephh ereport.io.pciex.bdg.sec-serr@PCIEXFN, 1931b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN, 1932b7d3956bSstephh error.io.pciex.fatal@PCIEXFN; 193300d0963fSdilpreet 1934b7d3956bSstephhprop error.io.pcix.source-scpe-u@PCIFN1 { IS_BG(PCIEXFN) && IS_PCI_LF(PCIFN1) && 1935b7d3956bSstephh SOURCE_ID_MATCHES_BDF && is_under(PCIEXFN, PCIFN1) } (0)-> 1936b7d3956bSstephh ereport.io.pciex.bdg.sec-uat@PCIEXFN, 1937b7d3956bSstephh ereport.io.pciex.bdg.sec-uadr@PCIEXFN; 193800d0963fSdilpreet 1939b7d3956bSstephhprop error.io.pcix.scpe-u@PCIEXFN/PCIFN (1)-> 1940b7d3956bSstephh error.io.pcix.uscmd@PCIEXFN, 1941b7d3956bSstephh error.io.pcix.spl-comp-ma-d@PCIEXFN/PCIFN, 1942b7d3956bSstephh error.io.pcix.spl-comp-ta-d@PCIEXFN/PCIFN; 194300d0963fSdilpreet 1944b7d3956bSstephhprop error.io.pcix.uscmd@PCIEXFN (4)-> 1945b7d3956bSstephh error.io.pciex.fatal@PCIEXFN, 1946b7d3956bSstephh ereport.io.pci.sta@PCIEXFN, 1947b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN, 1948b7d3956bSstephh ereport.io.pciex.bdg.uscmd@PCIEXFN; 1949b7d3956bSstephh 1950*b0daa853SStephen Hansonprop error.io.pcix.uscmd@PCIEXFN (0)-> 1951*b0daa853SStephen Hanson error.io.pciex.ca-u@PCIEXFN; 195200d0963fSdilpreet 195300d0963fSdilpreet/* 195400d0963fSdilpreet * Similarly a child device may have responded with a master abort or 195500d0963fSdilpreet * target abort to one of our split competions. The hardware just logs these. 195600d0963fSdilpreet */ 1957b7d3956bSstephhprop error.io.pcix.spl-comp-ma-u@PCIEXFN/PCIFN (3)-> 1958b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1959b7d3956bSstephh ereport.io.pcix.sec-spl-dis@PCIEXFN, 1960b7d3956bSstephh ereport.io.pciex.bdg.sec-ma-sc@PCIEXFN; 19618aec9182Sstephh 1962b7d3956bSstephhprop error.io.pcix.spl-comp-ma-u@PCIEXFN/PCIFN (0)-> 1963b7d3956bSstephh ereport.io.pci.sec-ma@PCIEXFN; 196400d0963fSdilpreet 1965b7d3956bSstephhprop error.io.pcix.spl-comp-ta-u@PCIEXFN/PCIFN (4)-> 1966b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1967b7d3956bSstephh ereport.io.pcix.sec-spl-dis@PCIEXFN, 1968b7d3956bSstephh ereport.io.pciex.bdg.sec-ta-sc@PCIEXFN, 1969b7d3956bSstephh ereport.io.pci.sec-rta@PCIEXFN; 197000d0963fSdilpreet 197100d0963fSdilpreet/* 197200d0963fSdilpreet * SERR# is considered fatal 197300d0963fSdilpreet */ 1974b7d3956bSstephhprop error.io.pci.serr-u@PCIEXFN/PCIFN (3)-> 1975b7d3956bSstephh error.io.pciex.fatal@PCIEXFN, 1976b7d3956bSstephh ereport.io.pci.sec-rserr@PCIEXFN, 1977b7d3956bSstephh ereport.io.pciex.bdg.sec-serr@PCIEXFN; 197800d0963fSdilpreet 197900d0963fSdilpreet/* 198000d0963fSdilpreet * Retry time-out is nonfatal. The initial requester has stopped retrying so 198100d0963fSdilpreet * there's nothing else the hardware can do but flag the error. 198200d0963fSdilpreet */ 1983b7d3956bSstephhprop error.io.pci.retry-to-u@PCIEXFN/PCIFN (2)-> 1984b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN, 1985b7d3956bSstephh ereport.io.pciex.bdg.sec-tex@PCIEXFN; 198600d0963fSdilpreet 1987b7d3956bSstephhprop error.io.pci.retry-to-u@PCIEXFN/PCIFN (0)-> 1988b7d3956bSstephh ereport.io.pci.sta@PCIEXFN, 1989*b0daa853SStephen Hanson ereport.io.pci.dto@PCIEXFN, 1990*b0daa853SStephen Hanson error.io.pciex.ca-u@PCIEXFN; 199100d0963fSdilpreet 199200d0963fSdilpreet/* 199300d0963fSdilpreet * A bad dma request (eg with invalid address) propagates onto pci express 199400d0963fSdilpreet * as a bad dma request. The end result may be a master abort or target abort 199500d0963fSdilpreet * (depending on whether the child is pci-x or pci). 199600d0963fSdilpreet */ 1997b7d3956bSstephhprop error.io.pci.badreq-pw-u@PCIEXFN/PCIFN (0)-> 1998b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 1999b7d3956bSstephh ereport.io.pci.rta@PCIEXFN, 2000*b0daa853SStephen Hanson error.io.pciex.badreq-u@PCIEXFN, 2001b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 200200d0963fSdilpreet 2003b7d3956bSstephhprop error.io.pci.badreq-pw-u@PCIEXFN/PCIFN { 2004b7d3956bSstephh is_under(pciexrc, PCIEXFN/PCIFN) } (0)-> 2005b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc, 2006*b0daa853SStephen Hanson ereport.io.pciex.tl.ca@pciexrc; 2007b7d3956bSstephh 2008b7d3956bSstephhprop error.io.pci.badreq-pw-u@PCIEXFN/PCIFN { IS_SD(PCIEXFN1) && 2009b7d3956bSstephh is_under(PCIEXFN1, PCIEXFN/PCIFN) } (0)-> 2010b7d3956bSstephh ereport.io.pciex.tl.ur@PCIEXFN1, 2011b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN1, 2012b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN1, 2013b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN1; 2014b7d3956bSstephh 2015b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIEXFN/PCIFN (0)-> 2016b7d3956bSstephh ereport.io.pci.ma@PCIEXFN, 2017b7d3956bSstephh ereport.io.pci.rta@PCIEXFN, 2018*b0daa853SStephen Hanson error.io.pciex.badreq-u@PCIEXFN, 2019b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN; 2020b7d3956bSstephh 2021b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIEXFN/PCIFN { 2022b7d3956bSstephh is_under(pciexrc, PCIEXFN/PCIFN) } (0)-> 2023b7d3956bSstephh ereport.io.pciex.tl.ur@pciexrc, 2024*b0daa853SStephen Hanson ereport.io.pciex.tl.ca@pciexrc; 2025b7d3956bSstephh 2026b7d3956bSstephhprop error.io.pci.badreq-drw-u@PCIEXFN/PCIFN { IS_SD(PCIEXFN1) && 2027b7d3956bSstephh is_under(PCIEXFN1, PCIEXFN/PCIFN) } (0)-> 2028b7d3956bSstephh ereport.io.pciex.tl.ur@PCIEXFN1, 2029b7d3956bSstephh ereport.io.pciex.tl.ca@PCIEXFN1, 2030b7d3956bSstephh ereport.io.pci.sec-sta@PCIEXFN1, 2031b7d3956bSstephh error.io.pciex.nonfatal@PCIEXFN1; 203200d0963fSdilpreet 203300d0963fSdilpreet/* 203400d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2035b7d3956bSstephh * target- propagations 203600d0963fSdilpreet * 203700d0963fSdilpreet * A Root Complex driver may generate "target-" ereports when knowledge of the 203800d0963fSdilpreet * physical address associated with a fault allows the target device to be 203900d0963fSdilpreet * determined. This is not a requirement of the Diagnosis Engine, but can be 204000d0963fSdilpreet * valuable when available. 204100d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 204200d0963fSdilpreet */ 2043b7d3956bSstephhevent error.io.pci.target-ma-d@PCIEXFN/PCIFN; 2044b7d3956bSstephhevent error.io.pci.target-rta-d@PCIEXFN/PCIFN; 2045b7d3956bSstephhevent ereport.io.pci.target-rta@PCIEXFN{within(5s)}; 2046b7d3956bSstephhevent ereport.io.pci.target-ma@PCIEXFN{within(5s)}; 204700d0963fSdilpreet 2048b7d3956bSstephhprop error.io.pci.target-ma-d@PCIEXFN (0)-> 204926733bfeSStephen Hanson ereport.io.pci.target-ma@PCIEXFN, 205026733bfeSStephen Hanson ereport.io.pci.target-ma@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 205126733bfeSStephen Hanson error.io.pci.target-ma-d@PCIEXFNHZ/PCIFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }; 205200d0963fSdilpreet 2053b7d3956bSstephhprop error.io.pci.target-rta-d@PCIEXFN (0)-> 205426733bfeSStephen Hanson ereport.io.pci.target-rta@PCIEXFN, 205526733bfeSStephen Hanson ereport.io.pci.target-rta@PCIEXFNHZ { is_under(PCIEXFN, PCIEXFNHZ) }, 205626733bfeSStephen Hanson error.io.pci.target-rta-d@PCIEXFNHZ/PCIFNHZ { is_under(PCIEXFN,PCIEXFNHZ) }; 205700d0963fSdilpreet 205800d0963fSdilpreet/* 205900d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 206000d0963fSdilpreet * stub unused pciex-pci bridge ereports 206100d0963fSdilpreet * - ignore usc/sec-unex-spl 206200d0963fSdilpreet * - ignore sec-spl-or/sec-spl-dly as these aren't really faults (tuning info) 206300d0963fSdilpreet * - ignore ecc.ue ereports (we get everything we need from dpe/mdpe) 206400d0963fSdilpreet * - ignore ecc.ce ereports for now (could do serd on these) 206500d0963fSdilpreet * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 206600d0963fSdilpreet */ 206700d0963fSdilpreet 2068b7d3956bSstephhevent ereport.io.pciex.bdg.usc@PCIEXFN{within(5s)}; 2069b7d3956bSstephhevent ereport.io.pcix.sec-unex-spl@PCIEXFN{within(5s)}; 2070b7d3956bSstephhevent ereport.io.pcix.sec-spl-or@PCIEXFN{within(5s)}; 2071b7d3956bSstephhevent ereport.io.pcix.sec-spl-dly@PCIEXFN{within(5s)}; 2072b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-addr@PCIEXFN{within(5s)}; 2073b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-attr@PCIEXFN{within(5s)}; 2074b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ce-data@PCIEXFN{within(5s)}; 2075b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-addr@PCIEXFN{within(5s)}; 2076b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-attr@PCIEXFN{within(5s)}; 2077b7d3956bSstephhevent ereport.io.pcix.sec-ecc.ue-data@PCIEXFN{within(5s)}; 2078b7d3956bSstephhevent ereport.io.pcix.sec-s-ce@PCIEXFN{within(5s)}; 2079b7d3956bSstephhevent ereport.io.pcix.sec-s-ue@PCIEXFN{within(5s)}; 208000d0963fSdilpreet 2081b7d3956bSstephhevent upset.io.pciex.discard-bdg@PCIEXFN; 208200d0963fSdilpreet 2083b7d3956bSstephhprop upset.io.pciex.discard-bdg@PCIEXFN (1)-> 2084b7d3956bSstephh ereport.io.pciex.bdg.usc@PCIEXFN, 2085b7d3956bSstephh ereport.io.pcix.sec-unex-spl@PCIEXFN, 2086b7d3956bSstephh ereport.io.pcix.sec-spl-or@PCIEXFN, 2087b7d3956bSstephh ereport.io.pcix.sec-spl-dly@PCIEXFN, 2088b7d3956bSstephh ereport.io.pcix.sec-ecc.ce-addr@PCIEXFN, 2089b7d3956bSstephh ereport.io.pcix.sec-ecc.ce-attr@PCIEXFN, 2090b7d3956bSstephh ereport.io.pcix.sec-ecc.ce-data@PCIEXFN, 2091b7d3956bSstephh ereport.io.pcix.sec-ecc.ue-addr@PCIEXFN, 2092b7d3956bSstephh ereport.io.pcix.sec-ecc.ue-attr@PCIEXFN, 2093b7d3956bSstephh ereport.io.pcix.sec-ecc.ue-data@PCIEXFN, 2094b7d3956bSstephh ereport.io.pcix.sec-s-ce@PCIEXFN, 2095b7d3956bSstephh ereport.io.pcix.sec-s-ue@PCIEXFN; 2096