|
root / base / usr / src / uts / common / sys / fm / io
io Plain Text 827 lines 25.4 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef	_SYS_FM_IO_DDI_H
#define	_SYS_FM_IO_DDI_H

#ifdef	__cplusplus
extern "C" {
#endif

#define	DDI_DVR_MAX_CLASS		32

/* IO-specific FMA ereport class defintions */
#define	DDI_IO_CLASS			"io"

/* leaf driver detected ereport definitions */
#define	DDI_FM_DEVICE			"device"
#define	DDI_FM_DEVICE_INVAL_STATE	"inval_state"
#define	DDI_FM_DEVICE_NO_RESPONSE	"no_response"
#define	DDI_FM_DEVICE_STALL		"stall"
#define	DDI_FM_DEVICE_BADINT_LIMIT	"badint_limit"
#define	DDI_FM_DEVICE_INTERN_CORR	"intern_corr"
#define	DDI_FM_DEVICE_INTERN_UNCORR	"intern_uncorr"
#define	DDI_FM_DEVICE_FW_CORRUPT	"fw_corrupt"
#define	DDI_FM_DEVICE_FW_MISMATCH	"fw_mismatch"

/* service impact ereport definitions */
#define	DDI_FM_SERVICE_IMPACT		"service"
#define	DDI_FM_SERVICE_LOST		"lost"
#define	DDI_FM_SERVICE_DEGRADED		"degraded"
#define	DDI_FM_SERVICE_RESTORED		"restored"
#define	DDI_FM_SERVICE_UNAFFECTED	"unaffected"

/* Driver defect ereport specifications */
#define	DVR_ERPT		"ddi."
#define	DVR_ECONTEXT		"context"	/* Invalid calling context */
#define	DVR_EINVAL		"einval"	/* Invalid calling semantic */
#define	DVR_EFMCAP		"fm-capability"	/* Improper FM capability */
#define	DVR_EVER		"version"	/* Invalid structure version */

/* Required payload member names */
#define	DVR_NAME		"dvr-name"
#define	DVR_STACK		"dvr-stack"
#define	DVR_STACK_DEPTH		"dvr-stack-depth"
#define	DVR_ERR_SPECIFIC	"dvr-error-specific"

/* Generic NIC driver ereports. */
#define	DDI_FM_NIC		"nic"
#define	DDI_FM_TXR_ERROR	"txr-err"

/* Valid values of the "error" field in txr-err ereports */
#define	DDI_FM_TXR_ERROR_WHITELIST	"whitelist"
#define	DDI_FM_TXR_ERROR_NOTSUPP	"notsupp"
#define	DDI_FM_TXR_ERROR_OVERTEMP	"overtemp"
#define	DDI_FM_TXR_ERROR_HWFAIL		"hwfail"
#define	DDI_FM_TXR_ERROR_UNKNOWN	"unknown"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_DDI_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 * Copyright 2016 Nexenta Systems, Inc.  All rights reserved.
 */

#ifndef	_SYS_FM_IO_DISK_H
#define	_SYS_FM_IO_DISK_H

#ifdef	__cplusplus
extern "C" {
#endif

#define	DISK_ERROR_CLASS		"io.disk"

#define	FM_FAULT_DISK_PREDFAIL		"predictive-failure"
#define	FM_FAULT_DISK_OVERTEMP		"over-temperature"
#define	FM_FAULT_DISK_TESTFAIL		"self-test-failure"
#define	FM_FAULT_SSM_WEAROUT		"ssm-wearout"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_DISK_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef _SYS_FM_IO_OPL_MC_FM_H
#define	_SYS_FM_IO_OPL_MC_FM_H

#ifdef	__cplusplus
extern "C" {
#endif

/* mc-opl ereport components */
#define	MC_OPL_ERROR_CLASS	"asic.mac"
#define	MC_OPL_PTRL_SUBCLASS	"ptrl"
#define	MC_OPL_MI_SUBCLASS	"mi"

/*
 * ereport definition
 */
#define	MC_OPL_UE	"ue"
#define	MC_OPL_CE	"ce"
#define	MC_OPL_ICE	"ice"
#define	MC_OPL_CMPE	"cmpe"
#define	MC_OPL_MUE	"mue"
#define	MC_OPL_SUE	"sue"

/* mc-opl payload name fields */
#define	MC_OPL_BOARD		"board"
#define	MC_OPL_BANK		"bank"
#define	MC_OPL_STATUS		"status"
#define	MC_OPL_ERR_ADD		"err-add"
#define	MC_OPL_ERR_LOG		"err-log"
#define	MC_OPL_ERR_SYND		"syndrome"
#define	MC_OPL_ERR_DIMMSLOT	"dimm-slot"
#define	MC_OPL_ERR_DRAM		"dram-place"
#define	MC_OPL_PA		"pa"
#define	MC_OPL_FLT_TYPE		"flt-type"

#define	MC_OPL_RESOURCE		"resource"

#define	MC_OPL_NO_UNUM		""

#ifdef	__cplusplus
}
#endif

#endif /* _SYS_FM_IO_OPL_MC_FM_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef _SYS_FM_IO_PCI_H
#define	_SYS_FM_IO_PCI_H

#ifdef	__cplusplus
extern "C" {
#endif

#define	PCI_ERROR_SUBCLASS	"pci"
#define	PCI_SEC_ERROR_SUBCLASS	"sec"

/* Common PCI ereport classes */
#define	PCI_DET_PERR		"dpe"
#define	PCI_MDPE		"mdpe"
#define	PCI_REC_SERR		"rserr"
#define	PCI_SIG_SERR		"sserr"
#define	PCI_MA			"ma"
#define	PCI_REC_TA		"rta"
#define	PCI_SIG_TA		"sta"
#define	PCI_DTO			"dto"
#define	PCI_TARG_MDPE		"target-mdpe"
#define	PCI_TARG_MA		"target-ma"
#define	PCI_TARG_REC_TA		"target-rta"
#define	PCI_NR			"nr"

/* PCI Error payload name fields */
#define	PCI_CONFIG_STATUS	"pci-status"
#define	PCI_CONFIG_COMMAND	"pci-command"
#define	PCI_SEC_CONFIG_STATUS	"pci-sec-status"
#define	PCI_BCNTRL		"pci-bdg-ctrl"
#define	PCI_PA			"pci-pa"

/*
 * PCI-X extensions
 */
#define	PCIX_ERROR_SUBCLASS	"pcix"
#define	PCIX_SEC_ERROR_SUBCLASS "sec-"

/* Common PCI-X ereport classes */
#define	PCIX_ECC_CE_ADDR	"ecc.ce-addr"
#define	PCIX_ECC_CE_ATTR	"ecc.ce-attr"
#define	PCIX_ECC_CE_DATA	"ecc.ce-data"
#define	PCIX_ECC_UE_ADDR	"ecc.ue-addr"
#define	PCIX_ECC_UE_ATTR	"ecc.ue-attr"
#define	PCIX_ECC_UE_DATA	"ecc.ue-data"
#define	PCIX_RX_SPL_MSG		"rx-spl"
#define	PCIX_ECC_S_CE		"s-ce"
#define	PCIX_ECC_S_UE		"s-ue"
#define	PCIX_SPL_DIS		"spl-dis"
#define	PCIX_BSS_SPL_DLY	"spl-dly"
#define	PCIX_BSS_SPL_OR		"spl-or"
#define	PCIX_UNEX_SPL		"unex-spl"

#define	PCIX_SEC_STATUS		"pcix-sec-status"
#define	PCIX_BDG_STAT		"pcix-bdg-stat"
#define	PCIX_COMMAND		"pcix-command"
#define	PCIX_STATUS		"pcix-status"
#define	PCIX_ECC_CTLSTAT	"pcix-ecc-ctlstat"
#define	PCIX_ECC_ATTR		"pcix-ecc-attr"

/*
 * PCI Express extensions
 */
#define	PCIEX_ERROR_SUBCLASS		"pciex"

/* Common PCI Express ereport classes */
#define	PCIEX_RE		"pl.re"
#define	PCIEX_TE		"pl.te"

#define	PCIEX_SD		"dl.sd"
#define	PCIEX_BDP		"dl.bdllp"
#define	PCIEX_BTP		"dl.btlp"
#define	PCIEX_DLP		"dl.dllp"
#define	PCIEX_RNR		"dl.rnr"
#define	PCIEX_RTO		"dl.rto"

#define	PCIEX_CA		"tl.ca"
#define	PCIEX_CTO		"tl.cto"
#define	PCIEX_ECRC		"tl.ecrc"
#define	PCIEX_FCP		"tl.fcp"
#define	PCIEX_MFP		"tl.mtlp"
#define	PCIEX_POIS		"tl.ptlp"
#define	PCIEX_ROF		"tl.rof"
#define	PCIEX_UC		"tl.uc"
#define	PCIEX_UR		"tl.ur"

#define	PCIEX_INTERR		"bdg.sec-interr"
#define	PCIEX_S_MA_SC		"bdg.sec-ma-sc"
#define	PCIEX_S_PERR		"bdg.sec-perr"
#define	PCIEX_S_RMA		"bdg.sec-rma"
#define	PCIEX_S_RTA		"bdg.sec-rta"
#define	PCIEX_S_SERR		"bdg.sec-serr"
#define	PCIEX_S_TA_SC		"bdg.sec-ta-sc"
#define	PCIEX_S_TEX		"bdg.sec-tex"
#define	PCIEX_S_UADR		"bdg.sec-uadr"
#define	PCIEX_S_UAT		"bdg.sec-uat"
#define	PCIEX_S_UDE		"bdg.sec-ude"
#define	PCIEX_S_USC		"bdg.usc"
#define	PCIEX_S_USCMD		"bdg.uscmd"

#define	PCIEX_RC_FE_MSG		"rc.fe-msg"
#define	PCIEX_RC_NFE_MSG	"rc.nfe-msg"
#define	PCIEX_RC_CE_MSG		"rc.ce-msg"
#define	PCIEX_RC_MCE_MSG	"rc.mce-msg"
#define	PCIEX_RC_MUE_MSG	"rc.mue-msg"

#define	PCIEX_CORR		"correctable"
#define	PCIEX_FAT		"fatal"
#define	PCIEX_NONFAT		"nonfatal"
#define	PCIEX_NADV		"noadverr"
#define	PCIEX_ANFE		"a-nonfatal"

/* PCI Express payload name fields */
#define	PCIEX_DEVSTS_REG	"dev-status"
#define	PCIEX_LINKSTS_REG	"link-status"
#define	PCIEX_ROOT_ERRSTS_REG	"rc-status"
#define	PCIEX_CE_STATUS_REG	"ce-status"
#define	PCIEX_UE_STATUS_REG	"ue-status"
#define	PCIEX_UE_SEV_REG	"ue-severity"
#define	PCIEX_SEC_UE_STATUS	"sue-status"
#define	PCIEX_SRC_ID		"source-id"
#define	PCIEX_SRC_VALID		"source-valid"
#define	PCIEX_ADV_CTL		"adv-ctl"
#define	PCIEX_UE_HDR0		"ue_hdr0"
#define	PCIEX_UE_HDR1		"ue_hdr1"
#define	PCIEX_UE_HDR2		"ue_hdr2"
#define	PCIEX_UE_HDR3		"ue_hdr3"
#define	PCIEX_SUE_HDR0		"sue_hdr0"
#define	PCIEX_SUE_HDR1		"sue_hdr1"
#define	PCIEX_SUE_HDR2		"sue_hdr2"
#define	PCIEX_SUE_HDR3		"sue_hdr3"

/* Common fabric class names */
#define	PCIEX_FABRIC		"fabric"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_PCI_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 * Copyright 2016 Nexenta Systems, Inc.  All rights reserved.
 */

#ifndef	_SYS_FM_IO_SCSI_H
#define	_SYS_FM_IO_SCSI_H

#ifdef	__cplusplus
extern "C" {
#endif

/*
 * The following ereports are generated by the userland disk-transport module in
 * response to errors reported by the disks.
 */
#define	SCSI_ERROR_CLASS		"io.scsi"

#define	SCSI_DISK_CLASS			"disk"

#define	FM_EREPORT_SCSI_PREDFAIL	"predictive-failure"
#define	FM_EREPORT_PAYLOAD_SCSI_ASC	"additional-sense-code"
#define	FM_EREPORT_PAYLOAD_SCSI_ASCQ	"additional-sense-code-qualifier"

#define	FM_EREPORT_SCSI_OVERTEMP		"over-temperature"
#define	FM_EREPORT_PAYLOAD_SCSI_CURTEMP		"current-temperature"
#define	FM_EREPORT_PAYLOAD_SCSI_THRESHTEMP	"threshold-temperature"

#define	FM_EREPORT_SCSI_SSMWEAROUT		"ssm-wearout"
#define	FM_EREPORT_PAYLOAD_SCSI_CURSSMWEAROUT	"current-ssm-wearout"
#define	FM_EREPORT_PAYLOAD_SCSI_THRSHSSMWEAROUT	"threshold-ssm-wearout"

#define	FM_EREPORT_SCSI_TESTFAIL		"self-test-failure"
#define	FM_EREPORT_PAYLOAD_SCSI_RESULTCODE	"result-code"
#define	FM_EREPORT_PAYLOAD_SCSI_ADDRESS		"address"
#define	FM_EREPORT_PAYLOAD_SCSI_TIMESTAMP	"timestamp"
#define	FM_EREPORT_PAYLOAD_SCSI_SEGMENT		"segment"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_SCSI_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef _SYS_FM_IO_SUN4_FIRE_H
#define	_SYS_FM_IO_SUN4_FIRE_H

#ifdef	__cplusplus
extern "C" {
#endif


/*
 * Fire Ereport Classes
 */

#define	PCIEX_FIRE		"fire"
#define	PCIEX_OBERON		"oberon"

/* FIRE's JBUS ereport classes */
#define	FIRE_JBC_MB_PEA			"jbc.mb_pea"
#define	FIRE_JBC_CPE			"jbc.cpe"
#define	FIRE_JBC_APE			"jbc.ape"
#define	FIRE_JBC_PIO_CPE		"jbc.pio_cpe"
#define	FIRE_JBC_JTCEEW			"jbc.jtceew"
#define	FIRE_JBC_JTCEEI			"jbc.jtceei"
#define	FIRE_JBC_JTCEER			"jbc.jtceer"
#define	FIRE_JBC_MB_PER			"jbc.mb_per"
#define	FIRE_JBC_MB_PEW			"jbc.mb_pew"
#define	FIRE_JBC_UE_ASYN		"jbc.ue_asyn"
#define	FIRE_JBC_CE_ASYN		"jbc.ce_asyn"
#define	FIRE_JBC_JTE			"jbc.jte"
#define	FIRE_JBC_JBE			"jbc.jbe"
#define	FIRE_JBC_JUE			"jbc.jue"
#define	FIRE_JBC_ICISE			"jbc.icise"
#define	FIRE_JBC_WR_DPE			"jbc.wr_dpe"
#define	FIRE_JBC_RD_DPE			"jbc.rd_dpe"
#define	FIRE_JBC_ILL_BMW		"jbc.ill_bmw"
#define	FIRE_JBC_ILL_BMR		"jbc.ill_bmr"
#define	FIRE_JBC_BJC			"jbc.bjc"
#define	FIRE_JBC_IJP			"jbc.ijp"
#define	FIRE_JBC_PIO_UNMAP_RD		"jbc.pio_unmap_rd"
#define	FIRE_JBC_PIO_UNMAP		"jbc.pio_unmap"
#define	FIRE_JBC_PIO_DPE		"jbc.pio_dpe"
#define	FIRE_JBC_ILL_ACC		"jbc.ill_acc"
#define	FIRE_JBC_ILL_ACC_RD		"jbc.ill_acc_rd"
#define	FIRE_JBC_UNSOL_RD		"jbc.unsol_rd"
#define	FIRE_JBC_UNSOL_INTR		"jbc.unsol_intr"
#define	FIRE_JBC_EBUS_TO		"jbc.ebus_to"

/* OBERON's UBC ereport classes */
#define	FIRE_UBC_DMARDUEA		"ubc.dmarduea"
#define	FIRE_UBC_DMAWTUEA		"ubc.dmawtuea"
#define	FIRE_UBC_MEMRDAXA		"ubc.memrdaxa"
#define	FIRE_UBC_MEMWTAXA		"ubc.memwtaxa"
#define	FIRE_UBC_DMARDUEB		"ubc.dmardueb"
#define	FIRE_UBC_DMAWTUEB		"ubc.dmawtueb"
#define	FIRE_UBC_MEMRDAXB		"ubc.memrdaxb"
#define	FIRE_UBC_MEMWTAXB		"ubc.memwtaxb"
#define	FIRE_UBC_PIOWTUE		"ubc.piowtue"
#define	FIRE_UBC_PIOWBEUE		"ubc.piowbeue"
#define	FIRE_UBC_PIORBEUE		"ubc.piorbeue"

/* FIRE's DMC ereport classes */
#define	FIRE_DMC_MSI_NOT_EN		"dmc.msi_not_en"
#define	FIRE_DMC_MSI_PAR_ERR		"dmc.msi_par_err"
#define	FIRE_DMC_MSI_MAL_ERR		"dmc.msi_mal_err"
#define	FIRE_DMC_COR_MES_NOT_EN		"dmc.cor_not_en"
#define	FIRE_DMC_NONFATAL_MES_NOT_EN	"dmc.nonfatal_not_en"
#define	FIRE_DMC_FATAL_MES_NOT_EN	"dmc.fatal_not_en"
#define	FIRE_DMC_PMPME_MES_NOT_EN	"dmc.pmpme_not_en"
#define	FIRE_DMC_PMEACK_MES_NOT_EN	"dmc.pmeack_not_en"
#define	FIRE_DMC_EQ_NOT_EN		"dmc.eq_not_en"
#define	FIRE_DMC_EQ_OVER		"dmc.eq_over"
#define	FIRE_DMC_BYP_ERR		"dmc.byp_err"
#define	FIRE_DMC_BYP_OOR		"dmc.byp_oor"
#define	FIRE_DMC_TRN_ERR		"dmc.trn_err"
#define	FIRE_DMC_TRN_OOR		"dmc.trn_oor"
#define	FIRE_DMC_TTE_INV		"dmc.tte_inv"
#define	FIRE_DMC_TTE_PRT		"dmc.tte_prt"
#define	FIRE_DMC_TTC_DPE		"dmc.ttc_dpe"
#define	FIRE_DMC_TBW_DME		"dmc.tbw_dme"
#define	FIRE_DMC_TBW_UDE		"dmc.tbw_ude"
#define	FIRE_DMC_TBW_ERR		"dmc.tbw_err"
#define	FIRE_DMC_TBW_DPE		"dmc.tbw_dpe"
#define	FIRE_DMC_TTC_CAE		"dmc.ttc_cae"
#define	FIRE_DMC_TTC_DUE		"dmc.ttc_due"


/* FIRE's PEC ereport classes */
#define	FIRE_PEC_IHB_PE			"pec.ihb_pe"
#define	FIRE_PEC_MRC			"pec.mrc"
#define	FIRE_PEC_WUC			"pec.wuc"
#define	FIRE_PEC_RUC			"pec.ruc"
#define	FIRE_PEC_CRS			"pec.crs"
#define	FIRE_PEC_IIP			"pec.iip"
#define	FIRE_PEC_EDP			"pec.edp"
#define	FIRE_PEC_EHP			"pec.ehp"
#define	FIRE_PEC_LIN			"pec.lin"
#define	FIRE_PEC_LRS			"pec.lrs"
#define	FIRE_PEC_LDN			"pec.ldn"
#define	FIRE_PEC_LUP			"pec.lup"
#define	FIRE_PEC_ERU			"pec.eru"
#define	FIRE_PEC_ERO			"pec.ero"
#define	FIRE_PEC_EMP			"pec.emp"
#define	FIRE_PEC_EPE			"pec.epe"
#define	FIRE_PEC_ERP			"pec.erp"
#define	FIRE_PEC_EIP			"pec.eip"
#define	FIRE_PEC_UR			"pec.ur"
#define	FIRE_PEC_ROF			"pec.rof"
#define	FIRE_PEC_UC			"pec.uc"
#define	FIRE_PEC_CTO			"pec.cto"
#define	FIRE_PEC_MFP			"pec.mfp"
#define	FIRE_PEC_PP			"pec.pois"
#define	FIRE_PEC_FCP			"pec.fcp"
#define	FIRE_PEC_DLP			"pec.dlp"
#define	FIRE_PEC_TE			"pec.te"
#define	FIRE_PEC_CA			"pec.ca"
#define	FIRE_PEC_RTO			"pec.rto"
#define	FIRE_PEC_RNR			"pec.rnr"
#define	FIRE_PEC_BDP			"pec.bdp"
#define	FIRE_PEC_BTP			"pec.btp"
#define	FIRE_PEC_RE			"pec.re"
#define	FIRE_PEC_IHB_UE			"pec.ihb_ue"
#define	FIRE_PEC_ECRC			"pec.ecrc"
#define	FIRE_PEC_EIUE			"pec.eiue"
#define	FIRE_PEC_ERBUE			"pec.erbue"
#define	FIRE_PEC_EHBUE			"pec.ehbue"
#define	FIRE_PEC_EDBUE			"pec.edbue"
#define	FIRE_PEC_TLUEITMO		"pec.tlueitmo"

/* Primary error */
#define	FIRE_PRIMARY			"primary"

/* PEC ereport payload */
#define	FIRE_ILU_ELE			"ilu-ele"
#define	FIRE_ILU_ESS			"ilu-ess"
#define	FIRE_ILU_IE			"ilu-ie"
#define	FIRE_ILU_IS			"ilu-is"
#define	FIRE_TLU_CELE			"tlu-cele"
#define	FIRE_TLU_CESS			"tlu-cess"
#define	FIRE_TLU_CIE			"tlu-cie"
#define	FIRE_TLU_CIS			"tlu-cis"
#define	FIRE_TLU_OEELE			"tlu-oeele"
#define	FIRE_TLU_OEESS			"tlu-oeess"
#define	FIRE_TLU_OEIE			"tlu-oeie"
#define	FIRE_TLU_OEIS			"tlu-oeis"
#define	FIRE_TLU_ROEEH1L		"tlu-roeeh1l"
#define	FIRE_TLU_ROEEH2L		"tlu-roeeh2l"
#define	FIRE_TLU_RUEH1L			"tlu-rueh1l"
#define	FIRE_TLU_RUEH2L			"tlu-rueh2l"
#define	FIRE_TLU_TOEEH1L		"tlu-toeeh1l"
#define	FIRE_TLU_TOEEH2L		"tlu-toeeh2l"
#define	FIRE_TLU_TUEH1L			"tlu-tueh1l"
#define	FIRE_TLU_TUEH2L			"tlu-tueh2l"
#define	FIRE_TLU_UELE			"tlu-uele"
#define	FIRE_TLU_UESS			"tlu-uess"
#define	FIRE_TLU_UIE			"tlu-uie"
#define	FIRE_TLU_UIS			"tlu-uis"

/* DMC ereport payload */
#define	FIRE_IMU_ELE			"imu-ele"
#define	FIRE_IMU_ESS			"imu-ess"
#define	FIRE_IMU_IE			"imu-ie"
#define	FIRE_IMU_IS			"imu-is"
#define	FIRE_IMU_RDS			"imu-rds"
#define	FIRE_IMU_SCS			"imu-scs"
#define	FIRE_MMU_ELE			"mmu-ele"
#define	FIRE_MMU_ESS			"mmu-ess"
#define	FIRE_MMU_IE			"mmu-ie"
#define	FIRE_MMU_IS			"mmu-is"
#define	FIRE_MMU_TFAR			"mmu-tfar"
#define	FIRE_MMU_TFSR			"mmu-tfsr"

/* JBC ereport payload */
#define	FIRE_JBC_DMC_IDC		"jbc-dmc-idc"
#define	FIRE_JBC_DMC_ODCD		"jbc-dmc-odcd"
#define	FIRE_JBC_ELE			"jbc-ele"
#define	FIRE_JBC_ESS			"jbc-ess"
#define	FIRE_JBC_FEL1			"jbc-fel1"
#define	FIRE_JBC_FEL2			"jbc-fel2"
#define	FIRE_JBC_IE			"jbc-ie"
#define	FIRE_JBC_IS			"jbc-is"
#define	FIRE_JBC_JITEL1			"jbc-jitel1"
#define	FIRE_JBC_JITEL2			"jbc-jitel2"
#define	FIRE_JBC_JOTEL1			"jbc-jotel1"
#define	FIRE_JBC_JOTEL2			"jbc-jotel2"
#define	FIRE_JBC_MTEL			"jbc-mtel"

/* UBC ereport payload */
#define	OBERON_UBC_ELE			"ubc-ele"
#define	OBERON_UBC_IE			"ubc-ie"
#define	OBERON_UBC_IS			"ubc-is"
#define	OBERON_UBC_ESS			"ubc-ess"
#define	OBERON_UBC_MUE			"ubc-mue"
#define	OBERON_UBC_UNUM			"ubc-unum"
#define	OBERON_UBC_DID			"ubc-did"
#define	OBERON_UBC_CPUV			"ubc-cpuv"
#define	OBERON_UBC_RESOURCE		"resource"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_SUN4_FIRE_H */
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef	_SYS_FM_IO_SUN4UPCI_H
#define	_SYS_FM_IO_SUN4UPCI_H

#ifdef	__cplusplus
extern "C" {
#endif

/* Sun4u PCI FMA Event Protocol definitions */

#define	PCI_PSYCHO			"psy"
#define	PCI_SCHIZO			"sch"
#define	PCI_TOMATILLO			"tom"
#define	PCI_XMITS			"xmits"

/* PBM ereport classes */
#define	PCI_PBM_TTO			"pbm.tto"
#define	PCI_PBM_RETRY			"pbm.rl"
#define	PCI_SEC_PBM_TTO			"pbm.s-tto"
#define	PCI_SEC_PBM_RETRY		"pbm.s-rl"
#define	PCI_SEC_MA			"pbm.s-ma"
#define	PCI_SEC_REC_TA			"pbm.s-rta"
#define	PCI_SEC_MDPE			"pbm.s-mdpe"
#define	PCI_PBM_TARG_TTO		"pbm.target-tto"
#define	PCI_PBM_TARG_RETRY		"pbm.target-rl"

/* Schizo/Tomatillo ereport classes */
#define	PCI_SCH_MMU_ERR			"mmu"
#define	PCI_SCH_BUS_UNUSABLE_ERR	"bu"
#define	PCI_SEC_SCH_BUS_UNUSABLE_ERR	"s-bu"
#define	PCI_SCH_SLOT_LOCK_ERR		"sl"
#define	PCI_SCH_SBH			"sbh"

#define	PCI_TOM_MMU_BAD_TSBTBW		"mmu.btt"
#define	PCI_TOM_MMU_BAD_VA		"mmu.bva"
#define	PCI_TOM_MMU_PROT_ERR		"mmu.prot"
#define	PCI_TOM_MMU_INVAL_ERR		"mmu.inval"
#define	PCI_TOM_MMU_TO_ERR		"mmu.to"
#define	PCI_TOM_MMU_UE			"mmu.ue"

/* Psycho ereport classes */

#define	PCI_PSY_SBH			"sbh"

/* IO detected memory ereport classes */
#define	PCI_ECC_DRD_UE			"ecc.drue"
#define	PCI_ECC_DRD_CE			"ecc.drce"
#define	PCI_ECC_DWR_UE			"ecc.dwue"
#define	PCI_ECC_DWR_CE			"ecc.dwce"
#define	PCI_ECC_PIO_UE			"ecc.pue"
#define	PCI_ECC_PIO_CE			"ecc.pce"
#define	PCI_ECC_SEC_DRD_UE		"ecc.s-drue"
#define	PCI_ECC_SEC_DRD_CE		"ecc.s-drce"
#define	PCI_ECC_SEC_DWR_UE		"ecc.s-dwue"
#define	PCI_ECC_SEC_DWR_CE		"ecc.s-dwce"
#define	PCI_ECC_SEC_PIO_UE		"ecc.s-pue"
#define	PCI_ECC_SEC_PIO_CE		"ecc.s-pce"


/* Safari ereport classes */
#define	SAFARI_APERR			"saf.ape"
#define	SAFARI_UNMAP_ERR		"saf.um"
#define	SAFARI_TO_ERR			"saf.to"
#define	SAFARI_BUS_ERR			"saf.bus"
#define	SAFARI_DSTAT_ERR		"saf.dstat"
#define	SAFARI_BAD_CMD			"saf.bc"
#define	SAFARI_SSM_DIS			"saf.smm-dis"
#define	SAFARI_BAD_CMD_PCIA		"saf.bca"
#define	SAFARI_BAD_CMD_PCIB		"saf.bcb"
#define	SAFARI_PAR_ERR_INT_PCIB		"saf.parb"
#define	SAFARI_PAR_ERR_INT_PCIA		"saf.para"
#define	SAFARI_PAR_ERR_INT_SAF		"saf.pars"
#define	SAFARI_PLL_ERR_PCIB		"saf.pllb"
#define	SAFARI_PLL_ERR_PCIA		"saf.plla"
#define	SAFARI_PLL_ERR_SAF		"saf.plls"
#define	SAFARI_SAF_CIQ_TO		"saf.ciq-to"
#define	SAFARI_SAF_LPQ_TO		"saf.lpq-to"
#define	SAFARI_SAF_SFPQ_TO		"saf.sfpq-to"
#define	SAFARI_SAF_UFPQ_TO		"saf.ufpq-to"
#define	SAFARI_CPU0_PAR_SINGLE		"saf.cpu0-par"
#define	SAFARI_CPU0_PAR_BIDI		"saf.cpu0-bidi"
#define	SAFARI_CPU1_PAR_SINGLE		"saf.cpu1-par"
#define	SAFARI_CPU1_PAR_BIDI		"saf.cpu1-bidi"

/* Jbus ereport classes */
#define	JBUS_APERR			"jbus.ape"
#define	JBUS_PWR_DATA_PERR		"jbus.pwpe"
#define	JBUS_DRD_DATA_PERR		"jbus.drpe"
#define	JBUS_DWR_DATA_PERR		"jbus.dwpe"
#define	JBUS_CTL_PERR			"jbus.cpe"
#define	JBUS_ILL_BYTE_EN		"jbus.ibe"
#define	JBUS_ILL_COH_IN			"jbus.iis"
#define	JBUS_SNOOP_ERR_RD		"jbus.srd"
#define	JBUS_SNOOP_ERR_RDS		"jbus.srds"
#define	JBUS_SNOOP_ERR_RDSA		"jbus.srdsa"
#define	JBUS_SNOOP_ERR_OWN		"jbus.sown"
#define	JBUS_SNOOP_ERR_RDO		"jbus.srdo"
#define	JBUS_BAD_CMD			"jbus.bc"
#define	JBUS_UNMAP_ERR			"jbus.um"
#define	JBUS_TO_ERR			"jbus.to"
#define	JBUS_BUS_ERR			"jbus.bus"
#define	JBUS_TO_EXP_ERR			"jbus.to-exp"
#define	JBUS_SNOOP_ERR_GR		"jbus.sgr"
#define	JBUS_SNOOP_ERR_PCI		"jbus.spci"
#define	JBUS_SNOOP_ERR			"jbus.snp"

/* PBM ereport payload */
#define	PCI_PBM_CSR			"pbm-csr"
#define	PCI_PBM_AFSR			"pbm-afsr"
#define	PCI_PBM_AFAR			"pbm-afar"
#define	PCI_PBM_SLOT			"errant-slot"
#define	PCI_PBM_VALOG			"pbm-valog"

/* IOMMU ereport payload */
#define	PCI_PBM_IOMMU_CTRL		"iommu-csr"
#define	PCI_PBM_IOMMU_TFAR		"iommu-tfar"

/* IO detected memory error payload */
#define	PCI_ECC_AFSR			"ecc-afsr"
#define	PCI_ECC_AFAR			"ecc-afar"
#define	PCI_ECC_CTRL			"ecc-ctrl"
#define	PCI_ECC_SYND			"ecc-syndrome"
#define	PCI_ECC_TYPE			"ecc-err-type"
#define	PCI_ECC_DISP			"ecc-err-disposition"
#define	PCI_ECC_UNUM			"mem-unum"
#define	PCI_ECC_RESOURCE		"mem-resource"

/* Safari ereport payload */
#define	SAFARI_CSR			"safari-csr"
#define	SAFARI_ERR			"safari-err"
#define	SAFARI_INTR			"safari-intr"
#define	SAFARI_ELOG			"safari-elog"
#define	SAFARI_PCR			"safari-pcr"
#define	SAFARI_RESOURCE			"safari-resource"
#define	PCI_PBM_LOG_1			"pbm-log1"
#define	PCI_PBM_LOG_2			"pbm-log2"

/* Jbus ereport payload */
#define	JBUS_CSR			"jbus-csr"
#define	JBUS_ERR			"jbus-err"
#define	JBUS_INTR			"jbus-intr"
#define	JBUS_ELOG			"jbus-elog"
#define	JBUS_PCR			"jbus-pcr"
#define	JBUS_RESOURCE			"jbus-resource"

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_FM_IO_SUN4UPCI_H */