11772Sjl139090/* 21772Sjl139090 * CDDL HEADER START 31772Sjl139090 * 41772Sjl139090 * The contents of this file are subject to the terms of the 51772Sjl139090 * Common Development and Distribution License (the "License"). 61772Sjl139090 * You may not use this file except in compliance with the License. 71772Sjl139090 * 81772Sjl139090 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 91772Sjl139090 * or http://www.opensolaris.org/os/licensing. 101772Sjl139090 * See the License for the specific language governing permissions 111772Sjl139090 * and limitations under the License. 121772Sjl139090 * 131772Sjl139090 * When distributing Covered Code, include this CDDL HEADER in each 141772Sjl139090 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 151772Sjl139090 * If applicable, add the following below this CDDL HEADER, with the 161772Sjl139090 * fields enclosed by brackets "[]" replaced with your own identifying 171772Sjl139090 * information: Portions Copyright [yyyy] [name of copyright owner] 181772Sjl139090 * 191772Sjl139090 * CDDL HEADER END 201772Sjl139090 */ 211772Sjl139090/* 22*7197Sstephh * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 231772Sjl139090 * Use is subject to license terms. 241772Sjl139090 */ 251772Sjl139090 261772Sjl139090#pragma ident "%Z%%M% %I% %E% SMI" 271772Sjl139090 281772Sjl139090/* 291772Sjl139090 * Eversholt rules for Oberon ASICs 301772Sjl139090 */ 311772Sjl139090 321772Sjl139090#pragma dictionary "SUN4U" 331772Sjl139090 341772Sjl139090#define HB_FIT 1000 351772Sjl139090 361772Sjl139090/* 371772Sjl139090 * Test for primary or secondary ereports 381772Sjl139090 */ 391772Sjl139090#define IS_PRIMARY (payloadprop("primary")) 401772Sjl139090#define IS_SECONDARY (! payloadprop("primary")) 411772Sjl139090 421772Sjl139090event error.io.oberon.pec.secondary@hostbridge/pciexrc; 431772Sjl139090event error.io.oberon.pec.fabric_error@hostbridge/pciexrc; 441772Sjl139090 451772Sjl139090/* 461772Sjl139090 * Ereports derived from the 471772Sjl139090 * UBC Status Clear Register 481772Sjl139090 * 491772Sjl139090 * dmarduea-channel DMA read uncorrectable error (UE) in leaf A 501772Sjl139090 * dmawtuea DMA write UE in leaf A 511772Sjl139090 * memrdaxa Memory read invalid address error in leaf A 521772Sjl139090 * memwtaxa Memory write invalid address error in leaf A 531772Sjl139090 * dmardueb-channel DMA read uncorrectable error (UE) in leaf B 541772Sjl139090 * dmawtueb DMA write UE in leaf B 551772Sjl139090 * memrdaxb Memory read invalid address error in leaf B 561772Sjl139090 * memwtaxb Memory write invalid address error in leaf B 571772Sjl139090 * piowtue-channel PIO write UE 581772Sjl139090 * piowbeue-channel PIO write byte enable UE 591772Sjl139090 * piorbeue-channel PIO read byte enable UE 601772Sjl139090 */ 611772Sjl139090event ereport.io.oberon.ubc.dmarduea-channel@hostbridge/pciexrc{within(5s)}; 621772Sjl139090event ereport.io.oberon.ubc.dmawtuea@hostbridge/pciexrc{within(5s)}; 631772Sjl139090event ereport.io.oberon.ubc.memrdaxa@hostbridge/pciexrc{within(5s)}; 641772Sjl139090event ereport.io.oberon.ubc.memwtaxa@hostbridge/pciexrc{within(5s)}; 651772Sjl139090event ereport.io.oberon.ubc.dmardueb-channel@hostbridge/pciexrc{within(5s)}; 661772Sjl139090event ereport.io.oberon.ubc.dmawtueb@hostbridge/pciexrc{within(5s)}; 671772Sjl139090event ereport.io.oberon.ubc.memrdaxb@hostbridge/pciexrc{within(5s)}; 681772Sjl139090event ereport.io.oberon.ubc.memwtaxb@hostbridge/pciexrc{within(5s)}; 691772Sjl139090event ereport.io.oberon.ubc.piowtue-channel@hostbridge/pciexrc{within(5s)}; 701772Sjl139090event ereport.io.oberon.ubc.piowbeue-channel@hostbridge/pciexrc{within(5s)}; 711772Sjl139090event ereport.io.oberon.ubc.piorbeue-channel@hostbridge/pciexrc{within(5s)}; 721772Sjl139090 731772Sjl139090/* 741772Sjl139090 * tlueitmo TLU Egress Issue Timeout 751772Sjl139090 */ 761772Sjl139090event ereport.io.oberon.pec.tlueitmo@hostbridge/pciexrc{within(5s)}; 771772Sjl139090 781772Sjl139090/* 791772Sjl139090 * TLU Uncorrectable and Correctable ereports 801772Sjl139090 * 811772Sjl139090 * ecrc End-to-end CRC error 821772Sjl139090 */ 831772Sjl139090event ereport.io.oberon.pec.ecrc@hostbridge/pciexrc{within(5s)}; 841772Sjl139090 851772Sjl139090/* 861772Sjl139090 * A faulty Oberon may cause; 871772Sjl139090 * 881772Sjl139090 * - DMA write internal RAM UE: dmawtuea, dmawtueb 891772Sjl139090 * - TLU ECRC 901772Sjl139090 * 911772Sjl139090 * Errors marked with * may cause PCI-E abort 921772Sjl139090 */ 931772Sjl139090 945168Sarutzfru hostbridge; 955168Sarutzasru hostbridge; 965168Sarutzevent fault.io.oberon@hostbridge, 975168Sarutz FITrate=HB_FIT, FRU=hostbridge, ASRU=hostbridge; 985168Sarutzprop fault.io.oberon@hostbridge (0)-> 995168Sarutz ereport.io.oberon.ubc.dmawtuea@hostbridge/pciexrc, 1005168Sarutz ereport.io.oberon.ubc.dmawtueb@hostbridge/pciexrc; 1011772Sjl139090event fault.io.oberon@hostbridge/pciexrc, 1025168Sarutz FITrate=HB_FIT, FRU=hostbridge, ASRU=hostbridge; 1031772Sjl139090prop fault.io.oberon@hostbridge/pciexrc (0)-> 1041772Sjl139090 ereport.io.oberon.pec.ecrc@hostbridge/pciexrc { IS_PRIMARY }; 1051772Sjl139090 1061772Sjl139090/* 1071772Sjl139090 * A faulty PX nexus driver can cause 1081772Sjl139090 * - Jbus unmapped error 1091772Sjl139090 * - mmu invalid, out of range, protection etc. all except data parity 1101772Sjl139090 * - invalid pio r/w 1111772Sjl139090 * - unsolicited read or interrupt return 1121772Sjl139090 * - msg received to unenabled queue 1131772Sjl139090 */ 1141772Sjl139090 1153989Set142600#define SW_FIT 5000 /* No real fit rate, SW */ 116*7197Sstephhevent fault.io.fire.hb.sw-config@hostbridge/pciexrc, retire=0, response=0, 1173989Set142600 FITrate=SW_FIT; 1181772Sjl139090 1193989Set142600prop fault.io.fire.hb.sw-config@hostbridge/pciexrc (0)-> 1201772Sjl139090 ereport.io.oberon.ubc.memrdaxa@hostbridge/pciexrc, 1211772Sjl139090 ereport.io.oberon.ubc.memrdaxb@hostbridge/pciexrc, 1221772Sjl139090 ereport.io.oberon.ubc.memwtaxa@hostbridge/pciexrc, 1231772Sjl139090 ereport.io.oberon.ubc.memwtaxb@hostbridge/pciexrc; 1241772Sjl139090 1251772Sjl139090/* 1261772Sjl139090 * Secondary errors of the ereport that the device is at fault. 1271772Sjl139090 * Undiagnosed the secondary errors since the payload is invalid. 1281772Sjl139090 */ 1291772Sjl139090prop error.io.oberon.pec.secondary@hostbridge/pciexrc (0) -> 1301772Sjl139090 ereport.io.oberon.pec.ecrc@hostbridge/pciexrc{ IS_SECONDARY }; 1311772Sjl139090 1321772Sjl139090/* 1331772Sjl139090 * For logging purpose only. 1341772Sjl139090 * The px nexus driver generates equivalent pciex ereports for the 1351772Sjl139090 * common pciex rules to diagnose. 1361772Sjl139090 */ 1371772Sjl139090prop error.io.oberon.pec.fabric_error@hostbridge/pciexrc(0) -> 1381772Sjl139090 ereport.io.oberon.pec.ecrc@hostbridge/pciexrc; 1391772Sjl139090 1401772Sjl139090event ereport.io.oberon.nodiag@hostbridge; 1411772Sjl139090 1421772Sjl139090/* 1431772Sjl139090 * Upset used to hide ereports that are not currently diagnosed. 1441772Sjl139090 */ 1451772Sjl139090engine serd.io.oberon.nodiag@hostbridge, 1461772Sjl139090 N=1000, T=1s, method=persistent, 1471772Sjl139090 trip=ereport.io.oberon.nodiag@hostbridge; 1481772Sjl139090 1491772Sjl139090event upset.io.oberon.nodiag@hostbridge, 1501772Sjl139090 engine=serd.io.oberon.nodiag@hostbridge; 1511772Sjl139090 1521772Sjl139090prop upset.io.oberon.nodiag@hostbridge (0)-> 1531772Sjl139090 ereport.io.oberon.ubc.dmarduea-channel@hostbridge/pciexrc, 1541772Sjl139090 ereport.io.oberon.ubc.dmardueb-channel@hostbridge/pciexrc, 1551772Sjl139090 ereport.io.oberon.ubc.piowtue-channel@hostbridge/pciexrc, 1561772Sjl139090 ereport.io.oberon.ubc.piowbeue-channel@hostbridge/pciexrc, 1571772Sjl139090 ereport.io.oberon.ubc.piorbeue-channel@hostbridge/pciexrc, 1581772Sjl139090 ereport.io.oberon.pec.tlueitmo@hostbridge/pciexrc, 1591772Sjl139090 error.io.oberon.pec.fabric_error@hostbridge/pciexrc, 1601772Sjl139090 ereport.io.oberon.nodiag@hostbridge; 161