1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#pragma ident "%Z%%M% %I% %E% SMI" 27 28#pragma dictionary "SUN4U" 29 30#define AGENT_ID_MASK 0x1f 31#define AGENT_ID_SHIFT 24 32 33#define CPU_FIT 500 34 35fru cpu; 36 37event fault.io.datapath@cpu, retire=0, 38 FITrate=CPU_FIT, FRU=cpu; 39 40event ereport.io.psy.ecc.pue@hostbridge{within(5s)}; 41event ereport.io.sch.ecc.pue@hostbridge{within(5s)}; 42event ereport.io.xmits.ecc.pue@hostbridge{within(5s)}; 43event ereport.io.cpu.ecc.thresh@cpu; 44 45/* 46 * For Starcat we need to apply the following logic to calculate the 47 * Agentid of the system board in question. 48 */ 49prop fault.io.datapath@cpu[cpuid] (0)-> 50 ereport.io.psy.ecc.pue@hostbridge 51 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 52 ((cpuid >> 5) & AGENT_ID_MASK)}, 53 ereport.io.sch.ecc.pue@hostbridge 54 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 55 ((cpuid >> 5) & AGENT_ID_MASK)}, 56 ereport.io.xmits.ecc.pue@hostbridge 57 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 58 ((cpuid >> 5) & AGENT_ID_MASK)}, 59 ereport.io.cpu.ecc.thresh@cpu[cpuid]; 60 61engine serd.io.cpu.ecc@cpu, 62 N=3, T=1day, method=persistent, 63 trip=ereport.io.cpu.ecc.thresh@cpu; 64 65event upset.io.datapath@cpu, 66 engine=serd.io.cpu.ecc@cpu; 67 68event ereport.io.psy.ecc.pce@hostbridge{within(5s)}; 69event ereport.io.sch.ecc.pce@hostbridge{within(5s)}; 70event ereport.io.xmits.ecc.pce@hostbridge{within(5s)}; 71 72prop upset.io.datapath@cpu[cpuid] (0)-> 73 ereport.io.psy.ecc.pce@hostbridge 74 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 75 ((cpuid >> 5) & AGENT_ID_MASK)}, 76 ereport.io.sch.ecc.pce@hostbridge 77 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 78 ((cpuid >> 5) & AGENT_ID_MASK)}, 79 ereport.io.xmits.ecc.pce@hostbridge 80 {((payloadprop("ecc-afsr") >> AGENT_ID_SHIFT) & AGENT_ID_MASK) == 81 ((cpuid >> 5) & AGENT_ID_MASK)}; 82