Home | History | Annotate | Download | only in sun4v
      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  */
     84 asru motherboard;
     85 asru interconnect;
     86 asru chip;
     87 fru  motherboard;
     88 fru  cpuboard;
     89 
     90 
     91 /*
     92  * Define the errors that propogate to a CHIP fault.
     93  */
     94 event error.cpu.ultraSPARC-T2plus.opu.protocol@chip;
     95 event error.cpu.ultraSPARC-T2plus.lfu-c.chip@chip;
     96 event error.cpu.ultraSPARC-T2plus.lfu-f.chip@chip;
     97 event error.cpu.ultraSPARC-T2plus.lfu-u.chip@chip;
     98 event error.cpu.ultraSPARC-T2plus.gpd-u.chip@chip;
     99 event error.cpu.ultraSPARC-T2plus.gpd-c.chip@chip;
    100 event error.cpu.ultraSPARC-T2plus.asu.protocol@chip;
    101 
    102 event fault.cpu.ultraSPARC-T2plus.chip@chip
    103     FITrate=CPU_CHIP_FIT, ASRU=chip, FRU=cpuboard;
    104 
    105 prop 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  */
    118 event ereport.asic.zambezi.opu.ods-ctrl-parity@interconnect
    119 	    {within (IMMEDIATE_DELAY)};
    120 event ereport.asic.zambezi.opu.ods-data-coherent-read@interconnect
    121 	    {within (IMMEDIATE_DELAY)};
    122 event ereport.asic.zambezi.opu.ods-data-coherent-writeback@interconnect
    123 	    {within (IMMEDIATE_DELAY)};
    124 event ereport.asic.zambezi.opu.ods-data-destid@interconnect
    125 	    {within (IMMEDIATE_DELAY)};
    126 event ereport.asic.zambezi.opu.ods-data-parity@interconnect
    127 	    {within (IMMEDIATE_DELAY)};
    128 event ereport.asic.zambezi.opu.oqs-request-bad-nc-type@interconnect
    129 	    {within (IMMEDIATE_DELAY)};
    130 event ereport.asic.zambezi.opu.oqs-request-bad-read-type@interconnect
    131 	    {within (IMMEDIATE_DELAY)};
    132 event ereport.asic.zambezi.opu.oqs-request-bad-writeback-type@interconnect
    133 	    {within (IMMEDIATE_DELAY)};
    134 event ereport.asic.zambezi.opu.oqs-request-duplicate@interconnect
    135 	    {within (IMMEDIATE_DELAY)};
    136 event ereport.asic.zambezi.opu.ors-response-bad-nc-type@interconnect
    137 	    {within (IMMEDIATE_DELAY)};
    138 event ereport.asic.zambezi.opu.ors-response-bad-read-type@interconnect
    139 	    {within (IMMEDIATE_DELAY)};
    140 event ereport.asic.zambezi.opu.ors-response-bad-writeback-type@interconnect
    141 	    {within (IMMEDIATE_DELAY)};
    142 event ereport.asic.zambezi.opu.ors-response-duplicate@interconnect
    143 	    {within (IMMEDIATE_DELAY)};
    144 event ereport.asic.zambezi.opu.ors-response-inconsistent@interconnect
    145 	    {within (IMMEDIATE_DELAY)};
    146 event ereport.asic.zambezi.opu.ors-response-unexpected@interconnect
    147 	    {within (IMMEDIATE_DELAY)};
    148 event ereport.asic.zambezi.opu.ors-timeout-read@interconnect
    149 	    {within (IMMEDIATE_DELAY)};
    150 event 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  */
    159 event error.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect;
    160 event error.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect;
    161 
    162 
    163 /*
    164  * This fault is diagnosed for uncorrectible OPU errors
    165  */
    166 event fault.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect
    167     FITrate=INTERCONNECT_OPU_FIT, ASRU=interconnect, FRU=motherboard;
    168 
    169 prop error.asic.ultraSPARC-T2plus.interconnect.opu-u@interconnect ->
    170 	ereport.asic.zambezi.opu.ods-ctrl-parity@interconnect;
    171 
    172 prop 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  */
    179 event fault.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect
    180     FITrate=INTERCONNECT_OPU_FIT, ASRU=interconnect, FRU=motherboard;
    181 
    182 prop error.asic.ultraSPARC-T2plus.interconnect.opu-c@interconnect ->
    183 	ereport.asic.zambezi.opu.ods-data-parity@interconnect;
    184 
    185 prop 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  */
    193 prop 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  */
    230 event ereport.asic.zambezi.lfu.crc-error@interconnect
    231 	    {within (SERD_DELAY)};
    232 event ereport.asic.zambezi.lfu.data-invalid-or-unmapped@interconnect
    233 	    {within (IMMEDIATE_DELAY)};
    234 event ereport.asic.zambezi.lfu.electric-idle@interconnect
    235 	    {within (RETRAIN_DELAY)};
    236 event ereport.asic.zambezi.lfu.irq-overflow@interconnect
    237 	    {within (IMMEDIATE_DELAY)};
    238 event ereport.asic.zambezi.lfu.irq-parity@interconnect
    239 	    {within (IMMEDIATE_DELAY)};
    240 event ereport.asic.zambezi.lfu.irq-underflow@interconnect
    241 	    {within (IMMEDIATE_DELAY)};
    242 event ereport.asic.zambezi.lfu.lane-failure-slf@interconnect
    243 	    {within (IMMEDIATE_DELAY)};
    244 event ereport.asic.zambezi.lfu.lane-failure-mlf@interconnect
    245 	    {within (IMMEDIATE_DELAY)};
    246 event ereport.asic.zambezi.lfu.link-down-retrain@interconnect
    247 	    {within (RETRAIN_DELAY)};
    248 event ereport.asic.zambezi.lfu.link-down-retrain-failed@interconnect
    249 	    {within (IMMEDIATE_DELAY)};
    250 event ereport.asic.zambezi.lfu.link-down-second-replay@interconnect
    251 	    {within (SERD_DELAY)};
    252 event ereport.asic.zambezi.lfu.link-training-l05@interconnect
    253 	    {within (IMMEDIATE_DELAY)};
    254 event ereport.asic.zambezi.lfu.link-training-config@interconnect
    255 	    {within (IMMEDIATE_DELAY)};
    256 event ereport.asic.zambezi.lfu.link-training-state@interconnect
    257 	    {within (IMMEDIATE_DELAY)};
    258 event ereport.asic.zambezi.lfu.link-training-testing@interconnect
    259 	    {within (IMMEDIATE_DELAY)};
    260 event ereport.asic.zambezi.lfu.replay-lcf-rcvd-error@interconnect
    261 	    {within (RETRAIN_DELAY)};
    262 event ereport.asic.zambezi.lfu.replay-lcf-sent-error@interconnect
    263 	    {within (RETRAIN_DELAY)};
    264 event ereport.asic.zambezi.lfu.replay-parity@interconnect
    265 	    {within (IMMEDIATE_DELAY)};
    266 event ereport.asic.zambezi.lfu.reply-invalid-or-unmapped@interconnect
    267 	    {within (IMMEDIATE_DELAY)};
    268 event ereport.asic.zambezi.lfu.reply-tid-release-set@interconnect
    269 	    {within (IMMEDIATE_DELAY)};
    270 event ereport.asic.zambezi.lfu.retrain-error-disabled@interconnect
    271 	    {within (RETRAIN_DELAY)};
    272 event ereport.asic.zambezi.lfu.retrain-error-resume-timeout@interconnect
    273 	    {within (RETRAIN_DELAY)};
    274 event ereport.asic.zambezi.lfu.retrain-error-second-crc@interconnect
    275 	    {within (RETRAIN_DELAY)};
    276 event ereport.asic.zambezi.lfu.retrain-failed-disabled@interconnect
    277 	    {within (IMMEDIATE_DELAY)};
    278 event ereport.asic.zambezi.lfu.retrain-failed-resume-timeout@interconnect
    279 	    {within (IMMEDIATE_DELAY)};
    280 event 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  */
    288 event error.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect;
    289 event error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect;
    290 event error.asic.ultraSPARC-T2plus.interconnect.lfu-u@interconnect;
    291 event error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
    292 
    293 
    294 /*
    295  * Declare the upsets that may be diagnosed for the LFU subsystem
    296  */
    297 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
    298 
    299 
    300 /*
    301  * Declare the faults that may be generated for the LFU subsystem.
    302  */
    303 event fault.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect
    304     FITrate=INTERCONNECT_LFU_C_FIT, ASRU=interconnect, FRU=motherboard;
    305 
    306 event fault.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect
    307     FITrate=INTERCONNECT_LFU_F_FIT, ASRU=interconnect, FRU=motherboard;
    308 
    309 event 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  */
    316 prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect ->
    317 	error.asic.ultraSPARC-T2plus.interconnect.lfu.ignore@interconnect;
    318 
    319 prop fault.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect ->
    320 	error.asic.ultraSPARC-T2plus.interconnect.lfu-c@interconnect;
    321 
    322 prop fault.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect ->
    323 	error.asic.ultraSPARC-T2plus.interconnect.lfu-f@interconnect;
    324 
    325 prop 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  */
    339 event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip0@interconnect;
    340 event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip1@interconnect;
    341 event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip2@interconnect;
    342 event ereport.asic.ultraSPARC-T2plus.interconnect.lfu.crc-trip3@interconnect;
    343 
    344 prop 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  */
    356 engine 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 
    360 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip0@interconnect,
    361     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip0@interconnect;
    362 
    363 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip0@interconnect,
    364     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip0@interconnect;
    365 
    366 prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip0@interconnect ->
    367 	ereport.asic.zambezi.lfu.crc-error@interconnect
    368 	    {MATCH_CPUID(0)};
    369 
    370 prop 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  */
    381 engine 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 
    385 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip1@interconnect,
    386     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip1@interconnect;
    387 
    388 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip1@interconnect,
    389     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip1@interconnect;
    390 
    391 prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip1@interconnect ->
    392 	ereport.asic.zambezi.lfu.crc-error@interconnect
    393 	    {MATCH_CPUID(1)};
    394 
    395 prop 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  */
    406 engine 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 
    410 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip2@interconnect,
    411     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip2@interconnect;
    412 
    413 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip2@interconnect,
    414     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip2@interconnect;
    415 
    416 prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip2@interconnect ->
    417 	ereport.asic.zambezi.lfu.crc-error@interconnect
    418 	    {MATCH_CPUID(2)};
    419 
    420 prop 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  */
    431 engine 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 
    435 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip3@interconnect,
    436     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip3@interconnect;
    437 
    438 event upset.asic.ultraSPARC-T2plus.interconnect.lfu.replay.chip3@interconnect,
    439     engine=serd.asic.ultraSPARC-T2plus.interconnect.lfu.chip3@interconnect;
    440 
    441 prop upset.asic.ultraSPARC-T2plus.interconnect.lfu.crc.chip3@interconnect ->
    442 	ereport.asic.zambezi.lfu.crc-error@interconnect
    443 	    {MATCH_CPUID(3)};
    444 
    445 prop 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  */
    454 prop 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  */
    462 prop 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  */
    471 prop 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  */
    495 prop 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  */
    513 prop 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  */
    527 prop 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  */
    549 event ereport.asic.zambezi.gpd.jtag-access-violation@interconnect
    550 	{within(IMMEDIATE_DELAY)};
    551 event ereport.asic.zambezi.gpd.jtag-mapped-timeout@interconnect
    552 	{within(IMMEDIATE_DELAY)};
    553 event ereport.asic.zambezi.gpd.link-access-violation@interconnect
    554 	{within(IMMEDIATE_DELAY)};
    555 event ereport.asic.zambezi.gpd.link-invalid-read-request@interconnect
    556 	{within(IMMEDIATE_DELAY)};
    557 event ereport.asic.zambezi.gpd.link-invalid-write-request@interconnect
    558 	{within(IMMEDIATE_DELAY)};
    559 event ereport.asic.zambezi.gpd.link-mapped-timeout@interconnect
    560 	{within(IMMEDIATE_DELAY)};
    561 event ereport.asic.zambezi.gpd.link-unexpected-data-rcvd@interconnect
    562 	{within(IMMEDIATE_DELAY)};
    563 event ereport.asic.zambezi.gpd.link-unexpected-request-rcvd@interconnect
    564 	{within(IMMEDIATE_DELAY)};
    565 event ereport.asic.zambezi.gpd.link-write-data-bytemask-error@interconnect
    566 	{within(IMMEDIATE_DELAY)};
    567 event ereport.asic.zambezi.gpd.link-write-data-c2c-set@interconnect
    568 	{within(IMMEDIATE_DELAY)};
    569 event ereport.asic.zambezi.gpd.link-write-data-chunk-error@interconnect
    570 	{within(IMMEDIATE_DELAY)};
    571 event ereport.asic.zambezi.gpd.link-write-data-error-bit-set@interconnect
    572 	{within(IMMEDIATE_DELAY)};
    573 event ereport.asic.zambezi.gpd.link-write-data-timeout@interconnect
    574 	{within(IMMEDIATE_DELAY)};
    575 event ereport.asic.zambezi.gpd.link-write-request-tid-invalid@interconnect
    576 	{within(IMMEDIATE_DELAY)};
    577 event ereport.asic.zambezi.gpd.link-write-request-timeout@interconnect
    578 	{within(IMMEDIATE_DELAY)};
    579 event ereport.asic.zambezi.gpd.link-write-tid-invalid@interconnect
    580 	{within(IMMEDIATE_DELAY)};
    581 event ereport.asic.zambezi.gpd.lpc-access-violation@interconnect
    582 	{within(IMMEDIATE_DELAY)};
    583 event ereport.asic.zambezi.gpd.lpc-invalid-abort@interconnect
    584 	{within(IMMEDIATE_DELAY)};
    585 event ereport.asic.zambezi.gpd.lpc-invalid-cycle-type@interconnect
    586 	{within(IMMEDIATE_DELAY)};
    587 event ereport.asic.zambezi.gpd.lpc-invalid-start@interconnect
    588 	{within(IMMEDIATE_DELAY)};
    589 event ereport.asic.zambezi.gpd.lpc-mapped-timeout@interconnect
    590 	{within(IMMEDIATE_DELAY)};
    591 event 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  */
    599 event error.asic.fpga@motherboard;
    600 event error.asic.ultraSPARC-T2plus.interconnect.gpd@interconnect;
    601 event error.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
    602 event error.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect;
    603 event error.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect;
    604 
    605 
    606 /*
    607  * Declare the upsets that may be diagnosed for this subsystem
    608  */
    609 event upset.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
    610 
    611 
    612 /*
    613  * Declare the faults that may be generated for this subsystem.
    614  */
    615 event fault.asic.fpga@motherboard
    616     FITrate=FPGA_FIT, ASRU=motherboard, FRU=motherboard;
    617 
    618 event fault.asic.ultraSPARC-T2plus.interconnect.gpd-c@interconnect
    619     FITrate=INTERCONNECT_GPD_FIT, ASRU=interconnect, FRU=motherboard;
    620 
    621 event 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  */
    628 prop fault.asic.fpga@motherboard ->
    629 	error.asic.fpga@motherboard;
    630 
    631 prop upset.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect ->
    632 	error.asic.ultraSPARC-T2plus.interconnect.gpd.ignore@interconnect;
    633 
    634 prop fault.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect ->
    635 	error.asic.ultraSPARC-T2plus.interconnect.gpd-u@interconnect;
    636 
    637 prop 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  */
    650 prop 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 
    662 prop 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 
    682 prop 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 
    694 prop 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 
    724 prop 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 
    744 prop 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 
    754 prop 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  */
    763 event ereport.asic.zambezi.asu.cam-parity-error@interconnect
    764 	{within(IMMEDIATE_DELAY)};
    765 event ereport.asic.zambezi.asu.invalid-nc-destid@interconnect
    766 	{within(IMMEDIATE_DELAY)};
    767 event ereport.asic.zambezi.asu.invalid-tid-cacheable@interconnect
    768 	{within(IMMEDIATE_DELAY)};
    769 event ereport.asic.zambezi.asu.invalid-tid-non-cacheable@interconnect
    770 	{within(IMMEDIATE_DELAY)};
    771 event ereport.asic.zambezi.asu.invalid-wb-destid@interconnect
    772 	{within(IMMEDIATE_DELAY)};
    773 event ereport.asic.zambezi.asu.malformed-wb@interconnect
    774 	{within(IMMEDIATE_DELAY)};
    775 event ereport.asic.zambezi.asu.pending-ram-parity-error@interconnect
    776 	{within(IMMEDIATE_DELAY)};
    777 event 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  */
    785 event error.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
    786 event error.asic.ultraSPARC-T2plus.interconnect.asu@interconnect;
    787 
    788 
    789 /*
    790  * Declare the upsets that may be diagnosed for this subsystem
    791  */
    792 event upset.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
    793 
    794 
    795 /*
    796  * Declare the faults that may be generated for this subsystem.
    797  */
    798 event 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  */
    805 prop upset.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect ->
    806 	error.asic.ultraSPARC-T2plus.interconnect.asu.ignore@interconnect;
    807 
    808 prop fault.asic.ultraSPARC-T2plus.interconnect.asu@interconnect ->
    809 	error.asic.ultraSPARC-T2plus.interconnect.asu@interconnect;
    810 
    811 
    812 prop 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 
    824 prop 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 
    836 prop 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