16349Sqs148142 /* 26349Sqs148142 * CDDL HEADER START 36349Sqs148142 * 46349Sqs148142 * The contents of this file are subject to the terms of the 56349Sqs148142 * Common Development and Distribution License (the "License"). 66349Sqs148142 * You may not use this file except in compliance with the License. 76349Sqs148142 * 86349Sqs148142 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 96349Sqs148142 * or http://www.opensolaris.org/os/licensing. 106349Sqs148142 * See the License for the specific language governing permissions 116349Sqs148142 * and limitations under the License. 126349Sqs148142 * 136349Sqs148142 * When distributing Covered Code, include this CDDL HEADER in each 146349Sqs148142 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 156349Sqs148142 * If applicable, add the following below this CDDL HEADER, with the 166349Sqs148142 * fields enclosed by brackets "[]" replaced with your own identifying 176349Sqs148142 * information: Portions Copyright [yyyy] [name of copyright owner] 186349Sqs148142 * 196349Sqs148142 * CDDL HEADER END 206349Sqs148142 */ 216349Sqs148142 /* 226349Sqs148142 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 236349Sqs148142 * Use is subject to license terms. 246349Sqs148142 */ 256349Sqs148142 266349Sqs148142 #ifndef _SYS_HXGE_HXGE_FM_H 276349Sqs148142 #define _SYS_HXGE_HXGE_FM_H 286349Sqs148142 296349Sqs148142 #ifdef __cplusplus 306349Sqs148142 extern "C" { 316349Sqs148142 #endif 326349Sqs148142 336349Sqs148142 #include <sys/ddi.h> 346349Sqs148142 356349Sqs148142 #define ERNAME_DETAILED_ERR_TYPE "detailed error type" 366349Sqs148142 #define ERNAME_ERR_DCHAN "dma channel number" 376349Sqs148142 #define ERNAME_PFC_TCAM_ERR "pfc tcam error" 386349Sqs148142 #define ERNAME_PFC_VLAN_ERR "pfc vlan table error" 396349Sqs148142 #define ERNAME_PFC_PKT_DROP "pfc pkt drop error" 406349Sqs148142 #define ERNAME_RDMC_PAR_ERR_LOG "rdmc parity error log" 416349Sqs148142 #define ERNAME_RDC_ERR_TYPE "completion error type" 426349Sqs148142 #define ERNAME_TDC_PREF_PAR_LOG "tdc pref par log" 436349Sqs148142 446349Sqs148142 #define EREPORT_FM_ID_SHIFT 16 456349Sqs148142 #define EREPORT_FM_ID_MASK 0xFF 466349Sqs148142 #define EREPORT_INDEX_MASK 0xFF 476349Sqs148142 #define HXGE_FM_EREPORT_UNKNOWN 0 486349Sqs148142 496349Sqs148142 #define FM_SW_ID 0xFF 506349Sqs148142 #define FM_VMAC_ID VMAC_BLK_ID 516349Sqs148142 #define FM_TXDMA_ID TXDMA_BLK_ID 526349Sqs148142 #define FM_RXDMA_ID RXDMA_BLK_ID 536349Sqs148142 #define FM_PFC_ID PFC_BLK_ID 546349Sqs148142 #define FM_PEU_ID PEU_BLK_ID 556349Sqs148142 566349Sqs148142 typedef uint32_t hxge_fm_ereport_id_t; 576349Sqs148142 586349Sqs148142 typedef struct _hxge_fm_ereport_attr { 596349Sqs148142 uint32_t index; 606349Sqs148142 char *str; 616349Sqs148142 char *eclass; 626349Sqs148142 ddi_fault_impact_t impact; 636349Sqs148142 } hxge_fm_ereport_attr_t; 646349Sqs148142 656349Sqs148142 /* VMAC ereports */ 666349Sqs148142 typedef enum { 67*7584SQiyan.Sun@Sun.COM HXGE_FM_EREPORT_VMAC_LINK_DOWN = (FM_VMAC_ID << EREPORT_FM_ID_SHIFT) 686349Sqs148142 } hxge_fm_ereport_vmac_t; 696349Sqs148142 706349Sqs148142 /* PFC ereports */ 716349Sqs148142 typedef enum { 726349Sqs148142 HXGE_FM_EREPORT_PFC_TCAM_PAR_ERR = (FM_PFC_ID << EREPORT_FM_ID_SHIFT), 736349Sqs148142 HXGE_FM_EREPORT_PFC_VLAN_PAR_ERR, 746349Sqs148142 HXGE_FM_EREPORT_PFC_PKT_DROP 756349Sqs148142 } hxge_fm_ereport_pfc_t; 766349Sqs148142 776349Sqs148142 /* RDMC ereports */ 786349Sqs148142 typedef enum { 796349Sqs148142 HXGE_FM_EREPORT_RDMC_RBR_CPL_TO = (FM_RXDMA_ID << EREPORT_FM_ID_SHIFT), 806349Sqs148142 HXGE_FM_EREPORT_RDMC_PEU_RESP_ERR, 816349Sqs148142 HXGE_FM_EREPORT_RDMC_RCR_SHA_PAR, 826349Sqs148142 HXGE_FM_EREPORT_RDMC_RBR_PRE_PAR, 836349Sqs148142 HXGE_FM_EREPORT_RDMC_RBR_PRE_EMPTY, 846349Sqs148142 HXGE_FM_EREPORT_RDMC_RCR_SHA_FULL, 856349Sqs148142 HXGE_FM_EREPORT_RDMC_RCRFULL, 866349Sqs148142 HXGE_FM_EREPORT_RDMC_RBR_EMPTY, 876349Sqs148142 HXGE_FM_EREPORT_RDMC_RBRFULL, 886349Sqs148142 HXGE_FM_EREPORT_RDMC_RCR_ERR, 896349Sqs148142 HXGE_FM_EREPORT_RDMC_CTRL_FIFO_DED, 906349Sqs148142 HXGE_FM_EREPORT_RDMC_DATA_FIFO_DED, 916349Sqs148142 HXGE_FM_EREPORT_RDMC_CTRL_FIFO_SEC, 926349Sqs148142 HXGE_FM_EREPORT_RDMC_DATA_FIFO_SEC 936349Sqs148142 } hxge_fm_ereport_rdmc_t; 946349Sqs148142 956349Sqs148142 typedef enum { 966349Sqs148142 HXGE_FM_EREPORT_TDMC_PEU_RESP_ERR = 976349Sqs148142 (FM_TXDMA_ID << EREPORT_FM_ID_SHIFT), 986349Sqs148142 HXGE_FM_EREPORT_TDMC_PKT_SIZE_HDR_ERR, 996349Sqs148142 HXGE_FM_EREPORT_TDMC_RUNT_PKT_DROP_ERR, 1006349Sqs148142 HXGE_FM_EREPORT_TDMC_PKT_SIZE_ERR, 1016349Sqs148142 HXGE_FM_EREPORT_TDMC_TX_RNG_OFLOW, 1026349Sqs148142 HXGE_FM_EREPORT_TDMC_PREF_PAR_ERR, 1036349Sqs148142 HXGE_FM_EREPORT_TDMC_TDR_PREF_CPL_TO, 1046349Sqs148142 HXGE_FM_EREPORT_TDMC_PKT_CPL_TO, 1056349Sqs148142 HXGE_FM_EREPORT_TDMC_INVALID_SOP, 1066349Sqs148142 HXGE_FM_EREPORT_TDMC_UNEXPECTED_SOP, 1076349Sqs148142 HXGE_FM_EREPORT_TDMC_REORD_TBL_PAR, 1086349Sqs148142 HXGE_FM_EREPORT_TDMC_REORD_BUF_DED 1096349Sqs148142 } hxge_fm_ereport_attr_tdmc_t; 1106349Sqs148142 1116349Sqs148142 /* PEU ereports */ 1126349Sqs148142 typedef enum { 1136349Sqs148142 HXGE_FM_EREPORT_PEU_ERR = (FM_PEU_ID << EREPORT_FM_ID_SHIFT), 1146349Sqs148142 HXGE_FM_EREPORT_PEU_VNM_PIO_ERR 1156349Sqs148142 } hxge_fm_ereport_peu_t; 1166349Sqs148142 1176349Sqs148142 typedef enum { 1186349Sqs148142 HXGE_FM_EREPORT_SW_INVALID_CHAN_NUM = (FM_SW_ID << EREPORT_FM_ID_SHIFT), 1196349Sqs148142 HXGE_FM_EREPORT_SW_INVALID_PARAM 1206349Sqs148142 } hxge_fm_ereport_sw_t; 1216349Sqs148142 1226349Sqs148142 1236349Sqs148142 #ifdef __cplusplus 1246349Sqs148142 } 1256349Sqs148142 #endif 1266349Sqs148142 1276349Sqs148142 #endif /* _SYS_HXGE_HXGE_FM_H */ 128