xref: /onnv-gate/usr/src/cmd/fm/eversholt/files/sparc/sun4/fire.esc (revision 9921:0c3d84a756da)
1606Svn83148/*
2606Svn83148 * CDDL HEADER START
3606Svn83148 *
4606Svn83148 * The contents of this file are subject to the terms of the
53274Set142600 * Common Development and Distribution License (the "License").
63274Set142600 * You may not use this file except in compliance with the License.
7606Svn83148 *
8606Svn83148 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9606Svn83148 * or http://www.opensolaris.org/os/licensing.
10606Svn83148 * See the License for the specific language governing permissions
11606Svn83148 * and limitations under the License.
12606Svn83148 *
13606Svn83148 * When distributing Covered Code, include this CDDL HEADER in each
14606Svn83148 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15606Svn83148 * If applicable, add the following below this CDDL HEADER, with the
16606Svn83148 * fields enclosed by brackets "[]" replaced with your own identifying
17606Svn83148 * information: Portions Copyright [yyyy] [name of copyright owner]
18606Svn83148 *
19606Svn83148 * CDDL HEADER END
20606Svn83148 */
213325Ssd77468/*
22*9921SKrishna.Elango@Sun.COM * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
233325Ssd77468 * Use is subject to license terms.
243325Ssd77468 */
25606Svn83148
26606Svn83148#pragma dictionary "SUN4"
27606Svn83148
28606Svn83148/*
29606Svn83148 * Eversholt rules for the Fire nexus driver
30606Svn83148 */
31606Svn83148
323989Set142600#define SW_FIT			5000	/* No real fit rate, SW */
333989Set142600#define HV_FIT			5000	/* No real fit rate, SW */
343989Set142600#define SW_HV_MISMATCH_FIT	20000	/* No real fit rate, SW */
353325Ssd77468#define HB_FIT			400
363325Ssd77468#define HBUS_FIT		400
373325Ssd77468#define CPU_FIT			500
38606Svn83148#define PCI_DEV_FIT		1000
39606Svn83148#define PCIEX_DEV_FIT		1000
40606Svn83148#define EBUS_FIT		1000
41606Svn83148#define LINK_EVENTS_COUNT	10
42606Svn83148#define LINK_EVENTS_TIME	1h
433274Set142600#define	CE_EVENTS_COUNT		10
443274Set142600#define	CE_EVENTS_TIME		1h
453325Ssd77468
46606Svn83148/*
473274Set142600 * Macros for CE Fabric ereports
485546Smb91622 *
495546Smb91622 * The current kernel sends ereports with a severity of PF_CE and PF_NO_ERROR.
505546Smb91622 * However, a simple change in the kernel may end up sending only a severity
515546Smb91622 * of PF_CE for CE errors. Since both methods are correct, we match on
525546Smb91622 * an ereport severity of either PF_CE only or PF_CE plus PF_NO_ERROR.
533274Set142600 */
545546Smb91622#define	PF_NO_ERROR (1 << 0)
553274Set142600#define	PF_CE (1 << 1)
565546Smb91622#define	MATCH_CE ((payloadprop("severity") == PF_CE) || \
575546Smb91622    (payloadprop("severity") == (PF_CE | PF_NO_ERROR)))
583274Set142600
596313Skrishnae
606313Skrishnae#define MATCH_UNRECOGNIZED ((payloadprop("sysino") == 0) && \
616313Skrishnae    (payloadprop("ehdl") == 0) && \
626313Skrishnae    (payloadprop("stick") == 0))
636313Skrishnae
643274Set142600/*
65606Svn83148 * Test for primary or secondary ereports
66606Svn83148 */
67606Svn83148#define IS_PRIMARY (payloadprop("primary"))
68606Svn83148#define IS_SECONDARY (! payloadprop("primary"))
69606Svn83148
70606Svn83148/*
713325Ssd77468 * payload: imu-rds
72606Svn83148 *
733325Ssd77468 * Extract the request id, the BDF, value in the IMU RDS log register
74606Svn83148 * Example:
75606Svn83148 *   0x7766554433221100
76606Svn83148 *         ^^^^
77606Svn83148 */
783325Ssd77468#define IMU_MATCH_BDF(b, d, f) \
793325Ssd77468	( IS_PRIMARY && ((payloadprop("imu-rds") >> 32) & 0xFFFF) == \
803325Ssd77468		((b << 8) | (d << 3) | f))
81606Svn83148
823325Ssd77468/***************
833325Ssd77468 * JBC ereports
843325Ssd77468 ***************/
853325Ssd77468event ereport.io.fire.jbc.ape@hostbridge/pciexrc{within(5s)};
863325Ssd77468event ereport.io.fire.jbc.bjc@hostbridge/pciexrc{within(5s)};
873325Ssd77468event ereport.io.fire.jbc.ce_asyn@hostbridge/pciexrc{within(5s)};
883325Ssd77468event ereport.io.fire.jbc.cpe@hostbridge/pciexrc{within(5s)};
893325Ssd77468event ereport.io.fire.jbc.ebus_to@hostbridge/pciexrc{within(5s)};
903325Ssd77468event ereport.io.fire.jbc.ebus_to@hostbridge{within(5s)};
913325Ssd77468event ereport.io.fire.jbc.icise@hostbridge/pciexrc{within(5s)};
923325Ssd77468event ereport.io.fire.jbc.ijp@hostbridge/pciexrc{within(5s)};
93606Svn83148event ereport.io.fire.jbc.ill_acc@hostbridge/pciexrc{within(5s)};
94606Svn83148event ereport.io.fire.jbc.ill_acc_rd@hostbridge/pciexrc{within(5s)};
953325Ssd77468event ereport.io.fire.jbc.ill_bmr@hostbridge/pciexrc{within(5s)};
963325Ssd77468event ereport.io.fire.jbc.ill_bmw@hostbridge/pciexrc{within(5s)};
973325Ssd77468event ereport.io.fire.jbc.jbe@hostbridge/pciexrc{within(5s)};
983325Ssd77468event ereport.io.fire.jbc.jtceei@hostbridge/pciexrc{within(5s)};
993325Ssd77468event ereport.io.fire.jbc.jtceer@hostbridge/pciexrc{within(5s)};
1003325Ssd77468event ereport.io.fire.jbc.jtceew@hostbridge/pciexrc{within(5s)};
1013325Ssd77468event ereport.io.fire.jbc.jte@hostbridge/pciexrc{within(5s)};
1023325Ssd77468event ereport.io.fire.jbc.jue@hostbridge/pciexrc{within(5s)};
1033325Ssd77468event ereport.io.fire.jbc.mb_pea@hostbridge/pciexrc{within(5s)};
104606Svn83148event ereport.io.fire.jbc.mb_per@hostbridge/pciexrc{within(5s)};
105606Svn83148event ereport.io.fire.jbc.mb_pew@hostbridge/pciexrc{within(5s)};
1063325Ssd77468event ereport.io.fire.jbc.pio_cpe@hostbridge/pciexrc{within(5s)};
1073325Ssd77468event ereport.io.fire.jbc.pio_dpe@hostbridge/pciexrc{within(5s)};
108606Svn83148event ereport.io.fire.jbc.pio_unmap@hostbridge/pciexrc{within(5s)};
109606Svn83148event ereport.io.fire.jbc.pio_unmap_rd@hostbridge/pciexrc{within(5s)};
1103325Ssd77468event ereport.io.fire.jbc.rd_dpe@hostbridge/pciexrc{within(5s)};
1113325Ssd77468event ereport.io.fire.jbc.ue_asyn@hostbridge/pciexrc{within(5s)};
1123325Ssd77468event ereport.io.fire.jbc.unsol_intr@hostbridge/pciexrc{within(5s)};
113606Svn83148event ereport.io.fire.jbc.unsol_rd@hostbridge/pciexrc{within(5s)};
1143325Ssd77468event ereport.io.fire.jbc.wr_dpe@hostbridge/pciexrc{within(5s)};
115606Svn83148
1163325Ssd77468/***************
117606Svn83148 * DMC ereports
1183325Ssd77468 ***************/
1193325Ssd77468event ereport.io.fire.dmc.cor_not_en@hostbridge/pciexrc{within(5s)};
1203325Ssd77468event ereport.io.fire.dmc.eq_not_en@hostbridge/pciexrc{within(5s)};
1213325Ssd77468event ereport.io.fire.dmc.eq_over@hostbridge/pciexrc{within(5s)};
1223325Ssd77468event ereport.io.fire.dmc.fatal_not_en@hostbridge/pciexrc{within(5s)};
1233325Ssd77468event ereport.io.fire.dmc.msi_mal_err@hostbridge/pciexrc{within(5s)};
1243325Ssd77468event ereport.io.fire.dmc.msi_not_en@hostbridge/pciexrc{within(5s)};
1253325Ssd77468event ereport.io.fire.dmc.msi_par_err@hostbridge/pciexrc{within(5s)};
1263325Ssd77468event ereport.io.fire.dmc.nonfatal_not_en@hostbridge/pciexrc{within(5s)};
1273325Ssd77468event ereport.io.fire.dmc.pmeack_not_en@hostbridge/pciexrc{within(5s)};
1283325Ssd77468event ereport.io.fire.dmc.pmpme_not_en@hostbridge/pciexrc{within(5s)};
1293325Ssd77468event ereport.io.fire.dmc.tbw_dme@hostbridge/pciexrc{within(5s)};
1303325Ssd77468event ereport.io.fire.dmc.tbw_dpe@hostbridge/pciexrc{within(5s)};
1313325Ssd77468event ereport.io.fire.dmc.tbw_err@hostbridge/pciexrc{within(5s)};
1323325Ssd77468event ereport.io.fire.dmc.tbw_ude@hostbridge/pciexrc{within(5s)};
133606Svn83148event ereport.io.fire.dmc.trn_err@hostbridge/pciexrc{within(5s)};
1343325Ssd77468event ereport.io.fire.dmc.ttc_cae@hostbridge/pciexrc{within(5s)};
1353325Ssd77468event ereport.io.fire.dmc.ttc_dpe@hostbridge/pciexrc{within(5s)};
136606Svn83148
1373325Ssd77468/***************
138606Svn83148 * TLU Other Event ereports
1393325Ssd77468 ***************/
1403325Ssd77468event ereport.io.fire.pec.crs@hostbridge/pciexrc{within(5s)};
1413325Ssd77468event ereport.io.fire.pec.edp@hostbridge/pciexrc{within(5s)};
1423325Ssd77468event ereport.io.fire.pec.ehp@hostbridge/pciexrc{within(5s)};
1433325Ssd77468event ereport.io.fire.pec.eip@hostbridge/pciexrc{within(5s)};
1443325Ssd77468event ereport.io.fire.pec.erp@hostbridge/pciexrc{within(5s)};
145606Svn83148event ereport.io.fire.pec.ihb_pe@hostbridge/pciexrc{within(5s)};
146606Svn83148event ereport.io.fire.pec.iip@hostbridge/pciexrc{within(5s)};
1473325Ssd77468event ereport.io.fire.pec.ldn@hostbridge/pciexrc{within(5s)};
1483325Ssd77468event ereport.io.fire.pec.lin@hostbridge/pciexrc{within(5s)};
1493325Ssd77468event ereport.io.fire.pec.lrs@hostbridge/pciexrc{within(5s)};
1503325Ssd77468event ereport.io.fire.pec.lup@hostbridge/pciexrc{within(5s)};
1513325Ssd77468event ereport.io.fire.pec.mrc@hostbridge/pciexrc{within(5s)};
152606Svn83148
1533325Ssd77468/***************
154606Svn83148 * Fire Fabric ereport
1553325Ssd77468 * -------------
156606Svn83148 * Whenever a leaf device sends an error message (fatal, non-fatal, or CE) to
157606Svn83148 * root complex, the nexus driver publishes this ereport to log the ereport.
1583325Ssd77468 ***************/
1593274Set142600event ereport.io.fire.fabric@pciexbus/pciexdev/pciexfn {within(1s)};
1603274Set142600event ereport.io.fire.fabric@pcibus/pcidev/pcifn {within(1s)};
1613325Ssd77468event error.io.fire.fabric-sib@hostbridge/pciexrc;
1623325Ssd77468event error.io.fire.fabric@pciexbus/pciexdev/pciexfn;
1633325Ssd77468event error.io.fire.fabric@pcibus/pcidev/pcifn;
164606Svn83148
1653325Ssd77468/***************
1663325Ssd77468 * sun4v unknown error packets
1673325Ssd77468 * -------------
1683325Ssd77468 * In a sun4v system, if HV sends an epkt to the guest the following wrong
1693325Ssd77468 * things can happen.
1703325Ssd77468 * o HV sends malformed epkt
1713325Ssd77468 * o Guest has coding error and doesn't understand epkt
1723325Ssd77468 * o HV and Guest are out of sync.
1733325Ssd77468 ***************/
1743325Ssd77468event ereport.io.fire.epkt@hostbridge/pciexrc {within(5s)};
175*9921SKrishna.Elango@Sun.COMevent ereport.io.fire.epkt@hostbridge {within(5s)};
176606Svn83148
1773325Ssd77468/******************************
1783325Ssd77468 * Generic Rules Begin Here   *
1793325Ssd77468 ******************************/
1803325Ssd77468
1813325Ssd77468/***************
1823325Ssd77468 * Fire Asic HW error
1833325Ssd77468 * -------------
1843325Ssd77468 * Errors caused by parity or unexpected behaviors in the asic.
1853325Ssd77468 ***************/
186606Svn83148fru hostbridge/pciexrc;
187606Svn83148asru hostbridge/pciexrc;
188606Svn83148event fault.io.fire.asic@hostbridge/pciexrc,
1893325Ssd77468    FITrate=HB_FIT,
1903325Ssd77468    ASRU=hostbridge/pciexrc,
1913325Ssd77468    FRU=hostbridge/pciexrc;
192606Svn83148
1933325Ssd77468event error.io.fire.jbc.asic@hostbridge/pciexrc;
1943325Ssd77468event error.io.fire.dmc.asic@hostbridge/pciexrc;
1953325Ssd77468event error.io.fire.pec.asic@hostbridge/pciexrc;
196606Svn83148
1973325Ssd77468prop fault.io.fire.asic@hostbridge/pciexrc (0)->
1983325Ssd77468    error.io.fire.jbc.asic@hostbridge/pciexrc,
1993325Ssd77468    error.io.fire.dmc.asic@hostbridge/pciexrc,
2003325Ssd77468    error.io.fire.pec.asic@hostbridge/pciexrc;
201606Svn83148
2023325Ssd77468/***************
2033989Set142600 * Fire PX SW/HV error
2043325Ssd77468 * -------------
2053989Set142600 * Errors caused by bad SW or HV
2063325Ssd77468 ***************/
2077197Sstephhevent fault.io.fire.sw-epkt@hostbridge/pciexrc, retire=0, response=0,
2083989Set142600    FITrate=SW_FIT;
2097197Sstephhevent fault.io.fire.fw-epkt@hostbridge/pciexrc, retire=0, response=0,
2103989Set142600    FITrate=HV_FIT;
2117197Sstephhevent fault.io.fire.sw-fw-mismatch@hostbridge/pciexrc, retire=0, response=0,
2123989Set142600    FITrate=SW_HV_MISMATCH_FIT;
213*9921SKrishna.Elango@Sun.COMevent fault.io.fire.sw-epkt@hostbridge, retire=0, response=0,
214*9921SKrishna.Elango@Sun.COM    FITrate=SW_FIT;
215*9921SKrishna.Elango@Sun.COMevent fault.io.fire.fw-epkt@hostbridge, retire=0, response=0,
216*9921SKrishna.Elango@Sun.COM    FITrate=HV_FIT;
217*9921SKrishna.Elango@Sun.COMevent fault.io.fire.sw-fw-mismatch@hostbridge, retire=0, response=0,
218*9921SKrishna.Elango@Sun.COM    FITrate=SW_HV_MISMATCH_FIT;
2197197Sstephhevent fault.io.fire.hb.sw-config@hostbridge/pciexrc, retire=0, response=0,
2203989Set142600    FITrate=SW_FIT;
2217197Sstephhevent fault.io.fire.dmc.sw-algorithm@hostbridge/pciexrc, retire=0, response=0,
2223989Set142600    FITrate=SW_FIT;
2237197Sstephhevent fault.io.fire.dmc.sw-state@hostbridge/pciexrc, retire=0, response=0,
2243989Set142600    FITrate=SW_FIT;
2257197Sstephhevent fault.io.fire.pec.sw-algorithm@hostbridge/pciexrc, retire=0, response=0,
2263989Set142600    FITrate=SW_FIT;
2273989Set142600
2283325Ssd77468event error.io.fire.jbc.driver@hostbridge/pciexrc;
2293325Ssd77468event error.io.fire.dmc.driver@hostbridge/pciexrc;
2303325Ssd77468event error.io.fire.dmc.bad_state@hostbridge/pciexrc;
231606Svn83148
2323989Set142600prop fault.io.fire.sw-epkt@hostbridge/pciexrc,
2333989Set142600	fault.io.fire.fw-epkt@hostbridge/pciexrc,
2343989Set142600	fault.io.fire.sw-fw-mismatch@hostbridge/pciexrc->(A)
2356313Skrishnae    ereport.io.fire.epkt@hostbridge/pciexrc { MATCH_UNRECOGNIZED };
236606Svn83148
237*9921SKrishna.Elango@Sun.COMprop fault.io.fire.sw-epkt@hostbridge,
238*9921SKrishna.Elango@Sun.COM	fault.io.fire.fw-epkt@hostbridge,
239*9921SKrishna.Elango@Sun.COM	fault.io.fire.sw-fw-mismatch@hostbridge->(A)
240*9921SKrishna.Elango@Sun.COM    ereport.io.fire.epkt@hostbridge { MATCH_UNRECOGNIZED };
241*9921SKrishna.Elango@Sun.COM
2423989Set142600prop fault.io.fire.hb.sw-config@hostbridge/pciexrc (0)->
2433989Set142600    error.io.fire.jbc.driver@hostbridge/pciexrc;
2443989Set142600
2453989Set142600prop fault.io.fire.dmc.sw-algorithm@hostbridge/pciexrc (0)->
2463989Set142600    error.io.fire.dmc.driver@hostbridge/pciexrc;
2473989Set142600
2483989Set142600prop fault.io.fire.dmc.sw-state@hostbridge/pciexrc (0)->
2493989Set142600    error.io.fire.dmc.bad_state@hostbridge/pciexrc;
2503989Set142600
2513325Ssd77468/***************
2523325Ssd77468 * PCI-E/PCI device fault and SW defects
2533325Ssd77468 ***************/
254606Svn83148fru pciexbus/pciexdev;
255606Svn83148asru pciexbus/pciexdev/pciexfn;
256606Svn83148event fault.io.fire.pciex.device@pciexbus/pciexdev/pciexfn,
257606Svn83148    FRU=pciexbus/pciexdev,
258606Svn83148    ASRU=pciexbus/pciexdev/pciexfn,
259606Svn83148    FITrate=PCIEX_DEV_FIT;
260606Svn83148
261606Svn83148fru pcibus/pcidev;
262606Svn83148asru pcibus/pcidev/pcifn;
263606Svn83148event fault.io.fire.pci.device@pcibus/pcidev/pcifn,
264606Svn83148    FITrate=PCI_DEV_FIT,
265606Svn83148    FRU=pcibus/pcidev,
266606Svn83148    ASRU=pcibus/pcidev/pcifn;
267606Svn83148
2683325Ssd77468/******************************
2693325Ssd77468 * JBC Rules Begin Here       *
2703325Ssd77468 ******************************/
2713325Ssd77468
2723325Ssd77468/***************
2733325Ssd77468 * EBUS fault
2743325Ssd77468 * -------------
2753325Ssd77468 * Errors involving the ebus
2763325Ssd77468 ***************/
2773325Ssd77468fru hostbridge/pciexrc;
2783325Ssd77468asru hostbridge/pciexrc;
2793325Ssd77468event fault.io.ebus@hostbridge/pciexrc,
2803325Ssd77468    FITrate=EBUS_FIT,
2813325Ssd77468    FRU=hostbridge/pciexrc,
2823325Ssd77468    ASRU=hostbridge/pciexrc;
2833325Ssd77468
2843325Ssd77468/*
2853325Ssd77468 * A faulty ebus can cause ebus timeout ebus_to
2863325Ssd77468 * ebus_to   ereport:
2873325Ssd77468 *   sun4v: The fmri of the ereport is ioboard/hostbridge
2883325Ssd77468 *   sun4u: The fmri of the ereport is pciexrc
2893325Ssd77468 */
2903325Ssd77468prop fault.io.ebus@hostbridge/pciexrc (1)->
2913325Ssd77468    ereport.io.fire.jbc.ebus_to@hostbridge,
2923325Ssd77468    ereport.io.fire.jbc.ebus_to@hostbridge/pciexrc;
2933325Ssd77468
2943325Ssd77468/***************
2953325Ssd77468 * Fire Asic HW error
2963325Ssd77468 * -------------
2973325Ssd77468 * Errors caused by parity or unexpected behaviors in the asic.
2983325Ssd77468 ***************/
2993325Ssd77468prop error.io.fire.jbc.asic@hostbridge/pciexrc (1)->
3003325Ssd77468    ereport.io.fire.jbc.cpe@hostbridge/pciexrc,
3013325Ssd77468    ereport.io.fire.jbc.mb_pea@hostbridge/pciexrc,
3023325Ssd77468    ereport.io.fire.jbc.mb_per@hostbridge/pciexrc,
3033325Ssd77468    ereport.io.fire.jbc.mb_pew@hostbridge/pciexrc,
3043325Ssd77468    ereport.io.fire.jbc.pio_cpe@hostbridge/pciexrc,
3053325Ssd77468    ereport.io.fire.jbc.pio_dpe@hostbridge/pciexrc;
3063325Ssd77468
3073325Ssd77468/***************
3083325Ssd77468 * JBC Hostbus Link Errors
3093325Ssd77468 * -------------
3103325Ssd77468 * Possible Parity Errors caused by bad links traces or cables.
3113325Ssd77468 * For instance on Ontarios there is a flex cable.  For Chicagos
3123325Ssd77468 * it could be the link trace between the CPU and Fire.
3133325Ssd77468 ***************/
3143325Ssd77468event error.io.fire.jbc.bad_link@hostbridge/pciexrc;
3153325Ssd77468
3163325Ssd77468prop error.io.fire.jbc.bad_link@hostbridge/pciexrc (1)->
3173325Ssd77468    ereport.io.fire.jbc.ape@hostbridge/pciexrc,
3183325Ssd77468    ereport.io.fire.jbc.bjc@hostbridge/pciexrc,
3193325Ssd77468    ereport.io.fire.jbc.rd_dpe@hostbridge/pciexrc,
3203325Ssd77468    ereport.io.fire.jbc.wr_dpe@hostbridge/pciexrc;
3213325Ssd77468
3223325Ssd77468/***************
3233325Ssd77468 * JBC Hostbus Errors
3243325Ssd77468 * -------------
3253325Ssd77468 * Errors being returned from the hostbus side and detected by fire asic.
3263325Ssd77468 ***************/
3273325Ssd77468fru hostbridge/pciexrc;
3283325Ssd77468asru hostbridge/pciexrc;
3293325Ssd77468event fault.io.fire.hbus@hostbridge/pciexrc,
3303325Ssd77468    FITrate=HBUS_FIT,
3313325Ssd77468    FRU=hostbridge/pciexrc,
3323325Ssd77468    ASRU=hostbridge/pciexrc;
3333325Ssd77468
3343325Ssd77468prop fault.io.fire.hbus@hostbridge/pciexrc (0)->
3353325Ssd77468    error.io.fire.jbc.bad_link@hostbridge/pciexrc,
3363325Ssd77468    ereport.io.fire.jbc.icise@hostbridge/pciexrc,
3373325Ssd77468    ereport.io.fire.jbc.ill_bmr@hostbridge/pciexrc,
3383325Ssd77468    ereport.io.fire.jbc.jtceei@hostbridge/pciexrc,
3393325Ssd77468    ereport.io.fire.jbc.jtceer@hostbridge/pciexrc,
3403325Ssd77468    ereport.io.fire.jbc.jtceew@hostbridge/pciexrc;
3413325Ssd77468
3423325Ssd77468/***************
3433325Ssd77468 * JBC Datapath Errors
3443325Ssd77468 * -------------
3453325Ssd77468 * Errors resulting from the datapath of the hostbus and detected by fire asic.
3463325Ssd77468 ***************/
3473325Ssd77468fru cmp;
3483325Ssd77468asru cmp;
3493325Ssd77468event fault.io.fire.datapath@cmp,
3503325Ssd77468    FITrate=CPU_FIT,
3513325Ssd77468    FRU=cmp,
3523325Ssd77468    ASRU=cmp;
3533325Ssd77468
3543325Ssd77468prop fault.io.fire.datapath@cmp (0)->
3553325Ssd77468    error.io.fire.jbc.bad_link@hostbridge/pciexrc;
3563325Ssd77468
3573325Ssd77468/* Duplicate the above fault prop for cpumodule */
3583325Ssd77468fru cpumodule/cpu;
3593325Ssd77468asru cpumodule/cpu;
3603325Ssd77468event fault.io.fire.datapath@cpumodule/cpu,
3613325Ssd77468    FITrate=CPU_FIT,
3623325Ssd77468    FRU=cpumodule/cpu,
3633325Ssd77468    ASRU=cpumodule/cpu;
3643325Ssd77468
3653325Ssd77468prop fault.io.fire.datapath@cpumodule/cpu (0)->
3663325Ssd77468    error.io.fire.jbc.bad_link@hostbridge/pciexrc,
3673325Ssd77468    ereport.io.fire.jbc.wr_dpe@hostbridge/pciexrc;
3683325Ssd77468
3693325Ssd77468/***************
3703325Ssd77468 * Fire driver is at fault.
3713325Ssd77468 * -------------
3723325Ssd77468 * The px driver should not have been in this state.  Defect the px driver.
3733325Ssd77468 ***************/
3743325Ssd77468prop error.io.fire.jbc.driver@hostbridge/pciexrc (1)->
3753325Ssd77468    ereport.io.fire.jbc.ijp@hostbridge/pciexrc,
3763325Ssd77468    ereport.io.fire.jbc.ill_acc@hostbridge/pciexrc,
3773325Ssd77468    ereport.io.fire.jbc.ill_acc_rd@hostbridge/pciexrc,
3783325Ssd77468    ereport.io.fire.jbc.ill_bmw@hostbridge/pciexrc,
3793325Ssd77468    ereport.io.fire.jbc.jue@hostbridge/pciexrc,
3803325Ssd77468    ereport.io.fire.jbc.pio_unmap@hostbridge/pciexrc,
3813325Ssd77468    ereport.io.fire.jbc.pio_unmap_rd@hostbridge/pciexrc;
3823325Ssd77468
3833325Ssd77468
3843325Ssd77468/******************************
3853325Ssd77468 * DMC Rules Begin Here       *
3863325Ssd77468 ******************************/
3873325Ssd77468
3883325Ssd77468/***************
3893325Ssd77468 * Fire PX SW error
3903325Ssd77468 * -------------
3913325Ssd77468 * Errors caused by bad SW
3923325Ssd77468 ***************/
3933325Ssd77468prop error.io.fire.dmc.driver@hostbridge/pciexrc (1)->
3943325Ssd77468    ereport.io.fire.dmc.ttc_cae@hostbridge/pciexrc;
3953325Ssd77468
3963325Ssd77468/***************
3973325Ssd77468 * Unexpected Fire State
3983325Ssd77468 * -------------
3993325Ssd77468 * The px driver should not have been in this state.  Defect the px driver.
4003325Ssd77468 ***************/
4013325Ssd77468event error.io.fire.dmc.bad_state-mmu@hostbridge/pciexrc;
4023325Ssd77468
4033325Ssd77468prop error.io.fire.dmc.bad_state@hostbridge/pciexrc (1)->
4043325Ssd77468    ereport.io.fire.dmc.cor_not_en@hostbridge/pciexrc,
4053325Ssd77468    ereport.io.fire.dmc.eq_not_en@hostbridge/pciexrc,
4063325Ssd77468    ereport.io.fire.dmc.fatal_not_en@hostbridge/pciexrc,
4073325Ssd77468    ereport.io.fire.dmc.msi_not_en@hostbridge/pciexrc,
4083325Ssd77468    ereport.io.fire.dmc.nonfatal_not_en@hostbridge/pciexrc,
4093325Ssd77468    ereport.io.fire.dmc.pmeack_not_en@hostbridge/pciexrc,
4106313Skrishnae    ereport.io.fire.dmc.pmpme_not_en@hostbridge/pciexrc;
4113325Ssd77468
4123325Ssd77468prop error.io.fire.dmc.bad_state-mmu@hostbridge/pciexrc (1)->
4133325Ssd77468    ereport.io.fire.dmc.tbw_dme@hostbridge/pciexrc,
4143325Ssd77468    ereport.io.fire.dmc.trn_err@hostbridge/pciexrc;
4153325Ssd77468
4163325Ssd77468/***************
4173325Ssd77468 * Fire Asic HW error
4183325Ssd77468 * -------------
4193325Ssd77468 * Errors caused by parity or unexpected behaviors in the asic.
4203325Ssd77468 ***************/
4213325Ssd77468event error.io.fire.dmc.bad_parity@hostbridge/pciexrc;
4223325Ssd77468
4233325Ssd77468prop error.io.fire.dmc.asic@hostbridge/pciexrc (1)->
4243325Ssd77468    error.io.fire.dmc.bad_parity@hostbridge/pciexrc,
4253325Ssd77468    ereport.io.fire.dmc.eq_over@hostbridge/pciexrc;
4263325Ssd77468
4273325Ssd77468/***************
4283325Ssd77468 * Parity errors caused by dmc
4293325Ssd77468 * -------------
4303325Ssd77468 * Fire asic error.
4313325Ssd77468 ***************/
4323325Ssd77468event error.io.fire.dmc.bad_parity-mmu@hostbridge/pciexrc;
4333325Ssd77468
4343325Ssd77468prop error.io.fire.dmc.bad_parity@hostbridge/pciexrc (1)->
4356313Skrishnae    ereport.io.fire.dmc.msi_par_err@hostbridge/pciexrc;
4363325Ssd77468
4373325Ssd77468prop error.io.fire.dmc.bad_parity-mmu@hostbridge/pciexrc (1)->
4383325Ssd77468    ereport.io.fire.dmc.tbw_dpe@hostbridge/pciexrc,
4393325Ssd77468    ereport.io.fire.dmc.tbw_ude@hostbridge/pciexrc,
4403325Ssd77468    ereport.io.fire.dmc.ttc_dpe@hostbridge/pciexrc;
4413325Ssd77468
4423325Ssd77468/***************
4433325Ssd77468 * Malformed MSI
4443325Ssd77468 * -------------
4453325Ssd77468 * A non-compliant PCIe/PCI device sent a malformed MSI.
4463325Ssd77468 ***************/
4473325Ssd77468prop fault.io.fire.pciex.device@pciexbus[b]/pciexdev[d]/pciexfn[f] (0) ->
4483325Ssd77468    ereport.io.fire.dmc.msi_mal_err@hostbridge/pciexrc
4493325Ssd77468        {
4503325Ssd77468            IMU_MATCH_BDF(b, d, f) &&
4513325Ssd77468            is_under(hostbridge/pciexrc, pciexbus[b]/pciexdev[d]/pciexfn[f])
4523325Ssd77468        };
453606Svn83148prop fault.io.fire.pci.device@pcibus[b]/pcidev[d]/pcifn[f] (0) ->
454606Svn83148    ereport.io.fire.dmc.msi_mal_err@hostbridge/pciexrc
455606Svn83148        {
4563325Ssd77468            IMU_MATCH_BDF(b, d, f) &&
457606Svn83148            is_under(hostbridge/pciexrc, pcibus[b]/pcidev[d]/pcifn[f])
4583325Ssd77468        };
4593325Ssd77468
4603325Ssd77468/***************
4613325Ssd77468 * Event queue overflow
4623325Ssd77468 * -------------
4633325Ssd77468 * Since we don't know which devices are sending too many EQ's, we must
4643325Ssd77468 * indict Fire asic and all PCIe/PCI devices
4653325Ssd77468 ***************/
4663325Ssd77468#define PROP_PLAT_FRU "FRU"
4673325Ssd77468#define GET_HB_FRU (confprop(asru(hostbridge/pciexrc), PROP_PLAT_FRU))
4683325Ssd77468#define GET_PCIE_FRU (confprop(asru(pciexbus[b]/pciexdev[d]/pciexfn[0]), PROP_PLAT_FRU))
4693325Ssd77468#define GET_PCI_FRU (confprop(asru(pcibus[b]/pcidev[d]/pcifn[0]), PROP_PLAT_FRU))
4703325Ssd77468
4713325Ssd77468prop fault.io.fire.pciex.device@pciexbus[b]/pciexdev[d]/pciexfn[0] (0) ->
4723325Ssd77468    ereport.io.fire.dmc.eq_over@hostbridge/pciexrc
4733325Ssd77468        {
4743325Ssd77468            /*
4753325Ssd77468             * Indict PCI-E FRU(s) under this root complex excluding the
4763325Ssd77468             * one that the Fire ASIC resides on.
4773325Ssd77468             */
4783325Ssd77468            is_under(hostbridge/pciexrc, pciexbus[b]/pciexdev[d]/pciexfn[0]) &&
4793325Ssd77468	    (GET_HB_FRU != GET_PCIE_FRU)
480606Svn83148        };
481606Svn83148
482606Svn83148prop fault.io.fire.pci.device@pcibus[b]/pcidev[d]/pcifn[0] (0) ->
483606Svn83148    ereport.io.fire.dmc.eq_over@hostbridge/pciexrc
484606Svn83148        {
485606Svn83148            /*
486606Svn83148             * Indict PCI FRU(s) under this root complex excluding the
487606Svn83148             * one that the Fire ASIC resides on.
488606Svn83148             */
4893325Ssd77468            is_under(hostbridge/pciexrc, pcibus[b]/pcidev[d]/pcifn[0]) &&
4903325Ssd77468	    (GET_HB_FRU != GET_PCI_FRU)
491606Svn83148        };
492606Svn83148
4933325Ssd77468/***************
4943325Ssd77468 * Secondary errors
4953325Ssd77468 * -------------
4963325Ssd77468 * These are errors that require logs to be diagnosable.  Secondary errors
4973325Ssd77468 * do not have logs so, just propagate them to no-diag.
4983325Ssd77468 ***************/
4993325Ssd77468event error.io.fire.dmc.secondary@hostbridge/pciexrc;
500606Svn83148
5013325Ssd77468prop error.io.fire.dmc.secondary@hostbridge/pciexrc (0) ->
5026313Skrishnae    ereport.io.fire.dmc.msi_mal_err@hostbridge/pciexrc{ IS_SECONDARY };
5033325Ssd77468
5043325Ssd77468/******************************
5053325Ssd77468 * PEC Rules Begin Here       *
5063325Ssd77468 ******************************/
5073325Ssd77468
5083325Ssd77468event error.io.fire.pec.buffer-parity@hostbridge/pciexrc;
5093325Ssd77468event error.io.fire.pec.adjacentnode@hostbridge/pciexrc ;
510606Svn83148
5113325Ssd77468/***************
5123325Ssd77468 * Fire PX SW error
5133325Ssd77468 * -------------
5143325Ssd77468 * Errors caused by bad SW
5153325Ssd77468 ***************/
5163989Set142600
5173989Set142600prop fault.io.fire.pec.sw-algorithm@hostbridge/pciexrc (0) ->
5183325Ssd77468    ereport.io.fire.pec.crs@hostbridge/pciexrc,
5193325Ssd77468    ereport.io.fire.pec.mrc@hostbridge/pciexrc;
520606Svn83148
5213325Ssd77468/***************
5223325Ssd77468 * Fire Asic HW error
5233325Ssd77468 * -------------
5243325Ssd77468 * Errors caused by parity or unexpected behaviors in the asic.
5253325Ssd77468 ***************/
5263325Ssd77468prop error.io.fire.pec.asic@hostbridge/pciexrc (1)->
5273325Ssd77468    error.io.fire.pec.buffer-parity@hostbridge/pciexrc,
5283325Ssd77468    error.io.fire.pec.adjacentnode@hostbridge/pciexrc;
529606Svn83148
5303325Ssd77468prop error.io.fire.pec.buffer-parity@hostbridge/pciexrc (1) ->
5313325Ssd77468    ereport.io.fire.pec.edp@hostbridge/pciexrc,
5323325Ssd77468    ereport.io.fire.pec.ehp@hostbridge/pciexrc,
5333325Ssd77468    ereport.io.fire.pec.eip@hostbridge/pciexrc,
5343325Ssd77468    ereport.io.fire.pec.erp@hostbridge/pciexrc,
5353325Ssd77468    ereport.io.fire.pec.ihb_pe@hostbridge/pciexrc,
5363325Ssd77468    ereport.io.fire.pec.iip@hostbridge/pciexrc;
5373325Ssd77468
5383325Ssd77468/***************
5393325Ssd77468 * Failed Links
5403325Ssd77468 * -------------
5413325Ssd77468 * They will cause the fabric to be scanned and a fire.fabric ereport
5423325Ssd77468 * for the suspected devices will be sent.  Do no diagnose these
5433325Ssd77468 * ereports and let the fire.fabric ereport be diagnosed.
5443325Ssd77468 ***************/
5453325Ssd77468event ereport.io.fire.link-events-trip@hostbridge/pciexrc ;
546606Svn83148
547606Svn83148engine serd.io.fire.link-events@hostbridge/pciexrc,
548606Svn83148    N=LINK_EVENTS_COUNT, T=LINK_EVENTS_TIME, method=persistent,
549606Svn83148    trip=ereport.io.fire.link-events-trip@hostbridge/pciexrc ;
550606Svn83148
5513325Ssd77468event upset.io.fire.link-events@hostbridge/pciexrc,
552606Svn83148    engine=serd.io.fire.link-events@hostbridge/pciexrc ;
553606Svn83148
5543325Ssd77468event error.io.fire.link-events@hostbridge/pciexrc;
555606Svn83148
556606Svn83148prop upset.io.fire.link-events@hostbridge/pciexrc (0)->
5573325Ssd77468    error.io.fire.link-events@hostbridge/pciexrc;
558606Svn83148
559606Svn83148prop error.io.fire.link-events@hostbridge/pciexrc (1)->
5603325Ssd77468    ereport.io.fire.pec.lrs@hostbridge/pciexrc,
5613325Ssd77468    ereport.io.fire.pec.ldn@hostbridge/pciexrc;
562606Svn83148
563606Svn83148
564606Svn83148/*
565606Svn83148 * Fault at the adjacent node which is right below the Fire ASIC
566606Svn83148 */
567606Svn83148fru hostbridge/pciexrc/pciexbus/pciexdev;
568606Svn83148asru hostbridge/pciexrc/pciexbus/pciexdev/pciexfn;
569606Svn83148event fault.io.fire.pciex.device@hostbridge/pciexrc/pciexbus/pciexdev/pciexfn,
570606Svn83148    FITrate=HB_FIT, FRU=hostbridge/pciexrc/pciexbus/pciexdev,
571606Svn83148    ASRU=hostbridge/pciexrc/pciexbus/pciexdev/pciexfn;
572606Svn83148
5733325Ssd77468prop fault.io.fire.asic@hostbridge/pciexrc (0) ->
5743325Ssd77468    error.io.fire.pec.adjacentnode@hostbridge/pciexrc;
5753325Ssd77468
576606Svn83148prop fault.io.fire.pciex.device@hostbridge/pciexrc/pciexbus/pciexdev/pciexfn
577606Svn83148(0) ->
578606Svn83148    error.io.fire.pec.adjacentnode@hostbridge/pciexrc
579606Svn83148        {
580606Svn83148            is_under(hostbridge/pciexrc,
581606Svn83148                     hostbridge/pciexrc/pciexbus/pciexdev/pciexfn)
582606Svn83148        };
583606Svn83148
584606Svn83148prop error.io.fire.pec.adjacentnode@hostbridge/pciexrc (0) ->
585606Svn83148    ereport.io.fire.link-events-trip@hostbridge/pciexrc;
586606Svn83148
587606Svn83148
5883325Ssd77468/******************************
5893325Ssd77468 * Fabric Rules Begin Here       *
5903325Ssd77468 ******************************/
591606Svn83148
5923325Ssd77468/***************
5933325Ssd77468 * fire.fabric rules
5943325Ssd77468 * -------------
5953325Ssd77468 * Below rules are so we get a single suspect list in 1 fault with percentage
5963325Ssd77468 * of indiction being equal among all the suspect FRUs
5973325Ssd77468 ***************/
5983325Ssd77468prop fault.io.fire.pciex.device@pciexbus/pciexdev/pciexfn (0) ->
5993325Ssd77468	error.io.fire.fabric@pciexbus/pciexdev/pciexfn;
6003274Set142600
6013325Ssd77468prop fault.io.fire.pci.device@pcibus/pcidev/pcifn (0) ->
6023325Ssd77468	error.io.fire.fabric@pcibus/pcidev/pcifn;
6033325Ssd77468
6043325Ssd77468prop error.io.fire.fabric@pciexbus/pciexdev/pciexfn (1) ->
6053274Set142600	ereport.io.fire.fabric@pciexbus/pciexdev/pciexfn { !MATCH_CE };
6063274Set142600
6073325Ssd77468prop error.io.fire.fabric@pcibus/pcidev/pcifn (1) ->
6083274Set142600	ereport.io.fire.fabric@pcibus/pcidev/pcifn;
6093274Set142600
6103325Ssd77468prop error.io.fire.fabric-sib@hostbridge/pciexrc (0) ->
6113274Set142600	ereport.io.fire.fabric@pciexbus/pciexdev/pciexfn {
6123274Set142600		is_under(hostbridge/pciexrc, pciexbus/pciexdev/pciexfn) && !MATCH_CE
6133274Set142600	};
6143274Set142600
6153325Ssd77468prop error.io.fire.fabric-sib@hostbridge/pciexrc (0) ->
6163274Set142600	ereport.io.fire.fabric@pcibus/pcidev/pcifn {
6173274Set142600		is_under(hostbridge/pciexrc, pcibus/pcidev/pcifn)
6183274Set142600	};
6193274Set142600
6203325Ssd77468prop error.io.fire.fabric@pciexbus/pciexdev/pciexfn (1) ->
6213325Ssd77468	error.io.fire.fabric-sib@hostbridge/pciexrc {
6223274Set142600		is_under(hostbridge/pciexrc, pciexbus/pciexdev/pciexfn)
6233274Set142600	};
6243274Set142600
6253325Ssd77468prop error.io.fire.fabric@pcibus/pcidev/pcifn (1) ->
6263325Ssd77468	error.io.fire.fabric-sib@hostbridge/pciexrc {
6273274Set142600		is_under(hostbridge/pciexrc, pcibus/pcidev/pcifn)
6283274Set142600	};
6293274Set142600
6303274Set142600event upset.io.fire.fabric@pciexbus/pciexdev/pciexfn{within(1s)};
6313274Set142600event ereport.io.fire.pciex.ce@pciexbus/pciexdev/pciexfn{within(1s)};
6323274Set142600
6333274Set142600/* SERD CEs */
6343274Set142600prop upset.io.fire.fabric@pciexbus[b]/pciexdev[d]/pciexfn[f] (0) ->
6353274Set142600	ereport.io.fire.fabric@pciexbus[b]/pciexdev[d]/pciexfn[f]
6363274Set142600	    { MATCH_CE };
6373274Set142600
6383274Set142600event upset.io.fire.fabric@pciexbus/pciexdev/pciexfn,
6393274Set142600    engine=serd.io.fire.fabric@pciexbus/pciexdev/pciexfn;
6403274Set142600
6413274Set142600engine serd.io.fire.fabric@pciexbus/pciexdev/pciexfn,
6423274Set142600    N=CE_EVENTS_COUNT, T=CE_EVENTS_TIME, method=persistent,
6433274Set142600    trip=ereport.io.fire.pciex.ce@pciexbus/pciexdev/pciexfn;
6443274Set142600
6453274Set142600prop fault.io.fire.pciex.device@pciexbus/pciexdev/pciexfn (0) ->
6463274Set142600	ereport.io.fire.pciex.ce@pciexbus/pciexdev/pciexfn;
6473274Set142600
6483325Ssd77468/***************
6493325Ssd77468 * Upsets
6503325Ssd77468 * -------------
6513325Ssd77468 * Used to hide ereports that are not currently diagnose or should not be
6523325Ssd77468 * diagnosed
6533325Ssd77468 ***************/
6543325Ssd77468event upset.io.fire.nodiag@hostbridge/pciexrc;
6553325Ssd77468event error.io.fire.dmc.nodiag@hostbridge/pciexrc;
6563325Ssd77468
6573325Ssd77468prop error.io.fire.dmc.nodiag@hostbridge/pciexrc (1)->
6583325Ssd77468    ereport.io.fire.dmc.tbw_err@hostbridge/pciexrc;
6593325Ssd77468
6603325Ssd77468prop upset.io.fire.nodiag@hostbridge/pciexrc (0)->
6613325Ssd77468    ereport.io.fire.jbc.ce_asyn@hostbridge/pciexrc, /* CPU */
6623325Ssd77468    ereport.io.fire.jbc.jbe@hostbridge/pciexrc, /* CPU */
6633325Ssd77468    ereport.io.fire.jbc.jte@hostbridge/pciexrc, /* CPU */
6643325Ssd77468    ereport.io.fire.jbc.ue_asyn@hostbridge/pciexrc, /* CPU */
6653325Ssd77468    ereport.io.fire.jbc.unsol_intr@hostbridge/pciexrc, /* CPU */
6663325Ssd77468    ereport.io.fire.jbc.unsol_rd@hostbridge/pciexrc, /* CPU */
6673325Ssd77468    ereport.io.fire.pec.lin@hostbridge/pciexrc,
6683325Ssd77468    ereport.io.fire.pec.lup@hostbridge/pciexrc,
6693325Ssd77468    error.io.fire.dmc.nodiag@hostbridge/pciexrc,
6706313Skrishnae    error.io.fire.dmc.secondary@hostbridge/pciexrc,
671*9921SKrishna.Elango@Sun.COM    ereport.io.fire.epkt@hostbridge { !MATCH_UNRECOGNIZED },
6726313Skrishnae    ereport.io.fire.epkt@hostbridge/pciexrc { !MATCH_UNRECOGNIZED };
673