xref: /titanic_51/usr/src/cmd/fm/eversholt/files/sparc/sun4v/zambezi.esc (revision 13faa91230bde46da937bf33010b9accc5bdeb59)
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/*
23 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#pragma ident	"%Z%%M%	%I%	%E% SMI"
28
29#pragma dictionary "SUN4V"
30
31/*
32 * Define FITrates for different types of errors.  For the ultrSPARC-T2plus
33 * interconnect, they are all defined to provide relative likelihood as
34 * actual FITrates are unavailable.  We define them here in case more
35 * accurate values become available in future.
36 */
37#define CPU_CHIP_FIT		400
38#define FPGA_FIT		400
39#define FIRMWARE_HYPERVISOR_FIT	400
40#define FIRMWARE_VBSC_FIT	400
41#define INTERCONNECT_OPU_FIT	400
42#define INTERCONNECT_LFU_F_FIT	400
43#define INTERCONNECT_LFU_U_FIT	400
44#define INTERCONNECT_LFU_C_FIT	400
45#define INTERCONNECT_GPD_FIT	400
46#define INTERCONNECT_ASU_FIT	400
47
48/*
49 * Define propogation delays for the ereports.
50 *
51 * For immediate processing, we specify a very short delay, which seems to
52 * work better than 0.  For ereports that are to be ignored, we delay longer,
53 * 1 second.
54 */
55#define IGNORE_DELAY		1s
56#define	IMMEDIATE_DELAY		5ms
57#define	SERD_DELAY		1ms
58#define	RETRAIN_DELAY		5s
59
60
61/*
62 * Test for primary or secondary ereports
63 */
64#define IS_PRIMARY		(payloadprop("primary"))
65#define IS_SECONDARY		(! payloadprop("primary"))
66
67
68/*
69 * Tests to determine what CHIP is associated with an ereport
70 */
71#define MATCH_CPUID(n)		(payloadprop("cpu-nodeid") == n)
72
73
74/*
75 * SERD values used by the LFU subsystem
76 */
77#define	LFU_CRC_SERD_N	22
78#define	LFU_CRC_SERD_T	30 min
79
80
81/*
82 * ASRU and FRU definitions used by this diagnosis engine.
83 */
84asru motherboard;
85asru interconnect;
86asru chip;
87fru  motherboard;
88fru  cpuboard;
89
90
91/*
92 * Define the errors that propogate to a CHIP fault.
93 */
94event error.cpu.ultraSPARC-T2plus.opu.protocol@chip;
95event error.cpu.ultraSPARC-T2plus.lfu-c.chip@chip;
96event error.cpu.ultraSPARC-T2plus.lfu-f.chip@chip;
97event error.cpu.ultraSPARC-T2plus.lfu-u.chip@chip;
98event error.cpu.ultraSPARC-T2plus.gpd-u.chip@chip;
99event error.cpu.ultraSPARC-T2plus.gpd-c.chip@chip;
100event error.cpu.ultraSPARC-T2plus.asu.protocol@chip;
101
102event fault.cpu.ultraSPARC-T2plus.chip@chip
103    FITrate=CPU_CHIP_FIT, ASRU=chip, FRU=cpuboard;
104
105prop fault.cpu.ultraSPARC-T2plus.chip@chip ->
106	error.cpu.ultraSPARC-T2plus.opu.protocol@chip,
107	error.cpu.ultraSPARC-T2plus.lfu-c.chip@chip,
108	error.cpu.ultraSPARC-T2plus.lfu-f.chip@chip,
109	error.cpu.ultraSPARC-T2plus.lfu-u.chip@chip,
110	error.cpu.ultraSPARC-T2plus.gpd-u.chip@chip,
111	error.cpu.ultraSPARC-T2plus.gpd-c.chip@chip,
112	error.cpu.ultraSPARC-T2plus.asu.protocol@chip;
113
114
115/*
116 * OPU Subsystem
117 */
118event ereport.asic.zambezi.opu.ods-ctrl-parity@interconnect
119	    {within (IMMEDIATE_DELAY)};
120event ereport.asic.zambezi.opu.ods-data-coherent-read@interconnect
121	    {within (IMMEDIATE_DELAY)};
122event ereport.asic.zambezi.opu.ods-data-coherent-writeback@interconnect
123	    {within (IMMEDIATE_DELAY)};
124event ereport.asic.zambezi.opu.ods-data-destid@interconnect
125	    {within (IMMEDIATE_DELAY)};
126event ereport.asic.zambezi.opu.ods-data-parity@interconnect
127	    {within (IMMEDIATE_DELAY)};
128event ereport.asic.zambezi.opu.oqs-request-bad-nc-type@interconnect
129	    {within (IMMEDIATE_DELAY)};
130event ereport.asic.zambezi.opu.oqs-request-bad-read-type@interconnect
131	    {within (IMMEDIATE_DELAY)};
132event ereport.asic.zambezi.opu.oqs-request-bad-writeback-type@interconnect
133	    {within (IMMEDIATE_DELAY)};
134event ereport.asic.zambezi.opu.oqs-request-duplicate@interconnect
135	    {within (IMMEDIATE_DELAY)};
136event ereport.asic.zambezi.opu.ors-response-bad-nc-type@interconnect
137	    {within (IMMEDIATE_DELAY)};
138event ereport.asic.zambezi.opu.ors-response-bad-read-type@interconnect
139	    {within (IMMEDIATE_DELAY)};
140event ereport.asic.zambezi.opu.ors-response-bad-writeback-type@interconnect
141	    {within (IMMEDIATE_DELAY)};
142event ereport.asic.zambezi.opu.ors-response-duplicate@interconnect
143	    {within (IMMEDIATE_DELAY)};
144event ereport.asic.zambezi.opu.ors-response-inconsistent@interconnect
145	    {within (IMMEDIATE_DELAY)};
146event ereport.asic.zambezi.opu.ors-response-unexpected@interconnect
147	    {within (IMMEDIATE_DELAY)};
148event ereport.asic.zambezi.opu.ors-timeout-read@interconnect
149	    {within (IMMEDIATE_DELAY)};
150event ereport.asic.zambezi.opu.ors-timeout-writeback@interconnect
151	    {within (IMMEDIATE_DELAY)};
152
153
154/*
155 * Declare the intermediate errors that will be generated by the ereports
156 * in this subsystem.  These errors will, in turn, propogate to the
157 * appropriate fault.
158 */
159event error.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect;
160event error.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect;
161
162
163/*
164 * This fault is diagnosed for uncorrectible OPU errors
165 */
166event fault.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect
167    FITrate=INTERCONNECT_OPU_FIT, ASRU=interconnect, FRU=motherboard;
168
169prop error.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect ->
170	ereport.asic.zambezi.opu.ods-ctrl-parity@interconnect;
171
172prop fault.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect ->
173	error.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect;
174
175
176/*
177 * This fault is diagnosed for correctible OPU errors.
178 */
179event fault.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect
180    FITrate=INTERCONNECT_OPU_FIT, ASRU=interconnect, FRU=motherboard;
181
182prop error.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect ->
183	ereport.asic.zambezi.opu.ods-data-parity@interconnect;
184
185prop fault.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect ->
186	error.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect;
187
188
189/*
190 * All of the following ereports are associated with a CHIP.  Propogate
191 * them to the appropriate error for diagnosis to a CHIP fault, above.
192 */
193prop error.cpu.ultraSPARC-T2plus.opu.protocol@chip[chip_num] (0) ->
194	ereport.asic.zambezi.opu.ods-data-destid@interconnect
195	    {MATCH_CPUID(chip_num)},
196	ereport.asic.zambezi.opu.ods-data-coherent-read@interconnect
197	    {MATCH_CPUID(chip_num)},
198	ereport.asic.zambezi.opu.ods-data-coherent-writeback@interconnect
199	    {MATCH_CPUID(chip_num)},
200	ereport.asic.zambezi.opu.oqs-request-bad-read-type@interconnect
201	    {MATCH_CPUID(chip_num)},
202	ereport.asic.zambezi.opu.oqs-request-bad-writeback-type@interconnect
203	    {MATCH_CPUID(chip_num)},
204	ereport.asic.zambezi.opu.oqs-request-bad-nc-type@interconnect
205	    {MATCH_CPUID(chip_num)},
206	ereport.asic.zambezi.opu.oqs-request-duplicate@interconnect
207	    {MATCH_CPUID(chip_num)},
208	ereport.asic.zambezi.opu.ors-response-unexpected@interconnect
209	    {MATCH_CPUID(chip_num)},
210	ereport.asic.zambezi.opu.ors-response-duplicate@interconnect
211	    {MATCH_CPUID(chip_num)},
212	ereport.asic.zambezi.opu.ors-response-inconsistent@interconnect
213	    {MATCH_CPUID(chip_num)},
214	ereport.asic.zambezi.opu.ors-response-bad-read-type@interconnect
215	    {MATCH_CPUID(chip_num)},
216	ereport.asic.zambezi.opu.ors-response-bad-writeback-type@interconnect
217	    {MATCH_CPUID(chip_num)},
218	ereport.asic.zambezi.opu.ors-response-bad-nc-type@interconnect
219	    {MATCH_CPUID(chip_num)},
220	ereport.asic.zambezi.opu.ors-timeout-read@interconnect
221	    {MATCH_CPUID(chip_num)},
222	ereport.asic.zambezi.opu.ors-timeout-writeback@interconnect
223	    {MATCH_CPUID(chip_num)};
224
225
226
227/*
228 * LFU Subsystem
229 */
230event ereport.asic.zambezi.lfu.crc-error@interconnect
231	    {within (SERD_DELAY)};
232event ereport.asic.zambezi.lfu.data-invalid-or-unmapped@interconnect
233	    {within (IMMEDIATE_DELAY)};
234event ereport.asic.zambezi.lfu.electric-idle@interconnect
235	    {within (RETRAIN_DELAY)};
236event ereport.asic.zambezi.lfu.irq-overflow@interconnect
237	    {within (IMMEDIATE_DELAY)};
238event ereport.asic.zambezi.lfu.irq-parity@interconnect
239	    {within (IMMEDIATE_DELAY)};
240event ereport.asic.zambezi.lfu.irq-underflow@interconnect
241	    {within (IMMEDIATE_DELAY)};
242event ereport.asic.zambezi.lfu.lane-failure-slf@interconnect
243	    {within (IMMEDIATE_DELAY)};
244event ereport.asic.zambezi.lfu.lane-failure-mlf@interconnect
245	    {within (IMMEDIATE_DELAY)};
246event ereport.asic.zambezi.lfu.link-down-retrain@interconnect
247	    {within (RETRAIN_DELAY)};
248event ereport.asic.zambezi.lfu.link-down-retrain-failed@interconnect
249	    {within (IMMEDIATE_DELAY)};
250event ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
251	    {within (SERD_DELAY)};
252event ereport.asic.zambezi.lfu.link-training-l05@interconnect
253	    {within (IMMEDIATE_DELAY)};
254event ereport.asic.zambezi.lfu.link-training-config@interconnect
255	    {within (IMMEDIATE_DELAY)};
256event ereport.asic.zambezi.lfu.link-training-state@interconnect
257	    {within (IMMEDIATE_DELAY)};
258event ereport.asic.zambezi.lfu.link-training-testing@interconnect
259	    {within (IMMEDIATE_DELAY)};
260event ereport.asic.zambezi.lfu.replay-lcf-rcvd-error@interconnect
261	    {within (RETRAIN_DELAY)};
262event ereport.asic.zambezi.lfu.replay-lcf-sent-error@interconnect
263	    {within (RETRAIN_DELAY)};
264event ereport.asic.zambezi.lfu.replay-parity@interconnect
265	    {within (IMMEDIATE_DELAY)};
266event ereport.asic.zambezi.lfu.reply-invalid-or-unmapped@interconnect
267	    {within (IMMEDIATE_DELAY)};
268event ereport.asic.zambezi.lfu.reply-tid-release-set@interconnect
269	    {within (IMMEDIATE_DELAY)};
270event ereport.asic.zambezi.lfu.retrain-error-disabled@interconnect
271	    {within (RETRAIN_DELAY)};
272event ereport.asic.zambezi.lfu.retrain-error-resume-timeout@interconnect
273	    {within (RETRAIN_DELAY)};
274event ereport.asic.zambezi.lfu.retrain-error-second-crc@interconnect
275	    {within (RETRAIN_DELAY)};
276event ereport.asic.zambezi.lfu.retrain-failed-disabled@interconnect
277	    {within (IMMEDIATE_DELAY)};
278event ereport.asic.zambezi.lfu.retrain-failed-resume-timeout@interconnect
279	    {within (IMMEDIATE_DELAY)};
280event ereport.asic.zambezi.lfu.retrain-failed-second-crc@interconnect
281	    {within (IMMEDIATE_DELAY)};
282
283/*
284 * Declare the intermediate errors that will be generated by the ereports
285 * in this subsystem.  These errors will, in turn, propogate to the
286 * appropriate fault.
287 */
288event error.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect;
289event error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect;
290event error.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect;
291event error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
292
293
294/*
295 * Declare the upsets that may be diagnosed for the LFU subsystem
296 */
297event upset.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
298
299
300/*
301 * Declare the faults that may be generated for the LFU subsystem.
302 */
303event fault.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect
304    FITrate=INTERCONNECT_LFU_C_FIT, ASRU=interconnect, FRU=motherboard;
305
306event fault.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect
307    FITrate=INTERCONNECT_LFU_F_FIT, ASRU=interconnect, FRU=motherboard;
308
309event fault.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect
310    FITrate=INTERCONNECT_LFU_U_FIT, ASRU=interconnect, FRU=motherboard;
311
312/*
313 * Define how the intermediate errors propogate to faults for the LFU
314 * subsystem.
315 */
316prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect ->
317	error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
318
319prop fault.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect ->
320	error.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect;
321
322prop fault.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect ->
323	error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect;
324
325prop fault.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect ->
326	error.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect;
327
328
329/*
330 * We want to count CRC errors on each connection between an interconnect
331 * and a CHIP. Each interconnect is connected to each CHIP, so we need 16
332 * SERD engines (4 interconnects, and 4 CHIPs).
333 *
334 * The topology does not include interconnect/chip, so we cannot do this
335 * automatically.  Instead, we explicitly declare 4 sets of serd engine
336 * propogations, one for each CHIP, and let eversholt expand to all available
337 * interconnects.
338 */
339event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip0@interconnect;
340event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip1@interconnect;
341event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip2@interconnect;
342event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip3@interconnect;
343
344prop error.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect ->
345	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip0@interconnect,
346	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip1@interconnect,
347	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip2@interconnect,
348	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip3@interconnect;
349
350/*
351 * CHIP0 SERD rules
352 *
353 * These rules create a SERD engine for the connection between each
354 * interconnect and CHIP 0.
355 */
356engine serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip0@interconnect,
357    N=LFU_CRC_SERD_N, T=LFU_CRC_SERD_T, method=persistent,
358    trip=ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip0@interconnect;
359
360event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip0@interconnect,
361    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip0@interconnect;
362
363event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip0@interconnect,
364    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip0@interconnect;
365
366prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip0@interconnect ->
367	ereport.asic.zambezi.lfu.crc-error@interconnect
368	    {MATCH_CPUID(0)};
369
370prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip0@interconnect ->
371	ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
372	    {MATCH_CPUID(0)};
373
374
375/*
376 * CHIP1 SERD rules
377 *
378 * These rules create a SERD engine for the connection between each
379 * interconnect and CHIP 1.
380 */
381engine serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip1@interconnect,
382    N=LFU_CRC_SERD_N, T=LFU_CRC_SERD_T, method=persistent,
383    trip=ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip1@interconnect;
384
385event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip1@interconnect,
386    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip1@interconnect;
387
388event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip1@interconnect,
389    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip1@interconnect;
390
391prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip1@interconnect ->
392	ereport.asic.zambezi.lfu.crc-error@interconnect
393	    {MATCH_CPUID(1)};
394
395prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip1@interconnect ->
396	ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
397	    {MATCH_CPUID(1)};
398
399
400/*
401 * CHIP2 SERD rules
402 *
403 * These rules create a SERD engine for the connection between each
404 * interconnect and CHIP 2.
405 */
406engine serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip2@interconnect,
407    N=LFU_CRC_SERD_N, T=LFU_CRC_SERD_T, method=persistent,
408    trip=ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip2@interconnect;
409
410event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip2@interconnect,
411    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip2@interconnect;
412
413event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip2@interconnect,
414    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip2@interconnect;
415
416prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip2@interconnect ->
417	ereport.asic.zambezi.lfu.crc-error@interconnect
418	    {MATCH_CPUID(2)};
419
420prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip2@interconnect ->
421	ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
422	    {MATCH_CPUID(2)};
423
424
425/*
426 * CHIP3 SERD rules
427 *
428 * These rules create a SERD engine for the connection between each
429 * interconnect and CHIP 3.
430 */
431engine serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip3@interconnect,
432    N=LFU_CRC_SERD_N, T=LFU_CRC_SERD_T, method=persistent,
433    trip=ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip3@interconnect;
434
435event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip3@interconnect,
436    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip3@interconnect;
437
438event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip3@interconnect,
439    engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip3@interconnect;
440
441prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip3@interconnect ->
442	ereport.asic.zambezi.lfu.crc-error@interconnect
443	    {MATCH_CPUID(3)};
444
445prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip3@interconnect ->
446	ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
447	    {MATCH_CPUID(3)};
448
449
450/*
451 * LFU propogations that generate
452 *	error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect
453 */
454prop error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect ->
455	ereport.asic.zambezi.lfu.lane-failure-slf@interconnect;
456
457
458/*
459 * LFU propogations that generate
460 *	error.cpu.ultraSPARC-T2plus.lfu-f.chip@chip
461 */
462prop error.cpu.ultraSPARC-T2plus.lfu-f.chip@chip[chip_num] (0) ->
463	ereport.asic.zambezi.lfu.lane-failure-slf@interconnect
464	    {MATCH_CPUID(chip_num)};
465
466
467/*
468 * LFU propogations that generate
469 *	error.cpu.ultrSPARC-T2plus.lfu-u.chip
470 */
471prop error.cpu.ultraSPARC-T2plus.lfu-u.chip@chip[chip_num] (0) ->
472	ereport.asic.zambezi.lfu.lane-failure-mlf@interconnect
473	    {MATCH_CPUID(chip_num)},
474	ereport.asic.zambezi.lfu.link-training-state@interconnect
475	    {MATCH_CPUID(chip_num)},
476	ereport.asic.zambezi.lfu.link-training-testing@interconnect
477	    {MATCH_CPUID(chip_num)},
478	ereport.asic.zambezi.lfu.link-training-config@interconnect
479	    {MATCH_CPUID(chip_num)},
480	ereport.asic.zambezi.lfu.link-training-l05@interconnect
481	    {MATCH_CPUID(chip_num)},
482	ereport.asic.zambezi.lfu.link-down-retrain-failed@interconnect
483	    {MATCH_CPUID(chip_num)},
484	ereport.asic.zambezi.lfu.retrain-failed-second-crc@interconnect
485	    {MATCH_CPUID(chip_num)},
486	ereport.asic.zambezi.lfu.retrain-failed-resume-timeout@interconnect
487	    {MATCH_CPUID(chip_num)},
488	ereport.asic.zambezi.lfu.retrain-failed-disabled@interconnect
489	    {MATCH_CPUID(chip_num)};
490
491/*
492 * LFU propogations that generate
493 *	error.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect
494 */
495prop error.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect ->
496	ereport.asic.zambezi.lfu.lane-failure-mlf@interconnect,
497	ereport.asic.zambezi.lfu.link-training-state@interconnect,
498	ereport.asic.zambezi.lfu.link-training-testing@interconnect,
499	ereport.asic.zambezi.lfu.link-training-config@interconnect,
500	ereport.asic.zambezi.lfu.link-training-l05@interconnect,
501	ereport.asic.zambezi.lfu.link-down-retrain-failed@interconnect,
502	ereport.asic.zambezi.lfu.retrain-failed-second-crc@interconnect,
503	ereport.asic.zambezi.lfu.retrain-failed-resume-timeout@interconnect,
504	ereport.asic.zambezi.lfu.retrain-failed-disabled@interconnect,
505	ereport.asic.zambezi.lfu.replay-parity@interconnect,
506	ereport.asic.zambezi.lfu.irq-parity@interconnect,
507	ereport.asic.zambezi.lfu.irq-underflow@interconnect;
508
509/*
510 * LFU propogations that generate
511 *	error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect
512 */
513prop error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect ->
514	ereport.asic.zambezi.lfu.link-down-retrain@interconnect,
515	ereport.asic.zambezi.lfu.electric-idle@interconnect,
516	ereport.asic.zambezi.lfu.retrain-error-resume-timeout@interconnect,
517	ereport.asic.zambezi.lfu.retrain-error-second-crc@interconnect,
518	ereport.asic.zambezi.lfu.retrain-error-disabled@interconnect,
519	ereport.asic.zambezi.lfu.replay-lcf-rcvd-error@interconnect,
520	ereport.asic.zambezi.lfu.replay-lcf-sent-error@interconnect;
521
522
523/*
524 * LFU propogations that generate
525 *	error.cpu.ultraSPARC-T2plus.lfu-c.chip@chip
526 */
527prop error.cpu.ultraSPARC-T2plus.lfu-c.chip@chip[chip_num] (0) ->
528	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip0@interconnect
529	    {chip_num == 0},
530	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip1@interconnect
531	    {chip_num == 1},
532	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip2@interconnect
533	    {chip_num == 2},
534	ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip3@interconnect
535	    {chip_num == 3},
536	ereport.asic.zambezi.lfu.data-invalid-or-unmapped@interconnect
537	    {MATCH_CPUID(chip_num)},
538	ereport.asic.zambezi.lfu.reply-invalid-or-unmapped@interconnect
539	    {MATCH_CPUID(chip_num)},
540	ereport.asic.zambezi.lfu.reply-tid-release-set@interconnect
541	    {MATCH_CPUID(chip_num)},
542	ereport.asic.zambezi.lfu.irq-overflow@interconnect
543	    {MATCH_CPUID(chip_num)};
544
545
546/*
547 * GPD Subsystem
548 */
549event ereport.asic.zambezi.gpd.jtag-access-violation@interconnect
550	{within(IMMEDIATE_DELAY)};
551event ereport.asic.zambezi.gpd.jtag-mapped-timeout@interconnect
552	{within(IMMEDIATE_DELAY)};
553event ereport.asic.zambezi.gpd.link-access-violation@interconnect
554	{within(IMMEDIATE_DELAY)};
555event ereport.asic.zambezi.gpd.link-invalid-read-request@interconnect
556	{within(IMMEDIATE_DELAY)};
557event ereport.asic.zambezi.gpd.link-invalid-write-request@interconnect
558	{within(IMMEDIATE_DELAY)};
559event ereport.asic.zambezi.gpd.link-mapped-timeout@interconnect
560	{within(IMMEDIATE_DELAY)};
561event ereport.asic.zambezi.gpd.link-unexpected-data-rcvd@interconnect
562	{within(IMMEDIATE_DELAY)};
563event ereport.asic.zambezi.gpd.link-unexpected-request-rcvd@interconnect
564	{within(IMMEDIATE_DELAY)};
565event ereport.asic.zambezi.gpd.link-write-data-bytemask-error@interconnect
566	{within(IMMEDIATE_DELAY)};
567event ereport.asic.zambezi.gpd.link-write-data-c2c-set@interconnect
568	{within(IMMEDIATE_DELAY)};
569event ereport.asic.zambezi.gpd.link-write-data-chunk-error@interconnect
570	{within(IMMEDIATE_DELAY)};
571event ereport.asic.zambezi.gpd.link-write-data-error-bit-set@interconnect
572	{within(IMMEDIATE_DELAY)};
573event ereport.asic.zambezi.gpd.link-write-data-timeout@interconnect
574	{within(IMMEDIATE_DELAY)};
575event ereport.asic.zambezi.gpd.link-write-request-tid-invalid@interconnect
576	{within(IMMEDIATE_DELAY)};
577event ereport.asic.zambezi.gpd.link-write-request-timeout@interconnect
578	{within(IMMEDIATE_DELAY)};
579event ereport.asic.zambezi.gpd.link-write-tid-invalid@interconnect
580	{within(IMMEDIATE_DELAY)};
581event ereport.asic.zambezi.gpd.lpc-access-violation@interconnect
582	{within(IMMEDIATE_DELAY)};
583event ereport.asic.zambezi.gpd.lpc-invalid-abort@interconnect
584	{within(IMMEDIATE_DELAY)};
585event ereport.asic.zambezi.gpd.lpc-invalid-cycle-type@interconnect
586	{within(IMMEDIATE_DELAY)};
587event ereport.asic.zambezi.gpd.lpc-invalid-start@interconnect
588	{within(IMMEDIATE_DELAY)};
589event ereport.asic.zambezi.gpd.lpc-mapped-timeout@interconnect
590	{within(IMMEDIATE_DELAY)};
591event ereport.asic.zambezi.gpd.lpc-rw-interleave-error@interconnect
592	{within(IMMEDIATE_DELAY)};
593
594/*
595 * Declare the intermediate errors that will be generated by the ereports
596 * in this subsystem.  These errors will, in turn, propogate to the
597 * appropriate fault.
598 */
599event error.asic.fpga@motherboard;
600event error.asic.ultraSPARC-T2plus.interconnect.gpd@interconnect;
601event error.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
602event error.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect;
603event error.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect;
604
605
606/*
607 * Declare the upsets that may be diagnosed for this subsystem
608 */
609event upset.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
610
611
612/*
613 * Declare the faults that may be generated for this subsystem.
614 */
615event fault.asic.fpga@motherboard
616    FITrate=FPGA_FIT, ASRU=motherboard, FRU=motherboard;
617
618event fault.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect
619    FITrate=INTERCONNECT_GPD_FIT, ASRU=interconnect, FRU=motherboard;
620
621event fault.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect
622    FITrate=INTERCONNECT_GPD_FIT, ASRU=interconnect, FRU=motherboard;
623
624
625/*
626 * Define how the intermediate errors propogate to faults for this subsystem.
627 */
628prop fault.asic.fpga@motherboard ->
629	error.asic.fpga@motherboard;
630
631prop upset.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect ->
632	error.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
633
634prop fault.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect ->
635	error.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect;
636
637prop fault.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect ->
638	error.asic.ultraSPARC-T2plus.interconnect.gpd@interconnect,
639	error.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect;
640
641/*
642 * GPD suspect list
643 *	fault.asic.ultraSPARC-T2plus.interconnect.gpd-u
644 *	fault.cpu.ultraSPARC-T2plus.chip
645 *
646 * Events in this list are diagnosed only if they are primary errors.
647 * The necessary information is unavailable for secondary errors, so
648 * they are logged but not diagnosed.
649 */
650prop error.cpu.ultraSPARC-T2plus.gpd-u.chip@chip[chip_num] (0) ->
651	ereport.asic.zambezi.gpd.link-write-request-timeout@interconnect
652	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
653	ereport.asic.zambezi.gpd.link-write-data-timeout@interconnect
654	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
655	ereport.asic.zambezi.gpd.link-write-request-tid-invalid@interconnect
656	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
657	ereport.asic.zambezi.gpd.link-unexpected-data-rcvd@interconnect
658	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
659	ereport.asic.zambezi.gpd.link-unexpected-request-rcvd@interconnect
660	    {IS_PRIMARY && MATCH_CPUID(chip_num)};
661
662prop error.cpu.ultraSPARC-T2plus.gpd-c.chip@chip[chip_num] (0) ->
663	ereport.asic.zambezi.gpd.link-write-tid-invalid@interconnect
664	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
665	ereport.asic.zambezi.gpd.link-write-data-chunk-error@interconnect
666	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
667	ereport.asic.zambezi.gpd.link-write-data-c2c-set@interconnect
668	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
669	ereport.asic.zambezi.gpd.link-write-data-error-bit-set@interconnect
670	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
671	ereport.asic.zambezi.gpd.link-invalid-write-request@interconnect
672	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
673	ereport.asic.zambezi.gpd.link-write-data-bytemask-error@interconnect
674	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
675	ereport.asic.zambezi.gpd.link-mapped-timeout@interconnect
676	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
677	ereport.asic.zambezi.gpd.link-access-violation@interconnect
678	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
679	ereport.asic.zambezi.gpd.link-invalid-read-request@interconnect
680	    {IS_PRIMARY && MATCH_CPUID(chip_num)};
681
682prop error.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect ->
683	ereport.asic.zambezi.gpd.link-write-request-timeout@interconnect
684	    {IS_PRIMARY},
685	ereport.asic.zambezi.gpd.link-write-data-timeout@interconnect
686	    {IS_PRIMARY},
687	ereport.asic.zambezi.gpd.link-write-request-tid-invalid@interconnect
688	    {IS_PRIMARY},
689	ereport.asic.zambezi.gpd.link-unexpected-data-rcvd@interconnect
690	    {IS_PRIMARY},
691	ereport.asic.zambezi.gpd.link-unexpected-request-rcvd@interconnect
692	    {IS_PRIMARY};
693
694prop error.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect ->
695	ereport.asic.zambezi.gpd.link-write-request-timeout@interconnect
696	    {IS_SECONDARY},
697	ereport.asic.zambezi.gpd.link-write-data-timeout@interconnect
698	    {IS_SECONDARY},
699	ereport.asic.zambezi.gpd.link-write-request-tid-invalid@interconnect
700	    {IS_SECONDARY},
701	ereport.asic.zambezi.gpd.link-unexpected-data-rcvd@interconnect
702	    {IS_SECONDARY},
703	ereport.asic.zambezi.gpd.link-unexpected-request-rcvd@interconnect
704	    {IS_SECONDARY},
705	ereport.asic.zambezi.gpd.link-write-tid-invalid@interconnect
706	    {IS_SECONDARY},
707	ereport.asic.zambezi.gpd.link-write-data-chunk-error@interconnect
708	    {IS_SECONDARY},
709	ereport.asic.zambezi.gpd.link-write-data-c2c-set@interconnect
710	    {IS_SECONDARY},
711	ereport.asic.zambezi.gpd.link-write-data-error-bit-set@interconnect
712	    {IS_SECONDARY},
713	ereport.asic.zambezi.gpd.link-invalid-write-request@interconnect
714	    {IS_SECONDARY},
715	ereport.asic.zambezi.gpd.link-write-data-bytemask-error@interconnect
716	    {IS_SECONDARY},
717	ereport.asic.zambezi.gpd.link-mapped-timeout@interconnect
718	    {IS_SECONDARY},
719	ereport.asic.zambezi.gpd.link-access-violation@interconnect
720	    {IS_SECONDARY},
721	ereport.asic.zambezi.gpd.link-invalid-read-request@interconnect
722	    {IS_SECONDARY};
723
724prop error.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect ->
725	ereport.asic.zambezi.gpd.link-write-tid-invalid@interconnect
726	    {IS_PRIMARY},
727	ereport.asic.zambezi.gpd.link-write-data-chunk-error@interconnect
728	    {IS_PRIMARY},
729	ereport.asic.zambezi.gpd.link-write-data-c2c-set@interconnect
730	    {IS_PRIMARY},
731	ereport.asic.zambezi.gpd.link-write-data-error-bit-set@interconnect
732	    {IS_PRIMARY},
733	ereport.asic.zambezi.gpd.link-invalid-write-request@interconnect
734	    {IS_PRIMARY},
735	ereport.asic.zambezi.gpd.link-write-data-bytemask-error@interconnect
736	    {IS_PRIMARY},
737	ereport.asic.zambezi.gpd.link-mapped-timeout@interconnect
738	    {IS_PRIMARY},
739	ereport.asic.zambezi.gpd.link-access-violation@interconnect
740	    {IS_PRIMARY},
741	ereport.asic.zambezi.gpd.link-invalid-read-request@interconnect
742	    {IS_PRIMARY};
743
744prop error.asic.ultraSPARC-T2plus.interconnect.gpd@interconnect ->
745	ereport.asic.zambezi.gpd.jtag-access-violation@interconnect,
746	ereport.asic.zambezi.gpd.jtag-mapped-timeout@interconnect,
747	ereport.asic.zambezi.gpd.lpc-mapped-timeout@interconnect,
748	ereport.asic.zambezi.gpd.lpc-access-violation@interconnect,
749	ereport.asic.zambezi.gpd.lpc-rw-interleave-error@interconnect,
750	ereport.asic.zambezi.gpd.lpc-invalid-abort@interconnect,
751	ereport.asic.zambezi.gpd.lpc-invalid-start@interconnect,
752	ereport.asic.zambezi.gpd.lpc-invalid-cycle-type@interconnect;
753
754prop error.asic.fpga@motherboard (0) ->
755	ereport.asic.zambezi.gpd.lpc-invalid-abort@interconnect,
756	ereport.asic.zambezi.gpd.lpc-invalid-start@interconnect,
757	ereport.asic.zambezi.gpd.lpc-invalid-cycle-type@interconnect;
758
759
760/*
761 * ASU Subsystem
762 */
763event ereport.asic.zambezi.asu.cam-parity-error@interconnect
764	{within(IMMEDIATE_DELAY)};
765event ereport.asic.zambezi.asu.invalid-nc-destid@interconnect
766	{within(IMMEDIATE_DELAY)};
767event ereport.asic.zambezi.asu.invalid-tid-cacheable@interconnect
768	{within(IMMEDIATE_DELAY)};
769event ereport.asic.zambezi.asu.invalid-tid-non-cacheable@interconnect
770	{within(IMMEDIATE_DELAY)};
771event ereport.asic.zambezi.asu.invalid-wb-destid@interconnect
772	{within(IMMEDIATE_DELAY)};
773event ereport.asic.zambezi.asu.malformed-wb@interconnect
774	{within(IMMEDIATE_DELAY)};
775event ereport.asic.zambezi.asu.pending-ram-parity-error@interconnect
776	{within(IMMEDIATE_DELAY)};
777event ereport.asic.zambezi.asu.pending-tid-ram-parity-error@interconnect
778	{within(IMMEDIATE_DELAY)};
779
780/*
781 * Declare the intermediate errors that will be generated by the ereports
782 * in this subsystem.  These errors will, in turn, propogate to the
783 * appropriate fault.
784 */
785event error.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
786event error.asic.ultraSPARC-T2plus.interconnect.asu@interconnect;
787
788
789/*
790 * Declare the upsets that may be diagnosed for this subsystem
791 */
792event upset.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
793
794
795/*
796 * Declare the faults that may be generated for this subsystem.
797 */
798event fault.asic.ultraSPARC-T2plus.interconnect.asu@interconnect
799    FITrate=INTERCONNECT_ASU_FIT, ASRU=interconnect, FRU=motherboard;
800
801
802/*
803 * Define how the intermediate errors propogate to faults for this subsystem.
804 */
805prop upset.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect ->
806	error.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
807
808prop fault.asic.ultraSPARC-T2plus.interconnect.asu@interconnect ->
809	error.asic.ultraSPARC-T2plus.interconnect.asu@interconnect;
810
811
812prop error.cpu.ultraSPARC-T2plus.asu.protocol@chip[chip_num] (0) ->
813	ereport.asic.zambezi.asu.invalid-nc-destid@interconnect
814	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
815	ereport.asic.zambezi.asu.invalid-tid-non-cacheable@interconnect
816	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
817	ereport.asic.zambezi.asu.invalid-wb-destid@interconnect
818	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
819	ereport.asic.zambezi.asu.malformed-wb@interconnect
820	    {IS_PRIMARY && MATCH_CPUID(chip_num)},
821	ereport.asic.zambezi.asu.invalid-tid-cacheable@interconnect
822	    {IS_PRIMARY && MATCH_CPUID(chip_num)};
823
824prop error.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect ->
825	ereport.asic.zambezi.asu.invalid-nc-destid@interconnect
826	    {IS_SECONDARY},
827	ereport.asic.zambezi.asu.invalid-tid-non-cacheable@interconnect
828	    {IS_SECONDARY},
829	ereport.asic.zambezi.asu.invalid-wb-destid@interconnect
830	    {IS_SECONDARY},
831	ereport.asic.zambezi.asu.malformed-wb@interconnect
832	    {IS_SECONDARY},
833	ereport.asic.zambezi.asu.invalid-tid-cacheable@interconnect
834	    {IS_SECONDARY};
835
836prop error.asic.ultraSPARC-T2plus.interconnect.asu@interconnect ->
837	ereport.asic.zambezi.asu.pending-ram-parity-error@interconnect,
838	ereport.asic.zambezi.asu.pending-tid-ram-parity-error@interconnect,
839	ereport.asic.zambezi.asu.cam-parity-error@interconnect;
840