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