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.
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.
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]
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SYS_NXGE_NXGE_FM_H
27 #define _SYS_NXGE_NXGE_FM_H
29 #pragma ident "%Z%%M% %I% %E% SMI"
37 #define ERNAME_DETAILED_ERR_TYPE "detailed error type"
38 #define ERNAME_ERR_PORTN "port number"
39 #define ERNAME_ERR_DCHAN "dma channel number"
40 #define ERNAME_TCAM_ERR_LOG "tcam error log"
41 #define ERNAME_VLANTAB_ERR_LOG "vlan table error log"
42 #define ERNAME_HASHTAB_ERR_LOG "hash table error log"
43 #define ERNAME_HASHT_LOOKUP_ERR_LOG0 "hash table lookup error log0"
44 #define ERNAME_HASHT_LOOKUP_ERR_LOG1 "hash table lookup error log1"
45 #define ERNAME_RDMC_PAR_ERR_LOG "rdmc parity error log"
46 #define ERNAME_DFIFO_RD_PTR "dfifo read pointer"
47 #define ERNAME_IPP_STATE_MACH "ipp state machine"
48 #define ERNAME_DFIFO_ENTRY "dfifo entry"
49 #define ERNAME_DFIFO_SYNDROME "dfifo syndrome"
50 #define ERNAME_PFIFO_ENTRY "pfifo entry"
51 #define ERNAME_ZCP_STATE_MACH "zcp state machine"
52 #define ERNAME_CFIFO_PORT_NUM "cfifo port number"
53 #define ERNAME_RDC_ERR_TYPE "completion error type"
54 #define ERNAME_TDMC_ERR_LOG0 "tdmc error log0"
55 #define ERNAME_TDMC_ERR_LOG1 "tdmc error log1"
56 #define ERNAME_TXC_ROECC_ADDR "txc reorder FIFO ECC error address"
57 #define ERNAME_TXC_ROECC_DATA0 "txc reorder FIFO data0"
58 #define ERNAME_TXC_ROECC_DATA1 "txc reorder FIFO data1"
59 #define ERNAME_TXC_ROECC_DATA2 "txc reorder FIFO data2"
60 #define ERNAME_TXC_ROECC_DATA3 "txc reorder FIFO data3"
61 #define ERNAME_TXC_ROECC_DATA4 "txc reorder FIFO data4"
62 #define ERNAME_TXC_RO_STATE0 "txc reorder FIFO error state0" \
64 #define ERNAME_TXC_RO_STATE1 "txc reorder FIFO error state1" \
66 #define ERNAME_TXC_RO_STATE2 "txc reorder FIFO error state2" \
68 #define ERNAME_TXC_RO_STATE3 "txc reorder FIFO error state3"
69 #define ERNAME_TXC_RO_STATE_CTL "txc reorder FIFO error control"
70 #define ERNAME_TXC_RO_TIDS "txc reorder tids"
71 #define ERNAME_TXC_SFECC_ADDR "txc store forward FIFO ECC error "\
73 #define ERNAME_TXC_SFECC_DATA0 "txc store forward FIFO data0"
74 #define ERNAME_TXC_SFECC_DATA1 "txc store forward FIFO data1"
75 #define ERNAME_TXC_SFECC_DATA2 "txc store forward FIFO data2"
76 #define ERNAME_TXC_SFECC_DATA3 "txc store forward FIFO data3"
77 #define ERNAME_TXC_SFECC_DATA4 "txc store forward FIFO data4"
79 #define EREPORT_FM_ID_SHIFT 16
80 #define EREPORT_FM_ID_MASK 0xFF
81 #define EREPORT_INDEX_MASK 0xFF
82 #define NXGE_FM_EREPORT_UNKNOWN 0
84 /* xaui and xfp ereport definitions */
85 #define NXGE_FM_DEVICE_XAUI_ERR "nxge.xaui-err"
86 #define NXGE_FM_DEVICE_XFP_ERR "nxge.xfp-err"
89 #define FM_PCS_ID MAC_BLK_ID
90 #define FM_TXMAC_ID TXMAC_BLK_ID
91 #define FM_RXMAC_ID RXMAC_BLK_ID
92 #define FM_MIF_ID MIF_BLK_ID
93 #define FM_IPP_ID IPP_BLK_ID
94 #define FM_TXC_ID TXC_BLK_ID
95 #define FM_TXDMA_ID TXDMA_BLK_ID
96 #define FM_RXDMA_ID RXDMA_BLK_ID
97 #define FM_ZCP_ID ZCP_BLK_ID
98 #define FM_ESPC_ID ESPC_BLK_ID
99 #define FM_FFLP_ID FFLP_BLK_ID
100 #define FM_PCIE_ID PCIE_BLK_ID
101 #define FM_ETHER_SERDES_ID ETHER_SERDES_BLK_ID
102 #define FM_PCIE_SERDES_ID PCIE_SERDES_BLK_ID
103 #define FM_VIR_ID VIR_BLK_ID
104 #define FM_XAUI_ID XAUI_BLK_ID
105 #define FM_XFP_ID XFP_BLK_ID
107 typedef uint32_t nxge_fm_ereport_id_t
;
109 typedef struct _nxge_fm_ereport_attr
{
113 ddi_fault_impact_t impact
;
114 } nxge_fm_ereport_attr_t
;
116 /* General MAC ereports */
118 NXGE_FM_EREPORT_XPCS_LINK_DOWN
= (FM_PCS_ID
<< EREPORT_FM_ID_SHIFT
),
119 NXGE_FM_EREPORT_XPCS_TX_LINK_FAULT
,
120 NXGE_FM_EREPORT_XPCS_RX_LINK_FAULT
,
121 NXGE_FM_EREPORT_PCS_LINK_DOWN
,
122 NXGE_FM_EREPORT_PCS_REMOTE_FAULT
123 } nxge_fm_ereport_pcs_t
;
127 NXGE_FM_EREPORT_MIF_ACCESS_FAIL
= (FM_MIF_ID
<< EREPORT_FM_ID_SHIFT
)
128 } nxge_fm_ereport_mif_t
;
132 NXGE_FM_EREPORT_FFLP_TCAM_ERR
= (FM_FFLP_ID
<< EREPORT_FM_ID_SHIFT
),
133 NXGE_FM_EREPORT_FFLP_VLAN_PAR_ERR
,
134 NXGE_FM_EREPORT_FFLP_HASHT_DATA_ERR
,
135 NXGE_FM_EREPORT_FFLP_HASHT_LOOKUP_ERR
,
136 NXGE_FM_EREPORT_FFLP_ACCESS_FAIL
137 } nxge_fm_ereport_fflp_t
;
141 NXGE_FM_EREPORT_IPP_EOP_MISS
= (FM_IPP_ID
<< EREPORT_FM_ID_SHIFT
),
142 NXGE_FM_EREPORT_IPP_SOP_MISS
,
143 NXGE_FM_EREPORT_IPP_DFIFO_UE
,
144 NXGE_FM_EREPORT_IPP_DFIFO_CE
,
145 NXGE_FM_EREPORT_IPP_PFIFO_PERR
,
146 NXGE_FM_EREPORT_IPP_ECC_ERR_MAX
,
147 NXGE_FM_EREPORT_IPP_PFIFO_OVER
,
148 NXGE_FM_EREPORT_IPP_PFIFO_UND
,
149 NXGE_FM_EREPORT_IPP_BAD_CS_MX
,
150 NXGE_FM_EREPORT_IPP_PKT_DIS_MX
,
151 NXGE_FM_EREPORT_IPP_RESET_FAIL
152 } nxge_fm_ereport_ipp_t
;
156 NXGE_FM_EREPORT_RDMC_DCF_ERR
= (FM_RXDMA_ID
<< EREPORT_FM_ID_SHIFT
),
157 NXGE_FM_EREPORT_RDMC_RCR_ACK_ERR
,
158 NXGE_FM_EREPORT_RDMC_DC_FIFO_ERR
,
159 NXGE_FM_EREPORT_RDMC_RCR_SHA_PAR
,
160 NXGE_FM_EREPORT_RDMC_RBR_PRE_PAR
,
161 NXGE_FM_EREPORT_RDMC_RBR_TMOUT
,
162 NXGE_FM_EREPORT_RDMC_RSP_CNT_ERR
,
163 NXGE_FM_EREPORT_RDMC_BYTE_EN_BUS
,
164 NXGE_FM_EREPORT_RDMC_RSP_DAT_ERR
,
165 NXGE_FM_EREPORT_RDMC_ID_MISMATCH
,
166 NXGE_FM_EREPORT_RDMC_ZCP_EOP_ERR
,
167 NXGE_FM_EREPORT_RDMC_IPP_EOP_ERR
,
168 NXGE_FM_EREPORT_RDMC_RCR_ERR
,
169 NXGE_FM_EREPORT_RDMC_CONFIG_ERR
,
170 NXGE_FM_EREPORT_RDMC_RCRINCON
,
171 NXGE_FM_EREPORT_RDMC_RCRFULL
,
172 NXGE_FM_EREPORT_RDMC_RBRFULL
,
173 NXGE_FM_EREPORT_RDMC_RBRLOGPAGE
,
174 NXGE_FM_EREPORT_RDMC_CFIGLOGPAGE
175 } nxge_fm_ereport_rdmc_t
;
179 NXGE_FM_EREPORT_ZCP_RRFIFO_UNDERRUN
=
180 (FM_ZCP_ID
<< EREPORT_FM_ID_SHIFT
),
181 NXGE_FM_EREPORT_ZCP_RSPFIFO_UNCORR_ERR
,
182 NXGE_FM_EREPORT_ZCP_STAT_TBL_PERR
,
183 NXGE_FM_EREPORT_ZCP_DYN_TBL_PERR
,
184 NXGE_FM_EREPORT_ZCP_BUF_TBL_PERR
,
185 NXGE_FM_EREPORT_ZCP_CFIFO_ECC
,
186 NXGE_FM_EREPORT_ZCP_RRFIFO_OVERRUN
,
187 NXGE_FM_EREPORT_ZCP_BUFFER_OVERFLOW
,
188 NXGE_FM_EREPORT_ZCP_TT_PROGRAM_ERR
,
189 NXGE_FM_EREPORT_ZCP_RSP_TT_INDEX_ERR
,
190 NXGE_FM_EREPORT_ZCP_SLV_TT_INDEX_ERR
,
191 NXGE_FM_EREPORT_ZCP_TT_INDEX_ERR
,
192 NXGE_FM_EREPORT_ZCP_ACCESS_FAIL
193 } nxge_fm_ereport_zcp_t
;
196 NXGE_FM_EREPORT_RXMAC_UNDERFLOW
= (FM_RXMAC_ID
<< EREPORT_FM_ID_SHIFT
),
197 NXGE_FM_EREPORT_RXMAC_CRC_ERRCNT_EXP
,
198 NXGE_FM_EREPORT_RXMAC_LENGTH_ERRCNT_EXP
,
199 NXGE_FM_EREPORT_RXMAC_VIOL_ERRCNT_EXP
,
200 NXGE_FM_EREPORT_RXMAC_RXFRAG_CNT_EXP
,
201 NXGE_FM_EREPORT_RXMAC_ALIGN_ECNT_EXP
,
202 NXGE_FM_EREPORT_RXMAC_LINKFAULT_CNT_EXP
,
203 NXGE_FM_EREPORT_RXMAC_RESET_FAIL
204 } nxge_fm_ereport_rxmac_t
;
207 NXGE_FM_EREPORT_TDMC_PREF_BUF_PAR_ERR
=
208 (FM_TXDMA_ID
<< EREPORT_FM_ID_SHIFT
),
209 NXGE_FM_EREPORT_TDMC_MBOX_ERR
,
210 NXGE_FM_EREPORT_TDMC_NACK_PREF
,
211 NXGE_FM_EREPORT_TDMC_NACK_PKT_RD
,
212 NXGE_FM_EREPORT_TDMC_PKT_SIZE_ERR
,
213 NXGE_FM_EREPORT_TDMC_TX_RING_OFLOW
,
214 NXGE_FM_EREPORT_TDMC_CONF_PART_ERR
,
215 NXGE_FM_EREPORT_TDMC_PKT_PRT_ERR
,
216 NXGE_FM_EREPORT_TDMC_RESET_FAIL
217 } nxge_fm_ereport_attr_tdmc_t
;
220 NXGE_FM_EREPORT_TXC_RO_CORRECT_ERR
=
221 (FM_TXC_ID
<< EREPORT_FM_ID_SHIFT
),
222 NXGE_FM_EREPORT_TXC_RO_UNCORRECT_ERR
,
223 NXGE_FM_EREPORT_TXC_SF_CORRECT_ERR
,
224 NXGE_FM_EREPORT_TXC_SF_UNCORRECT_ERR
,
225 NXGE_FM_EREPORT_TXC_ASSY_DEAD
,
226 NXGE_FM_EREPORT_TXC_REORDER_ERR
227 } nxge_fm_ereport_attr_txc_t
;
230 NXGE_FM_EREPORT_TXMAC_UNDERFLOW
=
231 (FM_TXMAC_ID
<< EREPORT_FM_ID_SHIFT
),
232 NXGE_FM_EREPORT_TXMAC_OVERFLOW
,
233 NXGE_FM_EREPORT_TXMAC_TXFIFO_XFR_ERR
,
234 NXGE_FM_EREPORT_TXMAC_MAX_PKT_ERR
,
235 NXGE_FM_EREPORT_TXMAC_RESET_FAIL
236 } nxge_fm_ereport_attr_txmac_t
;
239 NXGE_FM_EREPORT_ESPC_ACCESS_FAIL
= (FM_ESPC_ID
<< EREPORT_FM_ID_SHIFT
)
240 } nxge_fm_ereport_espc_t
;
243 NXGE_FM_EREPORT_SW_INVALID_PORT_NUM
= (FM_SW_ID
<< EREPORT_FM_ID_SHIFT
),
244 NXGE_FM_EREPORT_SW_INVALID_CHAN_NUM
,
245 NXGE_FM_EREPORT_SW_INVALID_PARAM
246 } nxge_fm_ereport_sw_t
;
248 /* XAUI is broken or missing */
250 NXGE_FM_EREPORT_XAUI_ERR
= (FM_XAUI_ID
<< EREPORT_FM_ID_SHIFT
)
251 } nxge_fm_ereport_xaui_t
;
253 /* XFP optical module is broken or missing */
255 NXGE_FM_EREPORT_XFP_ERR
= (FM_XFP_ID
<< EREPORT_FM_ID_SHIFT
)
256 } nxge_fm_ereport_xfp_t
;
258 #define NXGE_FM_EREPORT_UNKNOWN 0
259 #define NXGE_FM_EREPORT_UNKNOWN_NAME ""
265 #endif /* _SYS_NXGE_NXGE_FM_H */