xref: /onnv-gate/usr/src/cmd/fm/eversholt/files/i386/i86pc/intel.esc (revision 12437:76e2c024699d)
15254Sgavinm/*
25254Sgavinm * CDDL HEADER START
35254Sgavinm *
45254Sgavinm * The contents of this file are subject to the terms of the
55254Sgavinm * Common Development and Distribution License (the "License").
65254Sgavinm * You may not use this file except in compliance with the License.
75254Sgavinm *
85254Sgavinm * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95254Sgavinm * or http://www.opensolaris.org/os/licensing.
105254Sgavinm * See the License for the specific language governing permissions
115254Sgavinm * and limitations under the License.
125254Sgavinm *
135254Sgavinm * When distributing Covered Code, include this CDDL HEADER in each
145254Sgavinm * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
155254Sgavinm * If applicable, add the following below this CDDL HEADER, with the
165254Sgavinm * fields enclosed by brackets "[]" replaced with your own identifying
175254Sgavinm * information: Portions Copyright [yyyy] [name of copyright owner]
185254Sgavinm *
195254Sgavinm * CDDL HEADER END
205254Sgavinm */
215254Sgavinm
225254Sgavinm/*
2312332SAdrian.Frost@Sun.COM * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
245254Sgavinm */
255254Sgavinm
265254Sgavinm#pragma dictionary "INTEL"
275254Sgavinm
285254Sgavinm/*
295254Sgavinm * Eversholt rules for the intel CPU/Memory
305254Sgavinm */
315254Sgavinm
325254Sgavinm/*
335254Sgavinm * Ereports for Simple error codes.
345254Sgavinm */
355254Sgavinm
365254Sgavinm#define SMPL_EVENT(leafclass, t) \
377349SAdrian.Frost@Sun.COM	event ereport.cpu.intel.leafclass@chip/core/strand { within(t) }
385254Sgavinm
395254SgavinmSMPL_EVENT(unknown, 1s);
405254SgavinmSMPL_EVENT(unclassified, 1s);
415254SgavinmSMPL_EVENT(microcode_rom_parity, 1s);
425254SgavinmSMPL_EVENT(external, 1s);
435254SgavinmSMPL_EVENT(frc, 1s);
445254SgavinmSMPL_EVENT(internal_timer, 1s);
457349SAdrian.Frost@Sun.COMSMPL_EVENT(internal_parity, 1s);
465254SgavinmSMPL_EVENT(internal_unclassified, 1s);
475254Sgavinm
485254Sgavinm/*
495254Sgavinm * Propogations for all but "external" and "unknown" simple errors.
505254Sgavinm * If the error is uncorrected we produce a fault immediately, otherwise
515254Sgavinm * we diagnose it to an upset and decalre a fault when the SERD engine
5210831SYanmin.Sun@Sun.COM * trips. prop statement for ereport.cpu.intel.internal_unclassified is
5310831SYanmin.Sun@Sun.COM * moved to the Nehalem EX section to deal with poison case.
545254Sgavinm */
555254Sgavinm
567349SAdrian.Frost@Sun.COMengine serd.cpu.intel.simple@chip/core/strand, N=3, T=72h;
577349SAdrian.Frost@Sun.COMevent fault.cpu.intel.internal@chip/core/strand,
587349SAdrian.Frost@Sun.COM    engine=serd.cpu.intel.simple@chip/core/strand;
595254Sgavinm
607349SAdrian.Frost@Sun.COMprop fault.cpu.intel.internal@chip/core/strand
617349SAdrian.Frost@Sun.COM    { payloadprop("error_uncorrected") == 1 ? setserdincrement(4) : 1} (0)->
627349SAdrian.Frost@Sun.COM    ereport.cpu.intel.microcode_rom_parity@chip/core/strand,
637349SAdrian.Frost@Sun.COM    ereport.cpu.intel.internal_timer@chip/core/strand,
647349SAdrian.Frost@Sun.COM    ereport.cpu.intel.internal_parity@chip/core/strand,
657349SAdrian.Frost@Sun.COM    ereport.cpu.intel.unclassified@chip/core/strand,
667349SAdrian.Frost@Sun.COM    ereport.cpu.intel.frc@chip/core/strand;
675254Sgavinm
685254Sgavinm/*
695254Sgavinm * Ereports for Compound error codes.  These are in pairs "foo" and "foo_uc"
705254Sgavinm * for the corrected and uncorrected version of each error type.  All are
717532SSean.Ye@Sun.COM * detected at chip/core/strand.
725254Sgavinm */
735254Sgavinm
745254Sgavinm#define	CMPND_EVENT(leafclass, t) \
757349SAdrian.Frost@Sun.COM	event ereport.cpu.intel.leafclass@chip/core/strand { within(t) }; \
767349SAdrian.Frost@Sun.COM	event ereport.cpu.intel.leafclass/**/_uc@chip/core/strand { within(t) }
775254Sgavinm
785254Sgavinm/*
795254Sgavinm * Ereports for Compound error codes - intel errors
805254Sgavinm */
815254SgavinmCMPND_EVENT(l0cache, 1s);
825254SgavinmCMPND_EVENT(l1cache, 1s);
835254SgavinmCMPND_EVENT(l2cache, 1s);
845254SgavinmCMPND_EVENT(cache, 1s);
855254Sgavinm
865254Sgavinm/*
875254Sgavinm * Ereports for Compound error codes - TLB errors
885254Sgavinm */
895254SgavinmCMPND_EVENT(l0dtlb, 1s);
905254SgavinmCMPND_EVENT(l1dtlb, 1s);
915254SgavinmCMPND_EVENT(l2dtlb, 1s);
925254SgavinmCMPND_EVENT(dtlb, 1s);
935254Sgavinm
945254SgavinmCMPND_EVENT(l0itlb, 1s);
955254SgavinmCMPND_EVENT(l1itlb, 1s);
965254SgavinmCMPND_EVENT(l2itlb, 1s);
975254SgavinmCMPND_EVENT(itlb, 1s);
985254Sgavinm
995254SgavinmCMPND_EVENT(l0tlb, 1s);
1005254SgavinmCMPND_EVENT(l1tlb, 1s);
1015254SgavinmCMPND_EVENT(l2tlb, 1s);
1025254SgavinmCMPND_EVENT(tlb, 1s);
1035254Sgavinm
1045254Sgavinm/*
1055254Sgavinm * Ereports for Compound error codes - memory hierarchy errors
1065254Sgavinm */
1075254SgavinmCMPND_EVENT(l0dcache, 1s);
1085254SgavinmCMPND_EVENT(l1dcache, 1s);
1095254SgavinmCMPND_EVENT(l2dcache, 1s);
1105254SgavinmCMPND_EVENT(dcache, 1s);
1115254Sgavinm
1125254SgavinmCMPND_EVENT(l0icache, 1s);
1135254SgavinmCMPND_EVENT(l1icache, 1s);
1145254SgavinmCMPND_EVENT(l2icache, 1s);
1155254SgavinmCMPND_EVENT(icache, 1s);
1165254Sgavinm
1175254Sgavinm/*
1185254Sgavinm * Ereports for Compound error codes - bus and interconnect errors
1195254Sgavinm */
1205254SgavinmCMPND_EVENT(bus_interconnect, 1s);
1215254SgavinmCMPND_EVENT(bus_interconnect_memory, 1s);
1225254SgavinmCMPND_EVENT(bus_interconnect_io, 1s);
1235254Sgavinm
1245254Sgavinm/*
1255254Sgavinm * Compound error propogations.
1265254Sgavinm *
1275254Sgavinm * We resist the temptation propogate, for example, a single dcache fault
1285254Sgavinm * to all ereports mentioning dcache (l0dcache, l1dcache, l2dcache, dcache).
1295254Sgavinm * Instead we will diagnose a distinct fault for each possible cache level,
1305254Sgavinm * whether or not current chips have dcaches at all levels.
1315254Sgavinm *
1325254Sgavinm * Corrected errors are SERDed and produce a fault when the engine fires;
1335254Sgavinm * the same fault is diagnosed immediately for a corresponding uncorrected
1345254Sgavinm * error.
1355254Sgavinm */
1365254Sgavinm
1377197Sstephh#define	CMPND_FLT_PROP_1(erptleaf, fltleaf, n, t)			\
1387349SAdrian.Frost@Sun.COM	engine serd.cpu.intel.fltleaf@chip/core/strand, N=n, T=t;	\
1397349SAdrian.Frost@Sun.COM	event fault.cpu.intel.fltleaf@chip/core/strand,			\
1407349SAdrian.Frost@Sun.COM	    engine=serd.cpu.intel.fltleaf@chip/core/strand;		\
1415254Sgavinm									\
1427349SAdrian.Frost@Sun.COM	prop fault.cpu.intel.fltleaf@chip/core/strand (0)->		\
1437349SAdrian.Frost@Sun.COM	    ereport.cpu.intel.erptleaf@chip/core/strand;		\
1445254Sgavinm									\
1457349SAdrian.Frost@Sun.COM	prop fault.cpu.intel.fltleaf@chip/core/strand			\
1467349SAdrian.Frost@Sun.COM	    { setserdincrement(n + 1) } (0)->				\
1477349SAdrian.Frost@Sun.COM	    ereport.cpu.intel.erptleaf/**/_uc@chip/core/strand
1485254Sgavinm
1497197Sstephh#define	CMPND_FLT_PROP_2(erptleaf, fltleaf, n, t)			\
1507349SAdrian.Frost@Sun.COM	engine serd.cpu.intel.fltleaf@chip/core/strand, N=n, T=t;	\
1517349SAdrian.Frost@Sun.COM	event fault.cpu.intel.fltleaf@chip/core/strand, retire=0, response=0,\
1527349SAdrian.Frost@Sun.COM	    engine=serd.cpu.intel.fltleaf@chip/core/strand;		\
1535254Sgavinm									\
1547349SAdrian.Frost@Sun.COM	prop fault.cpu.intel.fltleaf@chip/core/strand (0)->		\
1557349SAdrian.Frost@Sun.COM	    ereport.cpu.intel.erptleaf@chip/core/strand;		\
1565254Sgavinm									\
1577349SAdrian.Frost@Sun.COM	prop fault.cpu.intel.fltleaf@chip/core/strand 			\
1587349SAdrian.Frost@Sun.COM	    { setserdincrement(n + 1) } (0)->				\
1597349SAdrian.Frost@Sun.COM	    ereport.cpu.intel.erptleaf/**/_uc@chip/core/strand
1605254Sgavinm
1615254SgavinmCMPND_FLT_PROP_1(l0cache, l0cache, 3, 72h);
1625254SgavinmCMPND_FLT_PROP_1(l1cache, l1cache, 3, 72h);
1635254SgavinmCMPND_FLT_PROP_1(l2cache, l2cache, 3, 72h);
1645254SgavinmCMPND_FLT_PROP_1(cache, cache, 12, 72h);
1655254Sgavinm
1665254SgavinmCMPND_FLT_PROP_1(l0dtlb, l0dtlb, 3, 72h);
1675254SgavinmCMPND_FLT_PROP_1(l1dtlb, l1dtlb, 3, 72h);
1685254SgavinmCMPND_FLT_PROP_1(l2dtlb, l2dtlb, 3, 72h);
1695254SgavinmCMPND_FLT_PROP_1(dtlb, dtlb, 12, 72h);
1705254Sgavinm
1715254SgavinmCMPND_FLT_PROP_1(l0itlb, l0itlb, 3, 72h);
1725254SgavinmCMPND_FLT_PROP_1(l1itlb, l1itlb, 3, 72h);
1735254SgavinmCMPND_FLT_PROP_1(l2itlb, l2itlb, 3, 72h);
1745254SgavinmCMPND_FLT_PROP_1(itlb, itlb, 12, 72h);
1755254Sgavinm
17610831SYanmin.Sun@Sun.COMCMPND_FLT_PROP_1(l0tlb, l0tlb, 3, 72h);
17710831SYanmin.Sun@Sun.COMCMPND_FLT_PROP_1(l1tlb, l1tlb, 3, 72h);
17810831SYanmin.Sun@Sun.COMCMPND_FLT_PROP_1(l2tlb, l2tlb, 3, 72h);
1795254SgavinmCMPND_FLT_PROP_1(tlb, tlb, 12, 72h);
1805254Sgavinm
1815254SgavinmCMPND_FLT_PROP_1(l0dcache, l0dcache, 3, 72h);
1825254SgavinmCMPND_FLT_PROP_1(l1dcache, l1dcache, 3, 72h);
1835254SgavinmCMPND_FLT_PROP_1(l2dcache, l2dcache, 3, 72h);
1845254SgavinmCMPND_FLT_PROP_1(dcache, dcache, 12, 72h);
1855254Sgavinm
1865254SgavinmCMPND_FLT_PROP_1(l0icache, l0icache, 3, 72h);
1875254SgavinmCMPND_FLT_PROP_1(l1icache, l1icache, 3, 72h);
1885254SgavinmCMPND_FLT_PROP_1(l2icache, l2icache, 3, 72h);
1895254SgavinmCMPND_FLT_PROP_1(icache, icache, 12, 72h);
1905254Sgavinm
1915254SgavinmCMPND_FLT_PROP_2(bus_interconnect, bus_interconnect, 10, 72h);
1925254SgavinmCMPND_FLT_PROP_2(bus_interconnect_memory, bus_interconnect_memory, 10, 72h);
1935254SgavinmCMPND_FLT_PROP_2(bus_interconnect_io, bus_interconnect_io, 10, 72h);
1945254Sgavinm
1957349SAdrian.Frost@Sun.COMevent upset.discard@chip/core/strand;
1967349SAdrian.Frost@Sun.COM
197*12437SAdrian.Frost@Sun.COMevent ereport.cpu.intel.unknown@chip {within(15s)};
1987349SAdrian.Frost@Sun.COMprop upset.discard@chip/core/strand (0)->
1997349SAdrian.Frost@Sun.COM    ereport.cpu.intel.external@chip/core/strand,
200*12437SAdrian.Frost@Sun.COM    ereport.cpu.intel.unknown@chip/core/strand,
201*12437SAdrian.Frost@Sun.COM    ereport.cpu.intel.unknown@chip;
2027349SAdrian.Frost@Sun.COM
2035254Sgavinm/* errors detected in northbridge */
2045254Sgavinm
2055254Sgavinm
2065254Sgavinm/*
2075254Sgavinm * SET_ADDR and SET_OFFSET are used to set a payload value in the fault that
2085254Sgavinm * we diagnose for page faults, to record the physical address of the faulting
2097197Sstephh * page.
2105254Sgavinm */
2115254Sgavinm#define	SET_ADDR (!payloadprop_defined("physaddr") || \
2125254Sgavinm    setpayloadprop("asru-physaddr", payloadprop("physaddr")))
2135254Sgavinm
2145254Sgavinm#define SET_OFFSET (!payloadprop_defined("offset") || \
2155254Sgavinm    setpayloadprop("asru-offset", payloadprop("offset")))
2165254Sgavinm
2177349SAdrian.Frost@Sun.COM#define EREPORT_BUS_ERROR						\
2187349SAdrian.Frost@Sun.COM    ereport.cpu.intel.bus_interconnect_memory_uc@chip/core/strand,	\
2197349SAdrian.Frost@Sun.COM    ereport.cpu.intel.bus_interconnect_uc@chip/core/strand,		\
2207349SAdrian.Frost@Sun.COM    ereport.cpu.intel.bus_interconnect_memory@chip/core/strand,		\
2217349SAdrian.Frost@Sun.COM    ereport.cpu.intel.bus_interconnect@chip/core/strand,		\
2227349SAdrian.Frost@Sun.COM    ereport.cpu.intel.external@chip/core/strand
2237349SAdrian.Frost@Sun.COM
2247197Sstephhengine stat.ce_pgflt@memory-controller/dram-channel/dimm;
2255254Sgavinm
2267349SAdrian.Frost@Sun.COMevent ereport.cpu.intel.nb.mem_ue@motherboard/memory-controller{within(12s)};
22710049SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.ddr2_mem_ue@
22810049SVuong.Nguyen@Sun.COM    motherboard/memory-controller{within(12s)};
2297349SAdrian.Frost@Sun.COMevent ereport.cpu.intel.nb.fbd.ma@motherboard/memory-controller{within(12s)};
2307349SAdrian.Frost@Sun.COMevent fault.memory.intel.page_ue@
2317349SAdrian.Frost@Sun.COM    motherboard/memory-controller/dram-channel/dimm/rank,
2327197Sstephh    message=0, response=0;
2337349SAdrian.Frost@Sun.COMevent fault.memory.intel.dimm_ue@
2347349SAdrian.Frost@Sun.COM    motherboard/memory-controller/dram-channel/dimm/rank;
2355254Sgavinm
2365254Sgavinmprop fault.memory.intel.page_ue@
2377349SAdrian.Frost@Sun.COM    motherboard/memory-controller/dram-channel/dimm/rank[rank_num]
2387197Sstephh    { payloadprop_defined("rank") && rank_num == payloadprop("rank") &&
2395254Sgavinm    (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
2405254Sgavinm    SET_ADDR && SET_OFFSET } (1)->
2417349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.mem_ue@motherboard/memory-controller,
24210049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ue@motherboard/memory-controller,
2437349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.fbd.ma@motherboard/memory-controller;
2445254Sgavinm
2455254Sgavinmprop fault.memory.intel.dimm_ue@
24610146SStephen.Hanson@Sun.COM    motherboard/memory-controller/dram-channel/dimm/rank[rank_num]
2477197Sstephh    { payloadprop_defined("rank") && rank_num == payloadprop("rank") } (1)->
2487349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.mem_ue@motherboard/memory-controller,
24910049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ue@motherboard/memory-controller,
2507349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.fbd.ma@motherboard/memory-controller;
2515254Sgavinm
2527349SAdrian.Frost@Sun.COMevent upset.memory.intel.discard@motherboard/memory-controller{within(1s)};
2537197Sstephh
2548037SAdrian.Frost@Sun.COMprop upset.memory.intel.discard@motherboard/memory-controller (0)->
2557349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.mem_ue@motherboard/memory-controller,
25610049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ue@motherboard/memory-controller,
2577349SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.fbd.ma@motherboard/memory-controller;
2585254Sgavinm
2597349SAdrian.Frost@Sun.COMprop upset.memory.intel.discard@motherboard/memory-controller (0)->
2607349SAdrian.Frost@Sun.COM    EREPORT_BUS_ERROR;
2615254Sgavinm
2627197Sstephh#define PAGE_CE_COUNT   2
2637197Sstephh#define PAGE_CE_TIME    72h
2645254Sgavinm#define DIMM_CE_COUNT   10
2655254Sgavinm#define DIMM_CE_TIME    1week
2665254Sgavinm
2679649SVuong.Nguyen@Sun.COM#define MBDIMM motherboard/memory-controller/dram-channel/dimm
2689649SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.mem_ce@MBDIMM/rank{within(12s)};
26910049SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.ddr2_mem_ce@MBDIMM/rank{within(12s)};
27010049SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.ddr2_mem_ce@
27110049SVuong.Nguyen@Sun.COM    motherboard/memory-controller{within(12s)};
2727197Sstephh
2739649SVuong.Nguyen@Sun.COMengine serd.memory.intel.page_ce@MBDIMM/rank, N=PAGE_CE_COUNT, T=PAGE_CE_TIME;
2749649SVuong.Nguyen@Sun.COMevent fault.memory.intel.page_ce@MBDIMM/rank, message=0, response=0,
2759649SVuong.Nguyen@Sun.COM    count=stat.ce_pgflt@MBDIMM, engine=serd.memory.intel.page_ce@MBDIMM/rank;
2769649SVuong.Nguyen@Sun.COMprop fault.memory.intel.page_ce@MBDIMM/rank
2777197Sstephh    { (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
2787197Sstephh    SET_ADDR && SET_OFFSET } (0)->
27910049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.mem_ce@MBDIMM/rank,
28010049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ce@MBDIMM/rank;
2815254Sgavinm
2829649SVuong.Nguyen@Sun.COMengine serd.memory.intel.dimm_ce@MBDIMM/rank, N=DIMM_CE_COUNT, T=DIMM_CE_TIME;
2839649SVuong.Nguyen@Sun.COMevent fault.memory.intel.dimm_ce@MBDIMM/rank,
2849649SVuong.Nguyen@Sun.COM    engine=serd.memory.intel.dimm_ce@MBDIMM/rank;
2859649SVuong.Nguyen@Sun.COMprop fault.memory.intel.dimm_ce@MBDIMM/rank
2869649SVuong.Nguyen@Sun.COM    { !confprop_defined(MBDIMM, "dimm-size") &&
2879649SVuong.Nguyen@Sun.COM    count(stat.ce_pgflt@MBDIMM) > 512 } (1)->
28810049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.mem_ce@MBDIMM/rank,
28910049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ce@MBDIMM/rank;
2907197Sstephh#define DIMM_CE(dimm_size, n, t, fault_rate) \
2919649SVuong.Nguyen@Sun.COM	prop fault.memory.intel.dimm_ce@MBDIMM/rank { \
2929649SVuong.Nguyen@Sun.COM	    confprop(MBDIMM, "dimm-size") == dimm_size && \
2939649SVuong.Nguyen@Sun.COM	    count(stat.ce_pgflt@MBDIMM) > fault_rate && \
2947197Sstephh	    setserdn(n) & setserdt(t) } (1)-> \
29510049SVuong.Nguyen@Sun.COM    	    ereport.cpu.intel.nb.mem_ce@MBDIMM/rank, \
29610049SVuong.Nguyen@Sun.COM	    ereport.cpu.intel.nb.ddr2_mem_ce@MBDIMM/rank;
2977197Sstephh
2987197SstephhDIMM_CE("8G", 8, 1week, 2000)
2997197SstephhDIMM_CE("4G", 4, 1week, 1500)
3007197SstephhDIMM_CE("2G", 4, 2week, 1000)
3017197SstephhDIMM_CE("1G", 4, 4week, 500)
3027197SstephhDIMM_CE("512M", 4, 8week, 250)
3037197SstephhDIMM_CE("256M", 4, 16week, 125)
3045254Sgavinm
30510049SVuong.Nguyen@Sun.COMprop upset.memory.intel.discard@motherboard/memory-controller (0)->
30610049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ce@motherboard/memory-controller;
30710049SVuong.Nguyen@Sun.COM
3087197Sstephhevent ereport.cpu.intel.nb.fbd.alert@rank{within(12s)};
3097197Sstephhevent fault.memory.intel.fbd.alert@rank, retire=0;
3105254Sgavinm
3117197Sstephhprop fault.memory.intel.fbd.alert@rank (1)->
3127197Sstephh    ereport.cpu.intel.nb.fbd.alert@rank;
3135254Sgavinm
3147197Sstephhprop fault.memory.intel.fbd.alert@rank (0)->
3157349SAdrian.Frost@Sun.COM    EREPORT_BUS_ERROR;
3165254Sgavinm
3177197Sstephhevent ereport.cpu.intel.nb.fbd.crc@rank{within(12s)};
3187197Sstephhevent fault.memory.intel.fbd.crc@rank, retire=0;
3195254Sgavinm
3207197Sstephhprop fault.memory.intel.fbd.crc@rank (1)->
3217197Sstephh    ereport.cpu.intel.nb.fbd.crc@rank;
3225254Sgavinm
3237349SAdrian.Frost@Sun.COMprop fault.memory.intel.fbd.crc@rank (0)-> EREPORT_BUS_ERROR;
3245254Sgavinm
3257197Sstephhevent ereport.cpu.intel.nb.fbd.reset_timeout@memory-controller {within(12s)};
3267197Sstephhevent fault.memory.intel.fbd.reset_timeout@memory-controller, retire=0;
3275254Sgavinm
3287197Sstephhprop fault.memory.intel.fbd.reset_timeout@memory-controller (1)->
3297197Sstephh    ereport.cpu.intel.nb.fbd.reset_timeout@memory-controller;
3305254Sgavinm
3317197Sstephhprop fault.memory.intel.fbd.reset_timeout@memory-controller (0)->
3327349SAdrian.Frost@Sun.COM    EREPORT_BUS_ERROR;
3335254Sgavinm
3347197Sstephhevent ereport.cpu.intel.nb.fbd.ch@dram-channel {within(12s)};
3357197Sstephhengine serd.cpu.intel.nb.fbd.ch@dram-channel, N=2, T=1month;
3367197Sstephhevent fault.memory.intel.fbd.ch@dram-channel, retire=0,
3377197Sstephh    engine=serd.cpu.intel.nb.fbd.ch@dram-channel;
3385254Sgavinm
3397197Sstephhprop fault.memory.intel.fbd.ch@dram-channel (1)->
3407197Sstephh    ereport.cpu.intel.nb.fbd.ch@dram-channel;
3415254Sgavinm
3427197Sstephhprop fault.memory.intel.fbd.ch@dram-channel (0)->
3437349SAdrian.Frost@Sun.COM    EREPORT_BUS_ERROR;
3445254Sgavinm
3457197Sstephhevent ereport.cpu.intel.nb.fbd.otf@dram-channel {within(12s)};
3467197Sstephhengine serd.cpu.intel.nb.fbd_otf@dram-channel, N=2, T=1week;
3477197Sstephhevent fault.memory.intel.fbd.otf@dram-channel, retire=0, response=0,
3487197Sstephh    engine=serd.cpu.intel.nb.fbd_otf@dram-channel;
3495254Sgavinm
3507197Sstephhprop fault.memory.intel.fbd.otf@dram-channel (1)->
3517197Sstephh    ereport.cpu.intel.nb.fbd.otf@dram-channel;
3527197Sstephh
3536359Safevent ereport.cpu.intel.nb.otf@motherboard {within(12s)};
3547197Sstephhevent fault.cpu.intel.nb.otf@motherboard, retire=0, response=0;
3555254Sgavinm
3567197Sstephhprop fault.cpu.intel.nb.otf@motherboard (1)->
3576359Saf    ereport.cpu.intel.nb.otf@motherboard;
3586359Saf
35910199SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.unknown@motherboard {within(12s)};
3607197Sstephhevent ereport.cpu.intel.nb.unknown@memory-controller {within(12s)};
3617197Sstephhevent ereport.cpu.intel.nb.unknown@memory-controller/dram-channel {within(12s)};
3627197Sstephhevent ereport.cpu.intel.nb.spd@memory-controller/dram-channel {within(12s)};
36310049SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.ddr2_spd@
36410049SVuong.Nguyen@Sun.COM    memory-controller/dram-channel {within(12s)};
3657197Sstephhevent upset.discard@memory-controller;
3665254Sgavinm
3677197Sstephhprop upset.discard@memory-controller (0)->
36810199SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.unknown@motherboard,
3697197Sstephh    ereport.cpu.intel.nb.unknown@memory-controller,
3707197Sstephh    ereport.cpu.intel.nb.unknown@memory-controller/dram-channel,
37110049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.spd@memory-controller/dram-channel,
37210049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_spd@memory-controller/dram-channel;
3735254Sgavinm
3747197Sstephhevent ereport.cpu.intel.nb.mem_ds@memory-controller{within(30s)};
37510049SVuong.Nguyen@Sun.COMevent ereport.cpu.intel.nb.ddr2_mem_ds@memory-controller{within(30s)};
3767197Sstephhevent fault.memory.intel.fbd.mem_ds@memory-controller/dram-channel/dimm/rank,
3777197Sstephh    retire=0;
3785254Sgavinm
3795254Sgavinmprop fault.memory.intel.fbd.mem_ds@
3807197Sstephh    memory-controller/dram-channel/dimm/rank[rank_num]
3815254Sgavinm    { payloadprop_defined("rank") && rank_num == payloadprop("rank") } (1)->
38210049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.mem_ds@memory-controller,
38310049SVuong.Nguyen@Sun.COM    ereport.cpu.intel.nb.ddr2_mem_ds@memory-controller;
3845254Sgavinm
3857197Sstephhevent ereport.cpu.intel.nb.fsb@chip{within(12s)};
3867197Sstephhevent fault.cpu.intel.nb.fsb@chip, retire=0;
3875254Sgavinm
3887197Sstephhprop fault.cpu.intel.nb.fsb@chip (1)->
3897197Sstephh    ereport.cpu.intel.nb.fsb@chip;
3905254Sgavinm
3917349SAdrian.Frost@Sun.COMprop fault.cpu.intel.nb.fsb@chip (0)-> EREPORT_BUS_ERROR;
3925254Sgavinm
3935254Sgavinmevent ereport.cpu.intel.nb.ie@motherboard{within(12s)};
3947197Sstephhevent fault.cpu.intel.nb.ie@motherboard, retire=0;
3958052SAdrian.Frost@Sun.COMevent upset.cpu.intel.nb.ie_ce@motherboard{within(12s)};
3965254Sgavinm
3978052SAdrian.Frost@Sun.COMprop upset.cpu.intel.nb.ie_ce@motherboard
3988052SAdrian.Frost@Sun.COM    { payloadprop("intel-error-list") == "B6" } (0)->
3998052SAdrian.Frost@Sun.COM    ereport.cpu.intel.nb.ie@motherboard;
4008052SAdrian.Frost@Sun.COM
4018052SAdrian.Frost@Sun.COMprop fault.cpu.intel.nb.ie@motherboard
4028052SAdrian.Frost@Sun.COM    { payloadprop("intel-error-list") != "B6" } (1)->
4035254Sgavinm    ereport.cpu.intel.nb.ie@motherboard;
4045254Sgavinm
4057349SAdrian.Frost@Sun.COMprop fault.cpu.intel.nb.ie@motherboard (0)-> EREPORT_BUS_ERROR;
4065254Sgavinm
4075254Sgavinmevent ereport.cpu.intel.nb.dma@motherboard{within(12s)};
40811716SVuong.Nguyen@Sun.COMevent upset.cpu.intel.nb.dma@motherboard;
4095254Sgavinm
41011716SVuong.Nguyen@Sun.COMprop upset.cpu.intel.nb.dma@motherboard (1)->
4115254Sgavinm    ereport.cpu.intel.nb.dma@motherboard;
4125254Sgavinm
4135254Sgavinmevent ereport.cpu.intel.nb.esi@motherboard{within(12s)};
4147197Sstephhevent ereport.cpu.intel.nb.pex@hostbridge{within(12s)};
4157197Sstephhevent upset.cpu.intel.nb.pex@hostbridge;
4165254Sgavinm
4177197Sstephhprop upset.cpu.intel.nb.pex@hostbridge (1)->
4185254Sgavinm    ereport.cpu.intel.nb.esi@motherboard,
4197197Sstephh    ereport.cpu.intel.nb.pex@hostbridge;
4205254Sgavinm
4217349SAdrian.Frost@Sun.COMprop upset.cpu.intel.nb.pex@hostbridge (0)-> EREPORT_BUS_ERROR;
4225254Sgavinm
4237197Sstephhevent ereport.cpu.intel.nb.unknown@rank{within(12s)};
4247197Sstephhevent upset.discard@rank;
4255254Sgavinm
4267197Sstephhprop upset.discard@rank (1)->
4277197Sstephh    ereport.cpu.intel.nb.unknown@rank;
4285254Sgavinm
4297349SAdrian.Frost@Sun.COMprop upset.discard@rank (0)-> EREPORT_BUS_ERROR;
4307349SAdrian.Frost@Sun.COM
4317349SAdrian.Frost@Sun.COM/*
4327349SAdrian.Frost@Sun.COM * CPU integrated memory controller
4337349SAdrian.Frost@Sun.COM */
4347349SAdrian.Frost@Sun.COM
4357349SAdrian.Frost@Sun.COM#define CONTAINS_RANK (payloadprop_contains("resource", \
43610942STom.Pothier@Sun.COM    asru(chip/memory-controller/dram-channel/dimm/rank)) || \
4377349SAdrian.Frost@Sun.COM    payloadprop_contains("resource", \
43810942STom.Pothier@Sun.COM    asru(chip/memory-controller/dram-channel/dimm)))
4397349SAdrian.Frost@Sun.COM
4409104SAdrian.Frost@Sun.COM#define	STAT_CPU_MEM_CE_PGFLTS \
44110942STom.Pothier@Sun.COM    stat.ce_pgflt@chip/memory-controller/dram-channel/dimm
4427349SAdrian.Frost@Sun.COM
4438037SAdrian.Frost@Sun.COM#define SET_RES_OFFSET \
4448037SAdrian.Frost@Sun.COM    (!payloadprop_defined("resource[0].hc-specific.offset") || \
4458037SAdrian.Frost@Sun.COM    setpayloadprop("asru-offset", \
4468037SAdrian.Frost@Sun.COM    payloadprop("resource[0].hc-specific.offset")))
4478037SAdrian.Frost@Sun.COM
4489104SAdrian.Frost@Sun.COMengine STAT_CPU_MEM_CE_PGFLTS;
4497349SAdrian.Frost@Sun.COM
45010942STom.Pothier@Sun.COMevent ereport.cpu.intel.quickpath.mem_ue@chip/memory-controller
45112332SAdrian.Frost@Sun.COM    {within(12s)}, discard_if_config_unknown=1;
4527349SAdrian.Frost@Sun.COM
4537349SAdrian.Frost@Sun.COMevent fault.memory.intel.page_ue@
45410942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank,
4557349SAdrian.Frost@Sun.COM    message=0, response=0;		/* do not message individual pageflts */
4567349SAdrian.Frost@Sun.COM
4577349SAdrian.Frost@Sun.COMprop fault.memory.intel.page_ue@
45810942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank
4598037SAdrian.Frost@Sun.COM    { CONTAINS_RANK && (payloadprop_defined("physaddr") ||
4608037SAdrian.Frost@Sun.COM    payloadprop_defined("resource[0].hc-specific.offset")) &&
46110831SYanmin.Sun@Sun.COM    SET_ADDR && SET_RES_OFFSET } (0)->
46210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ue@chip/memory-controller;
4637349SAdrian.Frost@Sun.COM
46410942STom.Pothier@Sun.COM#define	CHIPDIMM chip/memory-controller/dram-channel/dimm
46510831SYanmin.Sun@Sun.COM
46610831SYanmin.Sun@Sun.COMevent fault.memory.intel.dimm_ue@CHIPDIMM/rank;
4677349SAdrian.Frost@Sun.COM
46810831SYanmin.Sun@Sun.COMevent error.memory.intel.dimm_ue_ep@CHIPDIMM/rank;
46910831SYanmin.Sun@Sun.COMevent error.memory.intel.dimm_ue_ex@CHIPDIMM/rank;
47010831SYanmin.Sun@Sun.COM
47110831SYanmin.Sun@Sun.COMprop fault.memory.intel.dimm_ue@CHIPDIMM/rank (1)->
47210831SYanmin.Sun@Sun.COM   error.memory.intel.dimm_ue_ep@CHIPDIMM/rank,
47310831SYanmin.Sun@Sun.COM   error.memory.intel.dimm_ue_ex@CHIPDIMM/rank;
47410831SYanmin.Sun@Sun.COM
47510831SYanmin.Sun@Sun.COMprop error.memory.intel.dimm_ue_ep@CHIPDIMM/rank
4767349SAdrian.Frost@Sun.COM    { CONTAINS_RANK } (1)->
47710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ue@chip/memory-controller;
4787349SAdrian.Frost@Sun.COM
47910831SYanmin.Sun@Sun.COMprop fault.memory.intel.dimm_ue@CHIPDIMM/rank (0)-> EREPORT_BUS_ERROR;
4807349SAdrian.Frost@Sun.COM
4817349SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_ce@
48212332SAdrian.Frost@Sun.COM    chip/memory-controller {within(12s)}, discard_if_config_unknown=1;
4837349SAdrian.Frost@Sun.COM
4849649SVuong.Nguyen@Sun.COMengine serd.memory.intel.page_ce@CHIPDIMM/rank, N=PAGE_CE_COUNT, T=PAGE_CE_TIME;
4859649SVuong.Nguyen@Sun.COMevent fault.memory.intel.page_ce@CHIPDIMM/rank, message=0, response=0,
4869104SAdrian.Frost@Sun.COM    count=STAT_CPU_MEM_CE_PGFLTS,
4879649SVuong.Nguyen@Sun.COM    engine=serd.memory.intel.page_ce@CHIPDIMM/rank;
4889649SVuong.Nguyen@Sun.COMprop fault.memory.intel.page_ce@CHIPDIMM/rank
4898037SAdrian.Frost@Sun.COM    { CONTAINS_RANK && (payloadprop_defined("physaddr") ||
4908037SAdrian.Frost@Sun.COM    payloadprop_defined("resource[0].hc-specific.offset")) &&
49110831SYanmin.Sun@Sun.COM    SET_ADDR && SET_RES_OFFSET } (0)->
49210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ce@chip/memory-controller;
4937349SAdrian.Frost@Sun.COM
4949649SVuong.Nguyen@Sun.COMengine serd.memory.intel.dimm_ce@CHIPDIMM, N=PAGE_CE_COUNT, T=PAGE_CE_TIME;
4959649SVuong.Nguyen@Sun.COMevent fault.memory.intel.dimm_ce@CHIPDIMM,
4969649SVuong.Nguyen@Sun.COM    engine=serd.memory.intel.dimm_ce@CHIPDIMM;
4979649SVuong.Nguyen@Sun.COMprop fault.memory.intel.dimm_ce@CHIPDIMM
4989649SVuong.Nguyen@Sun.COM    { !confprop_defined(CHIPDIMM, "dimm-size") &&
49910831SYanmin.Sun@Sun.COM    count(STAT_CPU_MEM_CE_PGFLTS) > 512 } (0)->
50010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ce@chip/memory-controller;
5017349SAdrian.Frost@Sun.COM
5027349SAdrian.Frost@Sun.COM#define	CPU_MEM_DIMM_CE(dimm_size, n, t, fault_rate) \
5039649SVuong.Nguyen@Sun.COM	prop fault.memory.intel.dimm_ce@CHIPDIMM { \
5049649SVuong.Nguyen@Sun.COM	    confprop(CHIPDIMM, "dimm-size") == dimm_size && \
5059649SVuong.Nguyen@Sun.COM	    count(STAT_CPU_MEM_CE_PGFLTS) > fault_rate && \
50610831SYanmin.Sun@Sun.COM	    setserdn(n) & setserdt(t) } (0)-> \
5077349SAdrian.Frost@Sun.COM	    ereport.cpu.intel.quickpath.mem_ce@ \
50810942STom.Pothier@Sun.COM	    chip/memory-controller;
5097349SAdrian.Frost@Sun.COM
5107349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("16G", 16, 1week, 2000)
5117349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("8G", 8, 1week, 2000)
5127349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("4G", 4, 1week, 1500)
5137349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("2G", 4, 2week, 1000)
5147349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("1G", 4, 4week, 500)
5157349SAdrian.Frost@Sun.COMCPU_MEM_DIMM_CE("512M", 4, 8week, 250)
5167349SAdrian.Frost@Sun.COM
51712332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_unknown@chip/memory-controller
51812332SAdrian.Frost@Sun.COM    {within(12s)}, discard_if_config_unknown=1;
51912332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_unknown@
52012332SAdrian.Frost@Sun.COM    chip/memory-controller/dram-channel {within(12s)},
52112332SAdrian.Frost@Sun.COM    discard_if_config_unknown=1;
5227349SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_unknown@
52310942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank{within(12s)};
52410942STom.Pothier@Sun.COMevent upset.discard@chip/memory-controller;
52510942STom.Pothier@Sun.COMevent upset.discard@chip/memory-controller/dram-channel/dimm/rank;
5267349SAdrian.Frost@Sun.COM
52710942STom.Pothier@Sun.COMprop upset.discard@chip/memory-controller (0)->
52810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_unknown@chip/memory-controller,
5297349SAdrian.Frost@Sun.COM    ereport.cpu.intel.quickpath.mem_unknown@
53010942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel;
5317349SAdrian.Frost@Sun.COM
5327349SAdrian.Frost@Sun.COMprop upset.discard@
53310942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank (1)->
5347349SAdrian.Frost@Sun.COM    ereport.cpu.intel.quickpath.mem_unknown@
53510942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank;
5367349SAdrian.Frost@Sun.COM
53712332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_parity@chip/memory-controller
53812332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
53910942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_parity@chip/memory-controller;
5407349SAdrian.Frost@Sun.COM
54110942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_parity@chip/memory-controller (1)->
54210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_parity@chip/memory-controller;
5437349SAdrian.Frost@Sun.COM
54412332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_addr_parity@chip/memory-controller
54512332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
5467349SAdrian.Frost@Sun.COMevent fault.cpu.intel.quickpath.mem_addr_parity@
54710942STom.Pothier@Sun.COM    chip/memory-controller;
54810650SVuong.Nguyen@Sun.COMevent fault.cpu.intel.quickpath.mem_addr_parity@CHIPDIMM;
54910650SVuong.Nguyen@Sun.COMevent fault.cpu.intel.quickpath.mem_addr_parity@CHIPDIMM/rank;
5507349SAdrian.Frost@Sun.COM
5517349SAdrian.Frost@Sun.COMprop fault.cpu.intel.quickpath.mem_addr_parity@
55210942STom.Pothier@Sun.COM    chip/memory-controller (1)->
55310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_addr_parity@chip/memory-controller;
5547349SAdrian.Frost@Sun.COM
55510650SVuong.Nguyen@Sun.COMprop fault.cpu.intel.quickpath.mem_addr_parity@CHIPDIMM
55610650SVuong.Nguyen@Sun.COM    { payloadprop_contains("resource", asru(CHIPDIMM)) } (1)->
55710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_addr_parity@chip/memory-controller;
55810650SVuong.Nguyen@Sun.COM
55910650SVuong.Nguyen@Sun.COMprop fault.cpu.intel.quickpath.mem_addr_parity@CHIPDIMM/rank
56010650SVuong.Nguyen@Sun.COM    { payloadprop_contains("resource", asru(CHIPDIMM/rank)) } (1)->
56110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_addr_parity@chip/memory-controller;
5627349SAdrian.Frost@Sun.COM
56312332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_bad_addr@chip/memory-controller
56412332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
56510942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_bad_addr@chip/memory-controller;
5667349SAdrian.Frost@Sun.COM
56710942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_bad_addr@chip/memory-controller (1)->
56810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_bad_addr@chip/memory-controller;
5697349SAdrian.Frost@Sun.COM
57012332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_spare@chip/memory-controller
57112332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
5727349SAdrian.Frost@Sun.COMevent fault.cpu.intel.quickpath.mem_spare@
57310942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm;
5747349SAdrian.Frost@Sun.COM
5757349SAdrian.Frost@Sun.COMprop fault.cpu.intel.quickpath.mem_spare@
57610942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm (1)->
57710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_spare@chip/memory-controller;
5787349SAdrian.Frost@Sun.COM
57912332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_bad_id@chip/memory-controller
58012332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
58110942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_bad_id@chip/memory-controller;
5827349SAdrian.Frost@Sun.COM
58310942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_bad_id@chip/memory-controller (1)->
58410942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_bad_id@chip/memory-controller;
5857349SAdrian.Frost@Sun.COM
58612332SAdrian.Frost@Sun.COMevent ereport.cpu.intel.quickpath.mem_redundant@chip/memory-controller
58712332SAdrian.Frost@Sun.COM    {within(1s)}, discard_if_config_unknown=1;
58810650SVuong.Nguyen@Sun.COMengine serd.cpu.intel.quickpath.mem_redundant@CHIPDIMM, N=2, T=72h;
58910650SVuong.Nguyen@Sun.COMevent fault.cpu.intel.quickpath.mem_redundant@CHIPDIMM,
59010650SVuong.Nguyen@Sun.COM    engine=serd.cpu.intel.quickpath.mem_redundant@CHIPDIMM;
59110650SVuong.Nguyen@Sun.COM
59210650SVuong.Nguyen@Sun.COMevent error.cpu.intel.quickpath.mem_redundant@CHIPDIMM/rank;
5937349SAdrian.Frost@Sun.COM
59410650SVuong.Nguyen@Sun.COMprop fault.cpu.intel.quickpath.mem_redundant@CHIPDIMM (1)->
59511324SVuong.Nguyen@Sun.COM    error.cpu.intel.quickpath.mem_redundant@CHIPDIMM/rank<>;
59610650SVuong.Nguyen@Sun.COMprop error.cpu.intel.quickpath.mem_redundant@CHIPDIMM/rank
59710650SVuong.Nguyen@Sun.COM    { CONTAINS_RANK } (1)->
5987349SAdrian.Frost@Sun.COM    ereport.cpu.intel.quickpath.mem_redundant@
59910942STom.Pothier@Sun.COM    chip/memory-controller;
6007349SAdrian.Frost@Sun.COM
60110826SVuong.Nguyen@Sun.COM#define	STATUS_UC	(payloadprop("error_uncorrected") == 1)
60210942STom.Pothier@Sun.COMevent ereport.cpu.intel.quickpath.interconnect@chip
6037349SAdrian.Frost@Sun.COM    {within(1s)};
60410942STom.Pothier@Sun.COMevent upset.cpu.intel.quickpath.interconnect@chip;
6057349SAdrian.Frost@Sun.COM/* Diagnose corrected events to upsets */
60610942STom.Pothier@Sun.COMprop upset.cpu.intel.quickpath.interconnect@chip
6077349SAdrian.Frost@Sun.COM    { !STATUS_UC } (1)->
60810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.interconnect@chip;
6097349SAdrian.Frost@Sun.COM
61010942STom.Pothier@Sun.COMengine serd.cpu.intel.quickpath.interconnect@chip,
6117349SAdrian.Frost@Sun.COM	N=3, T=72h;
61210942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.interconnect@chip,
61310942STom.Pothier@Sun.COM    engine=serd.cpu.intel.quickpath.interconnect@chip;
6147349SAdrian.Frost@Sun.COM
6157349SAdrian.Frost@Sun.COM/* Diagnose uncorrected events to faults */
61610942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.interconnect@chip
6177349SAdrian.Frost@Sun.COM    { STATUS_UC } (0)->
61810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.interconnect@chip;
61910831SYanmin.Sun@Sun.COM
62010831SYanmin.Sun@Sun.COM
62110831SYanmin.Sun@Sun.COM/*
62210831SYanmin.Sun@Sun.COM * Nehalem EX specific rules
62310831SYanmin.Sun@Sun.COM */
62410831SYanmin.Sun@Sun.COM/* MBox errors */
62510831SYanmin.Sun@Sun.COM#define EX_MEM_EVENT(leafclass, t) \
62610831SYanmin.Sun@Sun.COM	event ereport.cpu.intel.quickpath.leafclass@ \
62712332SAdrian.Frost@Sun.COM        chip/memory-controller { within(t) }, discard_if_config_unknown=1
62810831SYanmin.Sun@Sun.COM
62910831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnktrns, 1s);
63010831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnkpers, 1s);
63110831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_sbfbdlinkerr, 1s);
63210831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_nbfbdlnkerr, 1s);
63310831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnkcrcvld, 1s);
63410831SYanmin.Sun@Sun.COM
63510942STom.Pothier@Sun.COMengine serd.cpu.intel.quickpath.mem_link_ce@chip/memory-controller,
63610831SYanmin.Sun@Sun.COM      N=500, T=1week;
63710942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_link_ce@chip/memory-controller,
63810942STom.Pothier@Sun.COM      engine=serd.cpu.intel.quickpath.mem_link_ce@chip/memory-controller,
63910831SYanmin.Sun@Sun.COM      retire=0, response=0;
64010831SYanmin.Sun@Sun.COM
64110942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_link_ce@chip/memory-controller ->
64210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnktrns@chip/memory-controller,
64310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnkpers@chip/memory-controller,
64410942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_sbfbdlinkerr@chip/memory-controller,
64510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_nbfbdlnkerr@chip/memory-controller,
64610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnkcrcvld@chip/memory-controller;
64710831SYanmin.Sun@Sun.COM
64810831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnkuncorr_uc, 1s);
64910831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnkpers_uc, 1s);
65010831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_sbfbdlinkerr_uc, 1s);
65110831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_nbfbdlnkerr_uc, 1s);
65210831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_lnkcrcvld_uc, 1s);
65310831SYanmin.Sun@Sun.COM
65410942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_link_ue@chip/memory-controller,
65510831SYanmin.Sun@Sun.COM      retire=0;
65610831SYanmin.Sun@Sun.COM
65710942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_link_ue@chip/memory-controller ->
65810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnkuncorr_uc@chip/memory-controller,
65910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnkpers_uc@chip/memory-controller,
66010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_sbfbdlinkerr_uc@chip/memory-controller,
66110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_nbfbdlnkerr_uc@chip/memory-controller,
66210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_lnkcrcvld_uc@chip/memory-controller;
66310831SYanmin.Sun@Sun.COM
66410831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_ptrl_fsm_err, 1s);
66510831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_errflw_fsm_fail, 1s);
66610831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_vberr, 1s);
66710831SYanmin.Sun@Sun.COM
66810942STom.Pothier@Sun.COMengine serd.cpu.intel.quickpath.mem_controller_ce@chip/memory-controller,
66910831SYanmin.Sun@Sun.COM      N=500, T=1week;
67010942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_controller_ce@chip/memory-controller,
67110942STom.Pothier@Sun.COM      engine=serd.cpu.intel.quickpath.mem_controller_ce@chip/memory-controller,
67210831SYanmin.Sun@Sun.COM      retire=0, response=0;
67310831SYanmin.Sun@Sun.COM
67410942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_controller_ce@chip/memory-controller ->
67510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ptrl_fsm_err@chip/memory-controller,
67610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_errflw_fsm_fail@chip/memory-controller,
67710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_vberr@chip/memory-controller;
67810831SYanmin.Sun@Sun.COM
67910831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_ptrl_fsm_err_uc, 1s);
68010831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_errflw_fsm_fail_uc, 1s);
68110831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_mcpar_fsmerr_uc, 1s);
68210831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_vberr_uc, 1s);
68310831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_fberr_uc, 1s);
68410831SYanmin.Sun@Sun.COM
68510942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_controller_ue@chip/memory-controller,
68610831SYanmin.Sun@Sun.COM      retire=0;
68710831SYanmin.Sun@Sun.COM
68810942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_controller_ue@chip/memory-controller ->
68910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ptrl_fsm_err_uc@chip/memory-controller,
69010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_errflw_fsm_fail_uc@chip/memory-controller,
69110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_mcpar_fsmerr_uc@chip/memory-controller,
69210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_vberr_uc@chip/memory-controller,
69310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_fberr_uc@chip/memory-controller;
69410831SYanmin.Sun@Sun.COM
69510831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_scrubbing_uc, 1s);
69610831SYanmin.Sun@Sun.COMevent fault.cpu.intel.quickpath.mem_scrubbing@
69710942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank,
69810831SYanmin.Sun@Sun.COM    response=0;
69910831SYanmin.Sun@Sun.COM
70010831SYanmin.Sun@Sun.COMprop fault.cpu.intel.quickpath.mem_scrubbing@
70110942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank[rank_num]
70210831SYanmin.Sun@Sun.COM    { payloadprop_defined("rank") && rank_num == payloadprop("rank") &&
70310831SYanmin.Sun@Sun.COM      (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
70410831SYanmin.Sun@Sun.COM      SET_ADDR && SET_OFFSET } (1)->
70510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_scrubbing_uc@chip/memory-controller;
70610831SYanmin.Sun@Sun.COM
70710831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_ecc_uc, 12s);
70810831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_even_parity_uc, 1s);
70910831SYanmin.Sun@Sun.COM
71010831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_ecc, 12s);
71110831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_even_parity, 1s);
71210831SYanmin.Sun@Sun.COM
71310831SYanmin.Sun@Sun.COMevent error.memory.intel.ex_dimm_ce@
71410942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank;
71510831SYanmin.Sun@Sun.COM
71610831SYanmin.Sun@Sun.COMprop fault.memory.intel.page_ue@
71710942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank[rank_num]
71810831SYanmin.Sun@Sun.COM    { payloadprop_defined("rank") && rank_num == payloadprop("rank") &&
71910831SYanmin.Sun@Sun.COM      (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
72010831SYanmin.Sun@Sun.COM      SET_ADDR && SET_OFFSET } (0)->
72110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc_uc@chip/memory-controller,
72210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity_uc@chip/memory-controller;
72310831SYanmin.Sun@Sun.COM
72410831SYanmin.Sun@Sun.COMprop fault.memory.intel.page_ce@
72510942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank[rank_num]
72610831SYanmin.Sun@Sun.COM    { payloadprop_defined("rank") && rank_num == payloadprop("rank") &&
72710831SYanmin.Sun@Sun.COM      (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
72810831SYanmin.Sun@Sun.COM      SET_ADDR && SET_OFFSET } (0)->
72910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc@chip/memory-controller,
73010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity@chip/memory-controller;
73110831SYanmin.Sun@Sun.COM
73210831SYanmin.Sun@Sun.COMprop error.memory.intel.dimm_ue_ex@
73310942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank[rank_num]
73410831SYanmin.Sun@Sun.COM    { payloadprop_defined("rank") && rank_num == payloadprop("rank") } (1)->
73510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc_uc@chip/memory-controller,
73610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity_uc@chip/memory-controller;
73710831SYanmin.Sun@Sun.COM
73810831SYanmin.Sun@Sun.COMprop fault.memory.intel.dimm_ce@
73910942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm
74010942STom.Pothier@Sun.COM    { !confprop_defined(chip/memory-controller/dram-channel/dimm,
74110831SYanmin.Sun@Sun.COM    "dimm-size") && setserdn(10) & setserdt(1week) } (0)->
74210831SYanmin.Sun@Sun.COM    error.memory.intel.ex_dimm_ce@
74310942STom.Pothier@Sun.COM     chip/memory-controller/dram-channel/dimm/rank;
74410831SYanmin.Sun@Sun.COMprop error.memory.intel.ex_dimm_ce@
74510942STom.Pothier@Sun.COM    chip/memory-controller/dram-channel/dimm/rank[rank_num]
74610831SYanmin.Sun@Sun.COM    { payloadprop_defined("rank") && rank_num == payloadprop("rank") &&
74710942STom.Pothier@Sun.COM      !confprop_defined(chip/memory-controller/dram-channel/dimm,
74810831SYanmin.Sun@Sun.COM    "dimm-size") &&
74910831SYanmin.Sun@Sun.COM    count(STAT_CPU_MEM_CE_PGFLTS) > 512 } (1)->
75010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc@chip/memory-controller,
75110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity@chip/memory-controller;
75210831SYanmin.Sun@Sun.COM
75310831SYanmin.Sun@Sun.COM#define	EX_CPU_MEM_DIMM_CE(dimm_size, n, t, fault_rate) \
75410831SYanmin.Sun@Sun.COM	prop fault.memory.intel.dimm_ce@ \
75510942STom.Pothier@Sun.COM	    chip/memory-controller/dram-channel/dimm { \
75610942STom.Pothier@Sun.COM	    confprop(chip/memory-controller/dram-channel/dimm, \
75710831SYanmin.Sun@Sun.COM	    "dimm-size") == dimm_size && \
75810831SYanmin.Sun@Sun.COM	    setserdn(n) & setserdt(t) } (0)-> \
75910831SYanmin.Sun@Sun.COM	    error.memory.intel.ex_dimm_ce@ \
76010942STom.Pothier@Sun.COM	    chip/memory-controller/dram-channel/dimm/rank; \
76110831SYanmin.Sun@Sun.COM	prop error.memory.intel.ex_dimm_ce@ \
76210942STom.Pothier@Sun.COM	    chip/memory-controller/dram-channel/dimm/rank[rank_num] { \
76310831SYanmin.Sun@Sun.COM            payloadprop_defined("rank") && rank_num == payloadprop("rank") && \
76410942STom.Pothier@Sun.COM	    confprop(chip/memory-controller/dram-channel/dimm, \
76510831SYanmin.Sun@Sun.COM	    "dimm-size") == dimm_size && \
76610831SYanmin.Sun@Sun.COM	    count(STAT_CPU_MEM_CE_PGFLTS) > fault_rate } (1)-> \
76710942STom.Pothier@Sun.COM            ereport.cpu.intel.quickpath.mem_ecc@chip/memory-controller, \
76810942STom.Pothier@Sun.COM            ereport.cpu.intel.quickpath.mem_even_parity@chip/memory-controller;
76910831SYanmin.Sun@Sun.COM
77010831SYanmin.Sun@Sun.COMEX_CPU_MEM_DIMM_CE("16G", 16, 1week, 2000)
77110831SYanmin.Sun@Sun.COMEX_CPU_MEM_DIMM_CE("8G", 8, 1week, 2000)
77210831SYanmin.Sun@Sun.COMEX_CPU_MEM_DIMM_CE("4G", 4, 1week, 1500)
77310831SYanmin.Sun@Sun.COMEX_CPU_MEM_DIMM_CE("2G", 4, 2week, 1000)
77410831SYanmin.Sun@Sun.COMEX_CPU_MEM_DIMM_CE("1G", 4, 4week, 500)
77510831SYanmin.Sun@Sun.COM
77610942STom.Pothier@Sun.COMevent upset.memory.intel.discard@chip/memory-controller{within(1s)};
77710831SYanmin.Sun@Sun.COM
77810942STom.Pothier@Sun.COMprop upset.memory.intel.discard@chip/memory-controller (0)->
77910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_scrubbing_uc@chip/memory-controller,
78010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc_uc@chip/memory-controller,
78110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity_uc@chip/memory-controller,
78210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_ecc@chip/memory-controller,
78310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_even_parity@chip/memory-controller;
78410831SYanmin.Sun@Sun.COM
78510831SYanmin.Sun@Sun.COMEX_MEM_EVENT(mem_failover_mir, 1s);
78610942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.mem_failover_mir@chip/memory-controller,
78710831SYanmin.Sun@Sun.COM      retire=0;
78810831SYanmin.Sun@Sun.COM
78910942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.mem_failover_mir@chip/memory-controller ->
79010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_failover_mir@chip/memory-controller;
79110831SYanmin.Sun@Sun.COM
79210831SYanmin.Sun@Sun.COM/*
79310831SYanmin.Sun@Sun.COM * RBox errors
79410831SYanmin.Sun@Sun.COM */
79510831SYanmin.Sun@Sun.COM#define EX_EVENT(leafclass, t) \
79610942STom.Pothier@Sun.COM	event ereport.cpu.intel.quickpath.leafclass@chip { within(t) }
79710831SYanmin.Sun@Sun.COM
79810942STom.Pothier@Sun.COMengine serd.cpu.intel.quickpath.bus_interconnect@chip,
79910831SYanmin.Sun@Sun.COM	N=3, T=72h;
80010942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.bus_interconnect@chip,
80110942STom.Pothier@Sun.COM    engine=serd.cpu.intel.quickpath.bus_interconnect@chip,
80210831SYanmin.Sun@Sun.COM    retire=0;
80310831SYanmin.Sun@Sun.COM
80410831SYanmin.Sun@Sun.COMEX_EVENT(bus_retry_abort, 1s);
80510831SYanmin.Sun@Sun.COMEX_EVENT(bus_link_init_ce, 1s);
80610942STom.Pothier@Sun.COMevent upset.cpu.intel.quickpath.discard@chip;
80710831SYanmin.Sun@Sun.COM
80810942STom.Pothier@Sun.COMprop upset.cpu.intel.quickpath.discard@chip (0)->
80910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_retry_abort@chip,
81010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_link_init_ce@chip;
81110831SYanmin.Sun@Sun.COM
81210831SYanmin.Sun@Sun.COMEX_EVENT(bus_unknown, 1s);
81310831SYanmin.Sun@Sun.COMEX_EVENT(bus_single_ecc, 1s);
81410831SYanmin.Sun@Sun.COMEX_EVENT(bus_crc_flit, 1s);
81510831SYanmin.Sun@Sun.COM
81610942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.bus_interconnect@chip (0)->
81710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_unknown@chip,
81810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_single_ecc@chip,
81910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_crc_flit@chip;
82010831SYanmin.Sun@Sun.COM
82110831SYanmin.Sun@Sun.COMEX_EVENT(bus_unknown_external, 1s);
82210831SYanmin.Sun@Sun.COMEX_EVENT(bus_crc_flit_external, 1s);
82310942STom.Pothier@Sun.COMprop upset.cpu.intel.quickpath.discard@chip (0)->
82410942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_unknown_external@chip,
82510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_crc_flit_external@chip;
82610831SYanmin.Sun@Sun.COM
82710831SYanmin.Sun@Sun.COMEX_EVENT(bus_unknown_uc, 1s);
82810831SYanmin.Sun@Sun.COMEX_EVENT(bus_opr_poison_err, 1s);
82910831SYanmin.Sun@Sun.COMEX_EVENT(bus_eot_parity, 1s);
83010831SYanmin.Sun@Sun.COMEX_EVENT(bus_rta_parity, 1s);
83110831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_sbu_route, 1s);
83210831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_msg, 1s);
83310831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_vn_credit, 1s);
83410831SYanmin.Sun@Sun.COMEX_EVENT(bus_hdr_double_ecc, 1s);
83510831SYanmin.Sun@Sun.COMEX_EVENT(bus_link_retry_err, 1s);
83610831SYanmin.Sun@Sun.COM
83710942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.bus_interconnect@chip
83810831SYanmin.Sun@Sun.COM    { setserdincrement(4) } (0)->
83910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_unknown_uc@chip,
84010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_opr_poison_err@chip,
84110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_eot_parity@chip,
84210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_rta_parity@chip,
84310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_sbu_route@chip,
84410942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_msg@chip,
84510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_vn_credit@chip,
84610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_hdr_double_ecc@chip,
84710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_link_retry_err@chip;
84810831SYanmin.Sun@Sun.COM
84910831SYanmin.Sun@Sun.COMEX_EVENT(bus_unknown_uc_external, 1s);
85010831SYanmin.Sun@Sun.COMEX_EVENT(bus_opr_poison_err_external, 1s);
85110831SYanmin.Sun@Sun.COMEX_EVENT(bus_eot_parity_external, 1s);
85210831SYanmin.Sun@Sun.COMEX_EVENT(bus_rta_parity_external, 1s);
85310831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_sbu_route_external, 1s);
85410831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_msg_external, 1s);
85510831SYanmin.Sun@Sun.COMEX_EVENT(bus_bad_vn_credit_external, 1s);
85610831SYanmin.Sun@Sun.COMEX_EVENT(bus_hdr_double_ecc_external, 1s);
85710831SYanmin.Sun@Sun.COMEX_EVENT(bus_link_retry_err_external, 1s);
85810831SYanmin.Sun@Sun.COM
85910942STom.Pothier@Sun.COMprop upset.cpu.intel.quickpath.discard@chip (0)->
86010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_unknown_uc_external@chip,
86110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_opr_poison_err_external@chip,
86210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_eot_parity_external@chip,
86310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_rta_parity_external@chip,
86410942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_sbu_route_external@chip,
86510942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_msg_external@chip,
86610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_bad_vn_credit_external@chip,
86710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_hdr_double_ecc_external@chip,
86810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_link_retry_err_external@chip;
86910831SYanmin.Sun@Sun.COM
87010831SYanmin.Sun@Sun.COM/*
87110831SYanmin.Sun@Sun.COM * CBox errors
87210831SYanmin.Sun@Sun.COM */
87310831SYanmin.Sun@Sun.COMEX_EVENT(llc_ewb_uc, 1s);
87410942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.llc_ewb@chip,
87510831SYanmin.Sun@Sun.COM      retire=0, response=0;
87610831SYanmin.Sun@Sun.COM
87710942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.llc_ewb@chip
87810831SYanmin.Sun@Sun.COM    { (payloadprop_defined("physaddr") || payloadprop_defined("offset")) &&
87910831SYanmin.Sun@Sun.COM    SET_ADDR && SET_OFFSET } (1)->
88010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.llc_ewb_uc@chip;
88110831SYanmin.Sun@Sun.COM
88210942STom.Pothier@Sun.COMprop upset.cpu.intel.quickpath.discard@chip (0)->
88310942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.llc_ewb_uc@chip;
88410831SYanmin.Sun@Sun.COM
88510831SYanmin.Sun@Sun.COM/*
88610831SYanmin.Sun@Sun.COM * SBox errors
88710831SYanmin.Sun@Sun.COM */
88810831SYanmin.Sun@Sun.COMEX_EVENT(system_cache_uc, 1s);
88910942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.system_cache@chip,
89010831SYanmin.Sun@Sun.COM      retire=0, response=0;
89110942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.system_cache@chip ->
89210942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.system_cache_uc@chip;
89310831SYanmin.Sun@Sun.COM
89410831SYanmin.Sun@Sun.COM/*
89510831SYanmin.Sun@Sun.COM * BBox errors
89610831SYanmin.Sun@Sun.COM */
89710831SYanmin.Sun@Sun.COMEX_EVENT(home_agent_uc, 1s);
89810942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.home_agent@chip,
89910831SYanmin.Sun@Sun.COM      retire=0, response=0;
90010942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.home_agent@chip ->
90110942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.home_agent_uc@chip;
90210831SYanmin.Sun@Sun.COM
90310831SYanmin.Sun@Sun.COM/*
90410831SYanmin.Sun@Sun.COM * UBox errors
90510831SYanmin.Sun@Sun.COM */
90610831SYanmin.Sun@Sun.COMEX_EVENT(sys_cfg_cfa_ecc, 1s);
90710831SYanmin.Sun@Sun.COMEX_EVENT(sys_cfg_uc, 1s);
90810831SYanmin.Sun@Sun.COM
90910942STom.Pothier@Sun.COMengine serd.cpu.intel.quickpath.sys_cfg@chip,
91010831SYanmin.Sun@Sun.COM      N=2, T=72h;
91110942STom.Pothier@Sun.COMevent fault.cpu.intel.quickpath.sys_cfg@chip,
91210942STom.Pothier@Sun.COM      engine=serd.cpu.intel.quickpath.sys_cfg@chip,
91310831SYanmin.Sun@Sun.COM      retire=0, response=0;
91410831SYanmin.Sun@Sun.COM
91510942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.sys_cfg@chip (0)->
91610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.sys_cfg_cfa_ecc@chip;
91710831SYanmin.Sun@Sun.COM
91810942STom.Pothier@Sun.COMprop fault.cpu.intel.quickpath.sys_cfg@chip
91910831SYanmin.Sun@Sun.COM    { setserdincrement(3) } (0)->
92010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.sys_cfg_uc@chip;
92110831SYanmin.Sun@Sun.COM
92210831SYanmin.Sun@Sun.COM/*
92310831SYanmin.Sun@Sun.COM * Handling poison errors
92410831SYanmin.Sun@Sun.COM */
92510831SYanmin.Sun@Sun.COMengine stat.has_poison@motherboard;
92610831SYanmin.Sun@Sun.COMevent fault.cpu.intel.has_poison@motherboard,
92710831SYanmin.Sun@Sun.COM      count=stat.has_poison@motherboard[0],
92810831SYanmin.Sun@Sun.COM      message=0, retire=0, response=0;
92910831SYanmin.Sun@Sun.COMengine stat.discard_fatal@motherboard;
93010831SYanmin.Sun@Sun.COMevent fault.cpu.intel.discard_fatal@motherboard,
93110831SYanmin.Sun@Sun.COM      count=stat.discard_fatal@motherboard[0],
93210831SYanmin.Sun@Sun.COM      message=0, retire=0, response=0;
93310831SYanmin.Sun@Sun.COM
93410831SYanmin.Sun@Sun.COMprop fault.cpu.intel.has_poison@motherboard
93510831SYanmin.Sun@Sun.COM    { payloadprop_defined("poison") && 1 == payloadprop("poison") } (1)->
93610942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.mem_scrubbing_uc@chip<>/memory-controller<>,
93710942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.llc_ewb_uc@chip<>,
93810942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.system_cache_uc@chip<>,
93910942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_opr_poison_err@chip<>,
94010942STom.Pothier@Sun.COM    ereport.cpu.intel.quickpath.bus_opr_poison_err_external@chip<>;
94110831SYanmin.Sun@Sun.COM
94210831SYanmin.Sun@Sun.COMprop fault.cpu.intel.discard_fatal@motherboard
94310831SYanmin.Sun@Sun.COM    { count(stat.has_poison@motherboard[0]) > count(stat.discard_fatal@motherboard[0]) &&
94410831SYanmin.Sun@Sun.COM      payloadprop_defined("bank_number") && 5 == payloadprop("bank_number") &&
94510831SYanmin.Sun@Sun.COM      payloadprop_defined("processor_context_corrupt") &&
94610831SYanmin.Sun@Sun.COM      1 == payloadprop("processor_context_corrupt") } (0)->
94711264SAdrian.Frost@Sun.COM    ereport.cpu.intel.internal_unclassified@chip<>/core<>/strand<> {within(10s)};
94810831SYanmin.Sun@Sun.COM
94910831SYanmin.Sun@Sun.COMprop fault.cpu.intel.internal@chip/core/strand
95010831SYanmin.Sun@Sun.COM    { (count(stat.has_poison@motherboard[0]) <= count(stat.discard_fatal@motherboard[0]) ||
95110831SYanmin.Sun@Sun.COM      !payloadprop_defined("bank_number") || 5 != payloadprop("bank_number") ||
95210831SYanmin.Sun@Sun.COM      !payloadprop_defined("processor_context_corrupt") ||
95310831SYanmin.Sun@Sun.COM      0 == payloadprop("processor_context_corrupt")) &&
95410831SYanmin.Sun@Sun.COM      (payloadprop("error_uncorrected") == 1 ? setserdincrement(4) : 1) } (0)->
95510831SYanmin.Sun@Sun.COM    ereport.cpu.intel.internal_unclassified@chip/core/strand;
956