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