xref: /NextBSD/sys/dev/vxge/vxgehal/vxgehal-vpmgmt-reg.h (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /*-
2  * Copyright(c) 2002-2011 Exar Corp.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification are permitted provided the following conditions are met:
7  *
8  *    1. Redistributions of source code must retain the above copyright notice,
9  *       this list of conditions and the following disclaimer.
10  *
11  *    2. Redistributions in binary form must reproduce the above copyright
12  *       notice, this list of conditions and the following disclaimer in the
13  *       documentation and/or other materials provided with the distribution.
14  *
15  *    3. Neither the name of the Exar Corporation nor the names of its
16  *       contributors may be used to endorse or promote products derived from
17  *       this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 /*$FreeBSD$*/
32 
33 #ifndef	VXGE_HAL_VPMGMT_REGS_H
34 #define	VXGE_HAL_VPMGMT_REGS_H
35 
36 __EXTERN_BEGIN_DECLS
37 
38 typedef struct vxge_hal_vpmgmt_reg_t {
39 
40 /* 0x00000 */	u64	one_cfg_sr_rdy;
41 #define	VXGE_HAL_ONE_CFG_SR_RDY_ONE_CFG_SR_RDY		    mBIT(7)
42 /* 0x00008 */	u64	sgrp_own;
43 #define	VXGE_HAL_SGRP_OWN_SGRP_OWN(val)			    vBIT(val, 0, 64)
44 	u8	unused00040[0x00040 - 0x00010];
45 
46 /* 0x00040 */	u64	vpath_to_func_map_cfg1;
47 #define	VXGE_HAL_VPATH_TO_FUNC_MAP_CFG1_VPATH_TO_FUNC_MAP_CFG1(val)\
48 							    vBIT(val, 3, 5)
49 /* 0x00048 */	u64	vpath_is_first;
50 #define	VXGE_HAL_VPATH_IS_FIRST_VPATH_IS_FIRST		    mBIT(3)
51 /* 0x00050 */	u64	srpcim_to_vpath_wmsg;
52 #define	VXGE_HAL_SRPCIM_TO_VPATH_WMSG_SRPCIM_TO_VPATH_WMSG(val)\
53 							    vBIT(val, 0, 64)
54 /* 0x00058 */	u64	srpcim_to_vpath_wmsg_trig;
55 #define	VXGE_HAL_SRPCIM_TO_VPATH_WMSG_TRIG_TRIG		    mBIT(0)
56 	u8	unused00100[0x00100 - 0x00060];
57 
58 /* 0x00100 */	u64	tim_vpath_assignment;
59 #define	VXGE_HAL_TIM_VPATH_ASSIGNMENT_BMAP_ROOT(val)	    vBIT(val, 0, 32)
60 	u8	unused00140[0x00140 - 0x00108];
61 
62 /* 0x00140 */	u64	rqa_top_prty_for_vp;
63 #define	VXGE_HAL_RQA_TOP_PRTY_FOR_VP_RQA_TOP_PRTY_FOR_VP(val) vBIT(val, 59, 5)
64 	u8	unused00180[0x00180 - 0x00148];
65 
66 /* 0x00180 */	u64	usdc_vpath_own;
67 #define	VXGE_HAL_USDC_VPATH_OWN_SGRP_OWN(val)		    vBIT(val, 0, 32)
68 	u8	unused001c0[0x001c0 - 0x00188];
69 
70 /* 0x001c0 */	u64	rxmac_rx_pa_cfg0_vpmgmt_clone;
71 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_IGNORE_FRAME_ERR	mBIT(3)
72 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_SUPPORT_SNAP_AB_N mBIT(7)
73 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_SEARCH_FOR_HAO mBIT(18)
74 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_SUPPORT_MOBILE_IPV6_HDRS\
75 							    mBIT(19)
76 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_IPV6_STOP_SEARCHING mBIT(23)
77 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_NO_PS_IF_UNKNOWN	mBIT(27)
78 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_SEARCH_FOR_ETYPE	mBIT(35)
79 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_ANY_FRM_IF_L3_CSUM_ERR\
80 							    mBIT(39)
81 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_OFFLD_FRM_IF_L3_CSUM_ERR\
82 							    mBIT(43)
83 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_ANY_FRM_IF_L4_CSUM_ERR\
84 							    mBIT(47)
85 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_OFFLD_FRM_IF_L4_CSUM_ERR\
86 							    mBIT(51)
87 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_ANY_FRM_IF_RPA_ERR\
88 							    mBIT(55)
89 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_TOSS_OFFLD_FRM_IF_RPA_ERR\
90 							    mBIT(59)
91 #define	VXGE_HAL_RXMAC_RX_PA_CFG0_VPMGMT_CLONE_JUMBO_SNAP_EN mBIT(63)
92 /* 0x001c8 */	u64	rts_mgr_cfg0_vpmgmt_clone;
93 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_RTS_DP_SP_PRIORITY mBIT(3)
94 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_FLEX_L4PRTCL_VALUE(val)\
95 							    vBIT(val, 24, 8)
96 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_ICMP_TRASH	    mBIT(35)
97 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_TCPSYN_TRASH	    mBIT(39)
98 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_ZL4PYLD_TRASH    mBIT(43)
99 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_L4PRTCL_TCP_TRASH mBIT(47)
100 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_L4PRTCL_UDP_TRASH mBIT(51)
101 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_L4PRTCL_FLEX_TRASH mBIT(55)
102 #define	VXGE_HAL_RTS_MGR_CFG0_VPMGMT_CLONE_IPFRAG_TRASH	    mBIT(59)
103 /* 0x001d0 */	u64	rts_mgr_criteria_priority_vpmgmt_clone;
104 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_ETYPE(val)\
105 							    vBIT(val, 5, 3)
106 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_ICMP_TCPSYN(val)\
107 							    vBIT(val, 9, 3)
108 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_L4PN(val)\
109 							    vBIT(val, 13, 3)
110 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_RANGE_L4PN(val)\
111 							    vBIT(val, 17, 3)
112 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_RTH_IT(val)\
113 							    vBIT(val, 21, 3)
114 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_DS(val)\
115 							    vBIT(val, 25, 3)
116 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_QOS(val)\
117 							    vBIT(val, 29, 3)
118 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_ZL4PYLD(val)\
119 							    vBIT(val, 33, 3)
120 #define	VXGE_HAL_RTS_MGR_CRITERIA_PRIORITY_VPMGMT_CLONE_L4PRTCL(val)\
121 							    vBIT(val, 37, 3)
122 /* 0x001d8 */	u64	rxmac_cfg0_port_vpmgmt_clone[3];
123 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_RMAC_EN	    mBIT(3)
124 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_STRIP_FCS	    mBIT(7)
125 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_DISCARD_PFRM  mBIT(11)
126 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_IGNORE_FCS_ERR mBIT(15)
127 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_IGNORE_LONG_ERR mBIT(19)
128 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_IGNORE_USIZED_ERR	mBIT(23)
129 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_IGNORE_LEN_MISMATCH mBIT(27)
130 #define	VXGE_HAL_RXMAC_CFG0_PORT_VPMGMT_CLONE_MAX_PYLD_LEN(val)\
131 							    vBIT(val, 50, 14)
132 /* 0x001f0 */	u64	rxmac_pause_cfg_port_vpmgmt_clone[3];
133 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_GEN_EN   mBIT(3)
134 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_RCV_EN   mBIT(7)
135 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_ACCEL_SEND(val)\
136 							    vBIT(val, 9, 3)
137 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_DUAL_THR mBIT(15)
138 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_HIGH_PTIME(val)\
139 							    vBIT(val, 20, 16)
140 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_IGNORE_PF_FCS_ERR mBIT(39)
141 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_IGNORE_PF_LEN_ERR mBIT(43)
142 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_LIMITER_EN mBIT(47)
143 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_MAX_LIMIT(val)\
144 							    vBIT(val, 48, 8)
145 #define	VXGE_HAL_RXMAC_PAUSE_CFG_PORT_VPMGMT_CLONE_PERMIT_RATEMGMT_CTRL	mBIT(59)
146 	u8	unused00240[0x00240 - 0x00208];
147 
148 /* 0x00240 */	u64	xmac_vsport_choices_vp;
149 #define	VXGE_HAL_XMAC_VSPORT_CHOICES_VP_VSPORT_VECTOR(val)  vBIT(val, 0, 17)
150 	u8	unused00260[0x00260 - 0x00248];
151 
152 /* 0x00260 */	u64	xgmac_gen_status_vpmgmt_clone;
153 #define	VXGE_HAL_XGMAC_GEN_STATUS_VPMGMT_CLONE_XMACJ_NTWK_OK mBIT(3)
154 #define	VXGE_HAL_XGMAC_GEN_STATUS_VPMGMT_CLONE_XMACJ_NTWK_DATA_RATE mBIT(11)
155 /* 0x00268 */	u64	xgmac_status_port_vpmgmt_clone[2];
156 #define	VXGE_HAL_XGMAC_STATUS_PORT_VPMGMT_CLONE_RMAC_REMOTE_FAULT mBIT(3)
157 #define	VXGE_HAL_XGMAC_STATUS_PORT_VPMGMT_CLONE_RMAC_LOCAL_FAULT mBIT(7)
158 #define	VXGE_HAL_XGMAC_STATUS_PORT_VPMGMT_CLONE_XMACJ_MAC_PHY_LAYER_AVAIL\
159 							    mBIT(11)
160 #define	VXGE_HAL_XGMAC_STATUS_PORT_VPMGMT_CLONE_XMACJ_PORT_OK mBIT(15)
161 /* 0x00278 */	u64	xmac_gen_cfg_vpmgmt_clone;
162 #define	VXGE_HAL_XMAC_GEN_CFG_VPMGMT_CLONE_RATEMGMT_MAC_RATE_SEL(val)\
163 							    vBIT(val, 2, 2)
164 #define	VXGE_HAL_XMAC_GEN_CFG_VPMGMT_CLONE_TX_HEAD_DROP_WHEN_FAULT\
165 							    mBIT(7)
166 #define	VXGE_HAL_XMAC_GEN_CFG_VPMGMT_CLONE_FAULT_BEHAVIOUR\
167 							    mBIT(27)
168 #define	VXGE_HAL_XMAC_GEN_CFG_VPMGMT_CLONE_PERIOD_NTWK_UP(val)\
169 							    vBIT(val, 28, 4)
170 #define	VXGE_HAL_XMAC_GEN_CFG_VPMGMT_CLONE_PERIOD_NTWK_DOWN(val)\
171 							    vBIT(val, 32, 4)
172 /* 0x00280 */	u64	xmac_timestamp_vpmgmt_clone;
173 #define	VXGE_HAL_XMAC_TIMESTAMP_VPMGMT_CLONE_EN	mBIT(3)
174 #define	VXGE_HAL_XMAC_TIMESTAMP_VPMGMT_CLONE_USE_LINK_ID(val)\
175 							    vBIT(val, 6, 2)
176 #define	VXGE_HAL_XMAC_TIMESTAMP_VPMGMT_CLONE_INTERVAL(val)\
177 							    vBIT(val, 12, 4)
178 #define	VXGE_HAL_XMAC_TIMESTAMP_VPMGMT_CLONE_TIMER_RESTART\
179 							    mBIT(19)
180 #define	VXGE_HAL_XMAC_TIMESTAMP_VPMGMT_CLONE_XMACJ_ROLLOVER_CNT(val)\
181 							    vBIT(val, 32, 16)
182 /* 0x00288 */	u64	xmac_stats_gen_cfg_vpmgmt_clone;
183 #define	VXGE_HAL_XMAC_STATS_GEN_CFG_VPMGMT_CLONE_PRTAGGR_CUM_TIMER(val)\
184 							    vBIT(val, 4, 4)
185 #define	VXGE_HAL_XMAC_STATS_GEN_CFG_VPMGMT_CLONE_VPATH_CUM_TIMER(val)\
186 							    vBIT(val, 8, 4)
187 #define	VXGE_HAL_XMAC_STATS_GEN_CFG_VPMGMT_CLONE_VLAN_HANDLING\
188 							    mBIT(15)
189 /* 0x00290 */	u64	xmac_cfg_port_vpmgmt_clone[3];
190 #define	VXGE_HAL_XMAC_CFG_PORT_VPMGMT_CLONE_XGMII_LOOPBACK\
191 							    mBIT(3)
192 #define	VXGE_HAL_XMAC_CFG_PORT_VPMGMT_CLONE_XGMII_REVERSE_LOOPBACK\
193 							    mBIT(7)
194 #define	VXGE_HAL_XMAC_CFG_PORT_VPMGMT_CLONE_XGMII_TX_BEHAV\
195 							    mBIT(11)
196 #define	VXGE_HAL_XMAC_CFG_PORT_VPMGMT_CLONE_XGMII_RX_BEHAV\
197 							    mBIT(15)
198 	u8	unused002c0[0x002c0 - 0x002a8];
199 
200 /* 0x002c0 */	u64	txmac_gen_cfg0_vpmgmt_clone;
201 #define	VXGE_HAL_TXMAC_GEN_CFG0_VPMGMT_CLONE_CHOSEN_TX_PORT\
202 							    mBIT(7)
203 /* 0x002c8 */	u64	txmac_cfg0_port_vpmgmt_clone[3];
204 #define	VXGE_HAL_TXMAC_CFG0_PORT_VPMGMT_CLONE_TMAC_EN\
205 							    mBIT(3)
206 #define	VXGE_HAL_TXMAC_CFG0_PORT_VPMGMT_CLONE_APPEND_PAD\
207 							    mBIT(7)
208 #define	VXGE_HAL_TXMAC_CFG0_PORT_VPMGMT_CLONE_PAD_BYTE(val) vBIT(val, 8, 8)
209 	u8	unused00300[0x00300 - 0x002e0];
210 
211 /* 0x00300 */	u64	wol_mp_crc;
212 #define	VXGE_HAL_WOL_MP_CRC_CRC(val)			    vBIT(val, 0, 32)
213 #define	VXGE_HAL_WOL_MP_CRC_RC_EN			    mBIT(63)
214 /* 0x00308 */	u64	wol_mp_mask_a;
215 #define	VXGE_HAL_WOL_MP_MASK_A_MASK(val)		    vBIT(val, 0, 64)
216 /* 0x00310 */	u64	wol_mp_mask_b;
217 #define	VXGE_HAL_WOL_MP_MASK_B_MASK(val)		    vBIT(val, 0, 64)
218 	u8	unused00360[0x00360 - 0x00318];
219 
220 /* 0x00360 */	u64	fau_pa_cfg_vpmgmt_clone;
221 #define	VXGE_HAL_FAU_PA_CFG_VPMGMT_CLONE_REPL_L4_COMP_CSUM  mBIT(3)
222 #define	VXGE_HAL_FAU_PA_CFG_VPMGMT_CLONE_REPL_L3_INCL_CF    mBIT(7)
223 #define	VXGE_HAL_FAU_PA_CFG_VPMGMT_CLONE_REPL_L3_COMP_CSUM  mBIT(11)
224 /* 0x00368 */	u64	rx_datapath_util_vp_clone;
225 #define	VXGE_HAL_RX_DATAPATH_UTIL_VP_CLONE_FAU_RX_UTILIZATION(val)\
226 							    vBIT(val, 7, 9)
227 #define	VXGE_HAL_RX_DATAPATH_UTIL_VP_CLONE_RX_UTIL_CFG(val) vBIT(val, 16, 4)
228 #define	VXGE_HAL_RX_DATAPATH_UTIL_VP_CLONE_FAU_RX_FRAC_UTIL(val)\
229 							    vBIT(val, 20, 4)
230 #define	VXGE_HAL_RX_DATAPATH_UTIL_VP_CLONE_RX_PKT_WEIGHT(val)\
231 							    vBIT(val, 24, 4)
232 	u8	unused00380[0x00380 - 0x00370];
233 
234 /* 0x00380 */	u64	tx_datapath_util_vp_clone;
235 #define	VXGE_HAL_TX_DATAPATH_UTIL_VP_CLONE_TPA_TX_UTILIZATION(val)\
236 							    vBIT(val, 7, 9)
237 #define	VXGE_HAL_TX_DATAPATH_UTIL_VP_CLONE_TX_UTIL_CFG(val) vBIT(val, 16, 4)
238 #define	VXGE_HAL_TX_DATAPATH_UTIL_VP_CLONE_TPA_TX_FRAC_UTIL(val)\
239 							    vBIT(val, 20, 4)
240 #define	VXGE_HAL_TX_DATAPATH_UTIL_VP_CLONE_TX_PKT_WEIGHT(val) vBIT(val, 24, 4)
241 
242 } vxge_hal_vpmgmt_reg_t;
243 
244 __EXTERN_END_DECLS
245 
246 #endif	/* VXGE_HAL_VPMGMT_REGS_H */
247