aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vxge/vxgehal/vxgehal-common-reg.h
blob: 19be2595377c52f031c11f9e069d6de6c46a7848 (plain) (blame)
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
/*-
 * Copyright(c) 2002-2011 Exar Corp.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification are permitted provided the following conditions are met:
 *
 *    1. Redistributions of source code must retain the above copyright notice,
 *       this list of conditions and the following disclaimer.
 *
 *    2. Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *
 *    3. Neither the name of the Exar Corporation nor the names of its
 *       contributors may be used to endorse or promote products derived from
 *       this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
/*$FreeBSD$*/

#ifndef	VXGE_HAL_COMMON_REGS_H
#define	VXGE_HAL_COMMON_REGS_H

__EXTERN_BEGIN_DECLS

typedef struct vxge_hal_common_reg_t {

	u8	unused00a00[0x00a00];

/* 0x00a00 */	u64	prc_status1;
#define	VXGE_HAL_PRC_STATUS1_PRC_VP_QUIESCENT(n)	mBIT(n)
/* 0x00a08 */	u64	rxdcm_reset_in_progress;
#define	VXGE_HAL_RXDCM_RESET_IN_PROGRESS_PRC_VP(n)	mBIT(n)
/* 0x00a10 */	u64	replicq_flush_in_progress;
#define	VXGE_HAL_REPLICQ_FLUSH_IN_PROGRESS_NOA_VP(n)	mBIT(n)
/* 0x00a18 */	u64	rxpe_cmds_reset_in_progress;
#define	VXGE_HAL_RXPE_CMDS_RESET_IN_PROGRESS_NOA_VP(n)	mBIT(n)
/* 0x00a20 */	u64	mxp_cmds_reset_in_progress;
#define	VXGE_HAL_MXP_CMDS_RESET_IN_PROGRESS_NOA_VP(n)	mBIT(n)
/* 0x00a28 */	u64	noffload_reset_in_progress;
#define	VXGE_HAL_NOFFLOAD_RESET_IN_PROGRESS_PRC_VP(n)	mBIT(n)
/* 0x00a30 */	u64	rd_req_in_progress;
#define	VXGE_HAL_RD_REQ_IN_PROGRESS_VP(n)	mBIT(n)
/* 0x00a38 */	u64	rd_req_outstanding;
#define	VXGE_HAL_RD_REQ_OUTSTANDING_VP(n)	mBIT(n)
/* 0x00a40 */	u64	kdfc_reset_in_progress;
#define	VXGE_HAL_KDFC_RESET_IN_PROGRESS_NOA_VP(n)	mBIT(n)
	u8	unused00b00[0x00b00 - 0x00a48];

/* 0x00b00 */	u64	one_cfg_vp;
#define	VXGE_HAL_ONE_CFG_VP_RDY(n)	mBIT(n)
/* 0x00b08 */	u64	one_common;
#define	VXGE_HAL_ONE_COMMON_PET_VPATH_RESET_IN_PROGRESS(n)	mBIT(n)
	u8	unused00b80[0x00b80 - 0x00b10];

/* 0x00b80 */	u64	tim_int_en;
#define	VXGE_HAL_TIM_INT_EN_TIM_VP(n)	mBIT(n)
/* 0x00b88 */	u64	tim_set_int_en;
#define	VXGE_HAL_TIM_SET_INT_EN_VP(n)	mBIT(n)
/* 0x00b90 */	u64	tim_clr_int_en;
#define	VXGE_HAL_TIM_CLR_INT_EN_VP(n)	mBIT(n)
/* 0x00b98 */	u64	tim_mask_int_during_reset;
#define	VXGE_HAL_TIM_MASK_INT_DURING_RESET_VPATH(n)	mBIT(n)
/* 0x00ba0 */	u64	tim_reset_in_progress;
#define	VXGE_HAL_TIM_RESET_IN_PROGRESS_TIM_VPATH(n)	mBIT(n)
/* 0x00ba8 */	u64	tim_outstanding_bmap;
#define	VXGE_HAL_TIM_OUTSTANDING_BMAP_TIM_VPATH(n)	mBIT(n)
	u8	unused00c00[0x00c00 - 0x00bb0];

/* 0x00c00 */	u64	msg_reset_in_progress;
#define	VXGE_HAL_MSG_RESET_IN_PROGRESS_MSG_COMPOSITE(val)	vBIT(val, 0, 17)
/* 0x00c08 */	u64	msg_mxp_mr_ready;
#define	VXGE_HAL_MSG_MXP_MR_READY_MP_BOOTED(n)	mBIT(n)
/* 0x00c10 */	u64	msg_uxp_mr_ready;
#define	VXGE_HAL_MSG_UXP_MR_READY_UP_BOOTED(n)	mBIT(n)
/* 0x00c18 */	u64	msg_dmq_noni_rtl_prefetch;
#define	VXGE_HAL_MSG_DMQ_NONI_RTL_PREFETCH_BYPASS_ENABLE(n)	mBIT(n)
/* 0x00c20 */	u64	msg_umq_rtl_bwr;
#define	VXGE_HAL_MSG_UMQ_RTL_BWR_PREFETCH_DISABLE(n)	mBIT(n)
	u8	unused00d00[0x00d00 - 0x00c28];

/* 0x00d00 */	u64	cmn_rsthdlr_cfg0;
#define	VXGE_HAL_CMN_RSTHDLR_CFG0_SW_RESET_VPATH(val)	vBIT(val, 0, 17)
/* 0x00d08 */	u64	cmn_rsthdlr_cfg1;
#define	VXGE_HAL_CMN_RSTHDLR_CFG1_CLR_VPATH_RESET(val)	vBIT(val, 0, 17)
/* 0x00d10 */	u64	cmn_rsthdlr_cfg2;
#define	VXGE_HAL_CMN_RSTHDLR_CFG2_SW_RESET_FIFO0(val)	vBIT(val, 0, 17)
/* 0x00d18 */	u64	cmn_rsthdlr_cfg3;
#define	VXGE_HAL_CMN_RSTHDLR_CFG3_SW_RESET_FIFO1(val)	vBIT(val, 0, 17)
/* 0x00d20 */	u64	cmn_rsthdlr_cfg4;
#define	VXGE_HAL_CMN_RSTHDLR_CFG4_SW_RESET_FIFO2(val)	vBIT(val, 0, 17)
	u8	unused00d40[0x00d40 - 0x00d28];

/* 0x00d40 */	u64	cmn_rsthdlr_cfg8;
#define	VXGE_HAL_CMN_RSTHDLR_CFG8_INCR_VPATH_INST_NUM(val)	vBIT(val, 0, 17)
/* 0x00d48 */	u64	stats_cfg0;
#define	VXGE_HAL_STATS_CFG0_STATS_ENABLE(val)	vBIT(val, 0, 17)
	u8	unused00da8[0x00da8 - 0x00d50];

/* 0x00da8 */	u64	clear_msix_mask_vect[4];
#define	VXGE_HAL_CLEAR_MSIX_MASK_VECT_CLEAR_MSIX_MASK_VECT(val)	vBIT(val, 0, 17)
/* 0x00dc8 */	u64	set_msix_mask_vect[4];
#define	VXGE_HAL_SET_MSIX_MASK_VECT_SET_MSIX_MASK_VECT(val)	vBIT(val, 0, 17)
/* 0x00de8 */	u64	clear_msix_mask_all_vect;
#define	VXGE_HAL_CLEAR_MSIX_MASK_ALL_VECT_CLEAR_MSIX_MASK_ALL_VECT(val)\
								vBIT(val, 0, 17)
/* 0x00df0 */	u64	set_msix_mask_all_vect;
#define	VXGE_HAL_SET_MSIX_MASK_ALL_VECT_SET_MSIX_MASK_ALL_VECT(val)\
								vBIT(val, 0, 17)
/* 0x00df8 */	u64	mask_vector[4];
#define	VXGE_HAL_MASK_VECTOR_MASK_VECTOR(val)	vBIT(val, 0, 17)
/* 0x00e18 */	u64	msix_pending_vector[4];
#define	VXGE_HAL_MSIX_PENDING_VECTOR_MSIX_PENDING_VECTOR(val)	vBIT(val, 0, 17)
/* 0x00e38 */	u64	clr_msix_one_shot_vec[4];
#define	VXGE_HAL_CLR_MSIX_ONE_SHOT_VEC_CLR_MSIX_ONE_SHOT_VEC(val)\
								vBIT(val, 0, 17)
/* 0x00e58 */	u64	titan_asic_id;
#define	VXGE_HAL_TITAN_ASIC_ID_INITIAL_DEVICE_ID(val)		vBIT(val, 0, 16)
#define	VXGE_HAL_TITAN_ASIC_ID_INITIAL_MAJOR_REVISION(val)	vBIT(val, 48, 8)
#define	VXGE_HAL_TITAN_ASIC_ID_INITIAL_MINOR_REVISION(val)	vBIT(val, 56, 8)
/* 0x00e60 */	u64	titan_general_int_status;
#define	VXGE_HAL_TITAN_GENERAL_INT_STATUS_MRPCIM_ALARM_INT	mBIT(0)
#define	VXGE_HAL_TITAN_GENERAL_INT_STATUS_SRPCIM_ALARM_INT	mBIT(1)
#define	VXGE_HAL_TITAN_GENERAL_INT_STATUS_VPATH_ALARM_INT	mBIT(2)
#define	VXGE_HAL_TITAN_GENERAL_INT_STATUS_VPATH_TRAFFIC_INT(val)\
								vBIT(val, 3, 17)
	u8	unused00e70[0x00e70 - 0x00e68];

/* 0x00e70 */	u64	titan_mask_all_int;
#define	VXGE_HAL_TITAN_MASK_ALL_INT_ALARM	mBIT(7)
#define	VXGE_HAL_TITAN_MASK_ALL_INT_TRAFFIC	mBIT(15)
	u8	unused00e80[0x00e80 - 0x00e78];

/* 0x00e80 */	u64	tim_int_status0;
#define	VXGE_HAL_TIM_INT_STATUS0_TIM_INT_STATUS0(val)	vBIT(val, 0, 64)
/* 0x00e88 */	u64	tim_int_mask0;
#define	VXGE_HAL_TIM_INT_MASK0_TIM_INT_MASK0(val)	vBIT(val, 0, 64)
/* 0x00e90 */	u64	tim_int_status1;
#define	VXGE_HAL_TIM_INT_STATUS1_TIM_INT_STATUS1(val)	vBIT(val, 0, 4)
/* 0x00e98 */	u64	tim_int_mask1;
#define	VXGE_HAL_TIM_INT_MASK1_TIM_INT_MASK1(val)	vBIT(val, 0, 4)
/* 0x00ea0 */	u64	rti_int_status;
#define	VXGE_HAL_RTI_INT_STATUS_RTI_INT_STATUS(val)	vBIT(val, 0, 17)
/* 0x00ea8 */	u64	rti_int_mask;
#define	VXGE_HAL_RTI_INT_MASK_RTI_INT_MASK(val)	vBIT(val, 0, 17)
/* 0x00eb0 */	u64	adapter_status;
#define	VXGE_HAL_ADAPTER_STATUS_RTDMA_RTDMA_READY	mBIT(0)
#define	VXGE_HAL_ADAPTER_STATUS_WRDMA_WRDMA_READY	mBIT(1)
#define	VXGE_HAL_ADAPTER_STATUS_KDFC_KDFC_READY	mBIT(2)
#define	VXGE_HAL_ADAPTER_STATUS_TPA_TMAC_BUF_EMPTY	mBIT(3)
#define	VXGE_HAL_ADAPTER_STATUS_RDCTL_PIC_QUIESCENT	mBIT(4)
#define	VXGE_HAL_ADAPTER_STATUS_XGMAC_NETWORK_FAULT	mBIT(5)
#define	VXGE_HAL_ADAPTER_STATUS_ROCRC_OFFLOAD_QUIESCENT	mBIT(6)
#define	VXGE_HAL_ADAPTER_STATUS_G3IF_FB_G3IF_FB_GDDR3_READY	mBIT(7)
#define	VXGE_HAL_ADAPTER_STATUS_G3IF_CM_G3IF_CM_GDDR3_READY	mBIT(8)
#define	VXGE_HAL_ADAPTER_STATUS_RIC_RIC_RUNNING	mBIT(9)
#define	VXGE_HAL_ADAPTER_STATUS_CMG_C_PLL_IN_LOCK	mBIT(10)
#define	VXGE_HAL_ADAPTER_STATUS_XGMAC_X_PLL_IN_LOCK	mBIT(11)
#define	VXGE_HAL_ADAPTER_STATUS_FBIF_M_PLL_IN_LOCK	mBIT(12)
#define	VXGE_HAL_ADAPTER_STATUS_PCC_PCC_IDLE(val)	vBIT(val, 24, 8)
#define	VXGE_HAL_ADAPTER_STATUS_ROCRC_RC_PRC_QUIESCENT(val)	vBIT(val, 44, 8)
/* 0x00eb8 */	u64	gen_ctrl;
#define	VXGE_HAL_GEN_CTRL_SPI_MRPCIM_WR_DIS	mBIT(0)
#define	VXGE_HAL_GEN_CTRL_SPI_MRPCIM_RD_DIS	mBIT(1)
#define	VXGE_HAL_GEN_CTRL_SPI_SRPCIM_WR_DIS	mBIT(2)
#define	VXGE_HAL_GEN_CTRL_SPI_SRPCIM_RD_DIS	mBIT(3)
#define	VXGE_HAL_GEN_CTRL_SPI_DEBUG_DIS	mBIT(4)
#define	VXGE_HAL_GEN_CTRL_SPI_APP_LTSSM_TIMER_DIS	mBIT(5)
#define	VXGE_HAL_GEN_CTRL_SPI_NOT_USED(val)	vBIT(val, 6, 4)
	u8	unused00ed0[0x00ed0 - 0x00ec0];

/* 0x00ed0 */	u64	adapter_ready;
#define	VXGE_HAL_ADAPTER_READY_ADAPTER_READY	mBIT(63)
/* 0x00ed8 */	u64	outstanding_read;
#define	VXGE_HAL_OUTSTANDING_READ_OUTSTANDING_READ(val)	vBIT(val, 0, 17)
/* 0x00ee0 */	u64	vpath_rst_in_prog;
#define	VXGE_HAL_VPATH_RST_IN_PROG_VPATH_RST_IN_PROG(val)	vBIT(val, 0, 17)
/* 0x00ee8 */	u64	vpath_reg_modified;
#define	VXGE_HAL_VPATH_REG_MODIFIED_VPATH_REG_MODIFIED(val)	vBIT(val, 0, 17)
	u8	unused00f40[0x00f40 - 0x00ef0];

/* 0x00f40 */	u64	qcc_reset_in_progress;
#define	VXGE_HAL_QCC_RESET_IN_PROGRESS_QCC_VPATH(n)	mBIT(n)
	u8	unused00fc0[0x00fc0 - 0x00f48];

/* 0x00fc0 */	u64	cp_reset_in_progress;
#define	VXGE_HAL_CP_RESET_IN_PROGRESS_CP_VPATH(n)	mBIT(n)
	u8	unused01000[0x01000 - 0x00fc8];

/* 0x01000 */	u64	h2l_reset_in_progress;
#define	VXGE_HAL_H2L_RESET_IN_PROGRESS_H2L_VPATH(n)	mBIT(n)
	u8	unused01080[0x01080 - 0x01008];

/* 0x01080 */	u64	xgmac_ready;
#define	VXGE_HAL_XGMAC_READY_XMACJ_READY(val)	vBIT(val, 0, 17)
	u8	unused010c0[0x010c0 - 0x01088];

/* 0x010c0 */	u64	fbif_ready;
#define	VXGE_HAL_FBIF_READY_FAU_READY(val)	vBIT(val, 0, 17)
	u8	unused01100[0x01100 - 0x010c8];

/* 0x01100 */	u64	vplane_assignments;
#define	VXGE_HAL_VPLANE_ASSIGNMENTS_VPLANE_ASSIGNMENTS(val)	vBIT(val, 3, 5)
/* 0x01108 */	u64	vpath_assignments;
#define	VXGE_HAL_VPATH_ASSIGNMENTS_VPATH_ASSIGNMENTS(val)	vBIT(val, 0, 17)
/* 0x01110 */	u64	resource_assignments;
#define	VXGE_HAL_RESOURCE_ASSIGNMENTS_RESOURCE_ASSIGNMENTS(val)	vBIT(val, 0, 17)
/* 0x01118 */	u64	host_type_assignments;
#define	VXGE_HAL_HOST_TYPE_ASSIGNMENTS_HOST_TYPE_ASSIGNMENTS(val)\
								vBIT(val, 5, 3)
/* 0x01120 */	u64	debug_assignments;
#define	VXGE_HAL_DEBUG_ASSIGNMENTS_VHLABEL(val)			vBIT(val, 3, 5)
#define	VXGE_HAL_DEBUG_ASSIGNMENTS_VPLANE(val)			vBIT(val, 11, 5)
#define	VXGE_HAL_DEBUG_ASSIGNMENTS_FUNC(val)			vBIT(val, 19, 5)

/* 0x01128 */	u64	max_resource_assignments;
#define	VXGE_HAL_MAX_RESOURCE_ASSIGNMENTS_PCI_MAX_VPLANE(val)	vBIT(val, 3, 5)
#define	VXGE_HAL_MAX_RESOURCE_ASSIGNMENTS_PCI_MAX_VPATHS(val)	vBIT(val, 11, 5)
/* 0x01130 */	u64	pf_vpath_assignments;
#define	VXGE_HAL_PF_VPATH_ASSIGNMENTS_PF_VPATH_ASSIGNMENTS(val)	vBIT(val, 0, 17)
	u8	unused01200[0x01200 - 0x01138];

/* 0x01200 */	u64	rts_access_icmp;
#define	VXGE_HAL_RTS_ACCESS_ICMP_EN(val)	vBIT(val, 0, 17)
/* 0x01208 */	u64	rts_access_tcpsyn;
#define	VXGE_HAL_RTS_ACCESS_TCPSYN_EN(val)	vBIT(val, 0, 17)
/* 0x01210 */	u64	rts_access_zl4pyld;
#define	VXGE_HAL_RTS_ACCESS_ZL4PYLD_EN(val)	vBIT(val, 0, 17)
/* 0x01218 */	u64	rts_access_l4prtcl_tcp;
#define	VXGE_HAL_RTS_ACCESS_L4PRTCL_TCP_EN(val)	vBIT(val, 0, 17)
/* 0x01220 */	u64	rts_access_l4prtcl_udp;
#define	VXGE_HAL_RTS_ACCESS_L4PRTCL_UDP_EN(val)	vBIT(val, 0, 17)
/* 0x01228 */	u64	rts_access_l4prtcl_flex;
#define	VXGE_HAL_RTS_ACCESS_L4PRTCL_FLEX_EN(val)	vBIT(val, 0, 17)
/* 0x01230 */	u64	rts_access_ipfrag;
#define	VXGE_HAL_RTS_ACCESS_IPFRAG_EN(val)	vBIT(val, 0, 17)

	u8	unused01238[0x01248 - 0x01238];

} vxge_hal_common_reg_t;

__EXTERN_END_DECLS

#endif	/* VXGE_HAL_COMMON_REGS_H */