1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: support@caviumnetworks.com
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (C) 2003-2018 Cavium, Inc.
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT.  See the GNU General Public License for more
17  * details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this file; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22  * or visit http://www.gnu.org/licenses/.
23  *
24  * This file may also be available under a different license from Cavium.
25  * Contact Cavium Networks for more information
26  ***********************license end**************************************/
27 
28 #ifndef __CVMX_ASXX_DEFS_H__
29 #define __CVMX_ASXX_DEFS_H__
30 
31 #define CVMX_ASXX_GMII_RX_CLK_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000180ull))
32 #define CVMX_ASXX_GMII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000188ull))
33 #define CVMX_ASXX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000018ull) + ((block_id) & 1) * 0x8000000ull)
34 #define CVMX_ASXX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000010ull) + ((block_id) & 1) * 0x8000000ull)
35 #define CVMX_ASXX_MII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000190ull))
36 #define CVMX_ASXX_PRT_LOOP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000040ull) + ((block_id) & 1) * 0x8000000ull)
37 #define CVMX_ASXX_RLD_BYPASS(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000248ull) + ((block_id) & 1) * 0x8000000ull)
38 #define CVMX_ASXX_RLD_BYPASS_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000250ull) + ((block_id) & 1) * 0x8000000ull)
39 #define CVMX_ASXX_RLD_COMP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000220ull) + ((block_id) & 1) * 0x8000000ull)
40 #define CVMX_ASXX_RLD_DATA_DRV(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000218ull) + ((block_id) & 1) * 0x8000000ull)
41 #define CVMX_ASXX_RLD_FCRAM_MODE(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000210ull) + ((block_id) & 1) * 0x8000000ull)
42 #define CVMX_ASXX_RLD_NCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000230ull) + ((block_id) & 1) * 0x8000000ull)
43 #define CVMX_ASXX_RLD_NCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000240ull) + ((block_id) & 1) * 0x8000000ull)
44 #define CVMX_ASXX_RLD_PCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000228ull) + ((block_id) & 1) * 0x8000000ull)
45 #define CVMX_ASXX_RLD_PCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000238ull) + ((block_id) & 1) * 0x8000000ull)
46 #define CVMX_ASXX_RLD_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000258ull) + ((block_id) & 1) * 0x8000000ull)
47 #define CVMX_ASXX_RX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000020ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
48 #define CVMX_ASXX_RX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000000ull) + ((block_id) & 1) * 0x8000000ull)
49 #define CVMX_ASXX_RX_WOL(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000100ull) + ((block_id) & 1) * 0x8000000ull)
50 #define CVMX_ASXX_RX_WOL_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000108ull) + ((block_id) & 1) * 0x8000000ull)
51 #define CVMX_ASXX_RX_WOL_POWOK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000118ull) + ((block_id) & 1) * 0x8000000ull)
52 #define CVMX_ASXX_RX_WOL_SIG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000110ull) + ((block_id) & 1) * 0x8000000ull)
53 #define CVMX_ASXX_TX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
54 #define CVMX_ASXX_TX_COMP_BYP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000068ull) + ((block_id) & 1) * 0x8000000ull)
55 #define CVMX_ASXX_TX_HI_WATERX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000080ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
56 #define CVMX_ASXX_TX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000008ull) + ((block_id) & 1) * 0x8000000ull)
57 
58 void __cvmx_interrupt_asxx_enable(int block);
59 
60 union cvmx_asxx_gmii_rx_clk_set {
61 	uint64_t u64;
62 	struct cvmx_asxx_gmii_rx_clk_set_s {
63 #ifdef __BIG_ENDIAN_BITFIELD
64 		uint64_t reserved_5_63:59;
65 		uint64_t setting:5;
66 #else
67 		uint64_t setting:5;
68 		uint64_t reserved_5_63:59;
69 #endif
70 	} s;
71 	struct cvmx_asxx_gmii_rx_clk_set_s cn30xx;
72 	struct cvmx_asxx_gmii_rx_clk_set_s cn31xx;
73 	struct cvmx_asxx_gmii_rx_clk_set_s cn50xx;
74 };
75 
76 union cvmx_asxx_gmii_rx_dat_set {
77 	uint64_t u64;
78 	struct cvmx_asxx_gmii_rx_dat_set_s {
79 #ifdef __BIG_ENDIAN_BITFIELD
80 		uint64_t reserved_5_63:59;
81 		uint64_t setting:5;
82 #else
83 		uint64_t setting:5;
84 		uint64_t reserved_5_63:59;
85 #endif
86 	} s;
87 	struct cvmx_asxx_gmii_rx_dat_set_s cn30xx;
88 	struct cvmx_asxx_gmii_rx_dat_set_s cn31xx;
89 	struct cvmx_asxx_gmii_rx_dat_set_s cn50xx;
90 };
91 
92 union cvmx_asxx_int_en {
93 	uint64_t u64;
94 	struct cvmx_asxx_int_en_s {
95 #ifdef __BIG_ENDIAN_BITFIELD
96 		uint64_t reserved_12_63:52;
97 		uint64_t txpsh:4;
98 		uint64_t txpop:4;
99 		uint64_t ovrflw:4;
100 #else
101 		uint64_t ovrflw:4;
102 		uint64_t txpop:4;
103 		uint64_t txpsh:4;
104 		uint64_t reserved_12_63:52;
105 #endif
106 	} s;
107 	struct cvmx_asxx_int_en_cn30xx {
108 #ifdef __BIG_ENDIAN_BITFIELD
109 		uint64_t reserved_11_63:53;
110 		uint64_t txpsh:3;
111 		uint64_t reserved_7_7:1;
112 		uint64_t txpop:3;
113 		uint64_t reserved_3_3:1;
114 		uint64_t ovrflw:3;
115 #else
116 		uint64_t ovrflw:3;
117 		uint64_t reserved_3_3:1;
118 		uint64_t txpop:3;
119 		uint64_t reserved_7_7:1;
120 		uint64_t txpsh:3;
121 		uint64_t reserved_11_63:53;
122 #endif
123 	} cn30xx;
124 	struct cvmx_asxx_int_en_cn30xx cn31xx;
125 	struct cvmx_asxx_int_en_s cn38xx;
126 	struct cvmx_asxx_int_en_s cn38xxp2;
127 	struct cvmx_asxx_int_en_cn30xx cn50xx;
128 	struct cvmx_asxx_int_en_s cn58xx;
129 	struct cvmx_asxx_int_en_s cn58xxp1;
130 };
131 
132 union cvmx_asxx_int_reg {
133 	uint64_t u64;
134 	struct cvmx_asxx_int_reg_s {
135 #ifdef __BIG_ENDIAN_BITFIELD
136 		uint64_t reserved_12_63:52;
137 		uint64_t txpsh:4;
138 		uint64_t txpop:4;
139 		uint64_t ovrflw:4;
140 #else
141 		uint64_t ovrflw:4;
142 		uint64_t txpop:4;
143 		uint64_t txpsh:4;
144 		uint64_t reserved_12_63:52;
145 #endif
146 	} s;
147 	struct cvmx_asxx_int_reg_cn30xx {
148 #ifdef __BIG_ENDIAN_BITFIELD
149 		uint64_t reserved_11_63:53;
150 		uint64_t txpsh:3;
151 		uint64_t reserved_7_7:1;
152 		uint64_t txpop:3;
153 		uint64_t reserved_3_3:1;
154 		uint64_t ovrflw:3;
155 #else
156 		uint64_t ovrflw:3;
157 		uint64_t reserved_3_3:1;
158 		uint64_t txpop:3;
159 		uint64_t reserved_7_7:1;
160 		uint64_t txpsh:3;
161 		uint64_t reserved_11_63:53;
162 #endif
163 	} cn30xx;
164 	struct cvmx_asxx_int_reg_cn30xx cn31xx;
165 	struct cvmx_asxx_int_reg_s cn38xx;
166 	struct cvmx_asxx_int_reg_s cn38xxp2;
167 	struct cvmx_asxx_int_reg_cn30xx cn50xx;
168 	struct cvmx_asxx_int_reg_s cn58xx;
169 	struct cvmx_asxx_int_reg_s cn58xxp1;
170 };
171 
172 union cvmx_asxx_mii_rx_dat_set {
173 	uint64_t u64;
174 	struct cvmx_asxx_mii_rx_dat_set_s {
175 #ifdef __BIG_ENDIAN_BITFIELD
176 		uint64_t reserved_5_63:59;
177 		uint64_t setting:5;
178 #else
179 		uint64_t setting:5;
180 		uint64_t reserved_5_63:59;
181 #endif
182 	} s;
183 	struct cvmx_asxx_mii_rx_dat_set_s cn30xx;
184 	struct cvmx_asxx_mii_rx_dat_set_s cn50xx;
185 };
186 
187 union cvmx_asxx_prt_loop {
188 	uint64_t u64;
189 	struct cvmx_asxx_prt_loop_s {
190 #ifdef __BIG_ENDIAN_BITFIELD
191 		uint64_t reserved_8_63:56;
192 		uint64_t ext_loop:4;
193 		uint64_t int_loop:4;
194 #else
195 		uint64_t int_loop:4;
196 		uint64_t ext_loop:4;
197 		uint64_t reserved_8_63:56;
198 #endif
199 	} s;
200 	struct cvmx_asxx_prt_loop_cn30xx {
201 #ifdef __BIG_ENDIAN_BITFIELD
202 		uint64_t reserved_7_63:57;
203 		uint64_t ext_loop:3;
204 		uint64_t reserved_3_3:1;
205 		uint64_t int_loop:3;
206 #else
207 		uint64_t int_loop:3;
208 		uint64_t reserved_3_3:1;
209 		uint64_t ext_loop:3;
210 		uint64_t reserved_7_63:57;
211 #endif
212 	} cn30xx;
213 	struct cvmx_asxx_prt_loop_cn30xx cn31xx;
214 	struct cvmx_asxx_prt_loop_s cn38xx;
215 	struct cvmx_asxx_prt_loop_s cn38xxp2;
216 	struct cvmx_asxx_prt_loop_cn30xx cn50xx;
217 	struct cvmx_asxx_prt_loop_s cn58xx;
218 	struct cvmx_asxx_prt_loop_s cn58xxp1;
219 };
220 
221 union cvmx_asxx_rld_bypass {
222 	uint64_t u64;
223 	struct cvmx_asxx_rld_bypass_s {
224 #ifdef __BIG_ENDIAN_BITFIELD
225 		uint64_t reserved_1_63:63;
226 		uint64_t bypass:1;
227 #else
228 		uint64_t bypass:1;
229 		uint64_t reserved_1_63:63;
230 #endif
231 	} s;
232 	struct cvmx_asxx_rld_bypass_s cn38xx;
233 	struct cvmx_asxx_rld_bypass_s cn38xxp2;
234 	struct cvmx_asxx_rld_bypass_s cn58xx;
235 	struct cvmx_asxx_rld_bypass_s cn58xxp1;
236 };
237 
238 union cvmx_asxx_rld_bypass_setting {
239 	uint64_t u64;
240 	struct cvmx_asxx_rld_bypass_setting_s {
241 #ifdef __BIG_ENDIAN_BITFIELD
242 		uint64_t reserved_5_63:59;
243 		uint64_t setting:5;
244 #else
245 		uint64_t setting:5;
246 		uint64_t reserved_5_63:59;
247 #endif
248 	} s;
249 	struct cvmx_asxx_rld_bypass_setting_s cn38xx;
250 	struct cvmx_asxx_rld_bypass_setting_s cn38xxp2;
251 	struct cvmx_asxx_rld_bypass_setting_s cn58xx;
252 	struct cvmx_asxx_rld_bypass_setting_s cn58xxp1;
253 };
254 
255 union cvmx_asxx_rld_comp {
256 	uint64_t u64;
257 	struct cvmx_asxx_rld_comp_s {
258 #ifdef __BIG_ENDIAN_BITFIELD
259 		uint64_t reserved_9_63:55;
260 		uint64_t pctl:5;
261 		uint64_t nctl:4;
262 #else
263 		uint64_t nctl:4;
264 		uint64_t pctl:5;
265 		uint64_t reserved_9_63:55;
266 #endif
267 	} s;
268 	struct cvmx_asxx_rld_comp_cn38xx {
269 #ifdef __BIG_ENDIAN_BITFIELD
270 		uint64_t reserved_8_63:56;
271 		uint64_t pctl:4;
272 		uint64_t nctl:4;
273 #else
274 		uint64_t nctl:4;
275 		uint64_t pctl:4;
276 		uint64_t reserved_8_63:56;
277 #endif
278 	} cn38xx;
279 	struct cvmx_asxx_rld_comp_cn38xx cn38xxp2;
280 	struct cvmx_asxx_rld_comp_s cn58xx;
281 	struct cvmx_asxx_rld_comp_s cn58xxp1;
282 };
283 
284 union cvmx_asxx_rld_data_drv {
285 	uint64_t u64;
286 	struct cvmx_asxx_rld_data_drv_s {
287 #ifdef __BIG_ENDIAN_BITFIELD
288 		uint64_t reserved_8_63:56;
289 		uint64_t pctl:4;
290 		uint64_t nctl:4;
291 #else
292 		uint64_t nctl:4;
293 		uint64_t pctl:4;
294 		uint64_t reserved_8_63:56;
295 #endif
296 	} s;
297 	struct cvmx_asxx_rld_data_drv_s cn38xx;
298 	struct cvmx_asxx_rld_data_drv_s cn38xxp2;
299 	struct cvmx_asxx_rld_data_drv_s cn58xx;
300 	struct cvmx_asxx_rld_data_drv_s cn58xxp1;
301 };
302 
303 union cvmx_asxx_rld_fcram_mode {
304 	uint64_t u64;
305 	struct cvmx_asxx_rld_fcram_mode_s {
306 #ifdef __BIG_ENDIAN_BITFIELD
307 		uint64_t reserved_1_63:63;
308 		uint64_t mode:1;
309 #else
310 		uint64_t mode:1;
311 		uint64_t reserved_1_63:63;
312 #endif
313 	} s;
314 	struct cvmx_asxx_rld_fcram_mode_s cn38xx;
315 	struct cvmx_asxx_rld_fcram_mode_s cn38xxp2;
316 };
317 
318 union cvmx_asxx_rld_nctl_strong {
319 	uint64_t u64;
320 	struct cvmx_asxx_rld_nctl_strong_s {
321 #ifdef __BIG_ENDIAN_BITFIELD
322 		uint64_t reserved_5_63:59;
323 		uint64_t nctl:5;
324 #else
325 		uint64_t nctl:5;
326 		uint64_t reserved_5_63:59;
327 #endif
328 	} s;
329 	struct cvmx_asxx_rld_nctl_strong_s cn38xx;
330 	struct cvmx_asxx_rld_nctl_strong_s cn38xxp2;
331 	struct cvmx_asxx_rld_nctl_strong_s cn58xx;
332 	struct cvmx_asxx_rld_nctl_strong_s cn58xxp1;
333 };
334 
335 union cvmx_asxx_rld_nctl_weak {
336 	uint64_t u64;
337 	struct cvmx_asxx_rld_nctl_weak_s {
338 #ifdef __BIG_ENDIAN_BITFIELD
339 		uint64_t reserved_5_63:59;
340 		uint64_t nctl:5;
341 #else
342 		uint64_t nctl:5;
343 		uint64_t reserved_5_63:59;
344 #endif
345 	} s;
346 	struct cvmx_asxx_rld_nctl_weak_s cn38xx;
347 	struct cvmx_asxx_rld_nctl_weak_s cn38xxp2;
348 	struct cvmx_asxx_rld_nctl_weak_s cn58xx;
349 	struct cvmx_asxx_rld_nctl_weak_s cn58xxp1;
350 };
351 
352 union cvmx_asxx_rld_pctl_strong {
353 	uint64_t u64;
354 	struct cvmx_asxx_rld_pctl_strong_s {
355 #ifdef __BIG_ENDIAN_BITFIELD
356 		uint64_t reserved_5_63:59;
357 		uint64_t pctl:5;
358 #else
359 		uint64_t pctl:5;
360 		uint64_t reserved_5_63:59;
361 #endif
362 	} s;
363 	struct cvmx_asxx_rld_pctl_strong_s cn38xx;
364 	struct cvmx_asxx_rld_pctl_strong_s cn38xxp2;
365 	struct cvmx_asxx_rld_pctl_strong_s cn58xx;
366 	struct cvmx_asxx_rld_pctl_strong_s cn58xxp1;
367 };
368 
369 union cvmx_asxx_rld_pctl_weak {
370 	uint64_t u64;
371 	struct cvmx_asxx_rld_pctl_weak_s {
372 #ifdef __BIG_ENDIAN_BITFIELD
373 		uint64_t reserved_5_63:59;
374 		uint64_t pctl:5;
375 #else
376 		uint64_t pctl:5;
377 		uint64_t reserved_5_63:59;
378 #endif
379 	} s;
380 	struct cvmx_asxx_rld_pctl_weak_s cn38xx;
381 	struct cvmx_asxx_rld_pctl_weak_s cn38xxp2;
382 	struct cvmx_asxx_rld_pctl_weak_s cn58xx;
383 	struct cvmx_asxx_rld_pctl_weak_s cn58xxp1;
384 };
385 
386 union cvmx_asxx_rld_setting {
387 	uint64_t u64;
388 	struct cvmx_asxx_rld_setting_s {
389 #ifdef __BIG_ENDIAN_BITFIELD
390 		uint64_t reserved_13_63:51;
391 		uint64_t dfaset:5;
392 		uint64_t dfalag:1;
393 		uint64_t dfalead:1;
394 		uint64_t dfalock:1;
395 		uint64_t setting:5;
396 #else
397 		uint64_t setting:5;
398 		uint64_t dfalock:1;
399 		uint64_t dfalead:1;
400 		uint64_t dfalag:1;
401 		uint64_t dfaset:5;
402 		uint64_t reserved_13_63:51;
403 #endif
404 	} s;
405 	struct cvmx_asxx_rld_setting_cn38xx {
406 #ifdef __BIG_ENDIAN_BITFIELD
407 		uint64_t reserved_5_63:59;
408 		uint64_t setting:5;
409 #else
410 		uint64_t setting:5;
411 		uint64_t reserved_5_63:59;
412 #endif
413 	} cn38xx;
414 	struct cvmx_asxx_rld_setting_cn38xx cn38xxp2;
415 	struct cvmx_asxx_rld_setting_s cn58xx;
416 	struct cvmx_asxx_rld_setting_s cn58xxp1;
417 };
418 
419 union cvmx_asxx_rx_clk_setx {
420 	uint64_t u64;
421 	struct cvmx_asxx_rx_clk_setx_s {
422 #ifdef __BIG_ENDIAN_BITFIELD
423 		uint64_t reserved_5_63:59;
424 		uint64_t setting:5;
425 #else
426 		uint64_t setting:5;
427 		uint64_t reserved_5_63:59;
428 #endif
429 	} s;
430 	struct cvmx_asxx_rx_clk_setx_s cn30xx;
431 	struct cvmx_asxx_rx_clk_setx_s cn31xx;
432 	struct cvmx_asxx_rx_clk_setx_s cn38xx;
433 	struct cvmx_asxx_rx_clk_setx_s cn38xxp2;
434 	struct cvmx_asxx_rx_clk_setx_s cn50xx;
435 	struct cvmx_asxx_rx_clk_setx_s cn58xx;
436 	struct cvmx_asxx_rx_clk_setx_s cn58xxp1;
437 };
438 
439 union cvmx_asxx_rx_prt_en {
440 	uint64_t u64;
441 	struct cvmx_asxx_rx_prt_en_s {
442 #ifdef __BIG_ENDIAN_BITFIELD
443 		uint64_t reserved_4_63:60;
444 		uint64_t prt_en:4;
445 #else
446 		uint64_t prt_en:4;
447 		uint64_t reserved_4_63:60;
448 #endif
449 	} s;
450 	struct cvmx_asxx_rx_prt_en_cn30xx {
451 #ifdef __BIG_ENDIAN_BITFIELD
452 		uint64_t reserved_3_63:61;
453 		uint64_t prt_en:3;
454 #else
455 		uint64_t prt_en:3;
456 		uint64_t reserved_3_63:61;
457 #endif
458 	} cn30xx;
459 	struct cvmx_asxx_rx_prt_en_cn30xx cn31xx;
460 	struct cvmx_asxx_rx_prt_en_s cn38xx;
461 	struct cvmx_asxx_rx_prt_en_s cn38xxp2;
462 	struct cvmx_asxx_rx_prt_en_cn30xx cn50xx;
463 	struct cvmx_asxx_rx_prt_en_s cn58xx;
464 	struct cvmx_asxx_rx_prt_en_s cn58xxp1;
465 };
466 
467 union cvmx_asxx_rx_wol {
468 	uint64_t u64;
469 	struct cvmx_asxx_rx_wol_s {
470 #ifdef __BIG_ENDIAN_BITFIELD
471 		uint64_t reserved_2_63:62;
472 		uint64_t status:1;
473 		uint64_t enable:1;
474 #else
475 		uint64_t enable:1;
476 		uint64_t status:1;
477 		uint64_t reserved_2_63:62;
478 #endif
479 	} s;
480 	struct cvmx_asxx_rx_wol_s cn38xx;
481 	struct cvmx_asxx_rx_wol_s cn38xxp2;
482 };
483 
484 union cvmx_asxx_rx_wol_msk {
485 	uint64_t u64;
486 	struct cvmx_asxx_rx_wol_msk_s {
487 #ifdef __BIG_ENDIAN_BITFIELD
488 		uint64_t msk:64;
489 #else
490 		uint64_t msk:64;
491 #endif
492 	} s;
493 	struct cvmx_asxx_rx_wol_msk_s cn38xx;
494 	struct cvmx_asxx_rx_wol_msk_s cn38xxp2;
495 };
496 
497 union cvmx_asxx_rx_wol_powok {
498 	uint64_t u64;
499 	struct cvmx_asxx_rx_wol_powok_s {
500 #ifdef __BIG_ENDIAN_BITFIELD
501 		uint64_t reserved_1_63:63;
502 		uint64_t powerok:1;
503 #else
504 		uint64_t powerok:1;
505 		uint64_t reserved_1_63:63;
506 #endif
507 	} s;
508 	struct cvmx_asxx_rx_wol_powok_s cn38xx;
509 	struct cvmx_asxx_rx_wol_powok_s cn38xxp2;
510 };
511 
512 union cvmx_asxx_rx_wol_sig {
513 	uint64_t u64;
514 	struct cvmx_asxx_rx_wol_sig_s {
515 #ifdef __BIG_ENDIAN_BITFIELD
516 		uint64_t reserved_32_63:32;
517 		uint64_t sig:32;
518 #else
519 		uint64_t sig:32;
520 		uint64_t reserved_32_63:32;
521 #endif
522 	} s;
523 	struct cvmx_asxx_rx_wol_sig_s cn38xx;
524 	struct cvmx_asxx_rx_wol_sig_s cn38xxp2;
525 };
526 
527 union cvmx_asxx_tx_clk_setx {
528 	uint64_t u64;
529 	struct cvmx_asxx_tx_clk_setx_s {
530 #ifdef __BIG_ENDIAN_BITFIELD
531 		uint64_t reserved_5_63:59;
532 		uint64_t setting:5;
533 #else
534 		uint64_t setting:5;
535 		uint64_t reserved_5_63:59;
536 #endif
537 	} s;
538 	struct cvmx_asxx_tx_clk_setx_s cn30xx;
539 	struct cvmx_asxx_tx_clk_setx_s cn31xx;
540 	struct cvmx_asxx_tx_clk_setx_s cn38xx;
541 	struct cvmx_asxx_tx_clk_setx_s cn38xxp2;
542 	struct cvmx_asxx_tx_clk_setx_s cn50xx;
543 	struct cvmx_asxx_tx_clk_setx_s cn58xx;
544 	struct cvmx_asxx_tx_clk_setx_s cn58xxp1;
545 };
546 
547 union cvmx_asxx_tx_comp_byp {
548 	uint64_t u64;
549 	struct cvmx_asxx_tx_comp_byp_s {
550 #ifdef __BIG_ENDIAN_BITFIELD
551 		uint64_t reserved_0_63:64;
552 #else
553 		uint64_t reserved_0_63:64;
554 #endif
555 	} s;
556 	struct cvmx_asxx_tx_comp_byp_cn30xx {
557 #ifdef __BIG_ENDIAN_BITFIELD
558 		uint64_t reserved_9_63:55;
559 		uint64_t bypass:1;
560 		uint64_t pctl:4;
561 		uint64_t nctl:4;
562 #else
563 		uint64_t nctl:4;
564 		uint64_t pctl:4;
565 		uint64_t bypass:1;
566 		uint64_t reserved_9_63:55;
567 #endif
568 	} cn30xx;
569 	struct cvmx_asxx_tx_comp_byp_cn30xx cn31xx;
570 	struct cvmx_asxx_tx_comp_byp_cn38xx {
571 #ifdef __BIG_ENDIAN_BITFIELD
572 		uint64_t reserved_8_63:56;
573 		uint64_t pctl:4;
574 		uint64_t nctl:4;
575 #else
576 		uint64_t nctl:4;
577 		uint64_t pctl:4;
578 		uint64_t reserved_8_63:56;
579 #endif
580 	} cn38xx;
581 	struct cvmx_asxx_tx_comp_byp_cn38xx cn38xxp2;
582 	struct cvmx_asxx_tx_comp_byp_cn50xx {
583 #ifdef __BIG_ENDIAN_BITFIELD
584 		uint64_t reserved_17_63:47;
585 		uint64_t bypass:1;
586 		uint64_t reserved_13_15:3;
587 		uint64_t pctl:5;
588 		uint64_t reserved_5_7:3;
589 		uint64_t nctl:5;
590 #else
591 		uint64_t nctl:5;
592 		uint64_t reserved_5_7:3;
593 		uint64_t pctl:5;
594 		uint64_t reserved_13_15:3;
595 		uint64_t bypass:1;
596 		uint64_t reserved_17_63:47;
597 #endif
598 	} cn50xx;
599 	struct cvmx_asxx_tx_comp_byp_cn58xx {
600 #ifdef __BIG_ENDIAN_BITFIELD
601 		uint64_t reserved_13_63:51;
602 		uint64_t pctl:5;
603 		uint64_t reserved_5_7:3;
604 		uint64_t nctl:5;
605 #else
606 		uint64_t nctl:5;
607 		uint64_t reserved_5_7:3;
608 		uint64_t pctl:5;
609 		uint64_t reserved_13_63:51;
610 #endif
611 	} cn58xx;
612 	struct cvmx_asxx_tx_comp_byp_cn58xx cn58xxp1;
613 };
614 
615 union cvmx_asxx_tx_hi_waterx {
616 	uint64_t u64;
617 	struct cvmx_asxx_tx_hi_waterx_s {
618 #ifdef __BIG_ENDIAN_BITFIELD
619 		uint64_t reserved_4_63:60;
620 		uint64_t mark:4;
621 #else
622 		uint64_t mark:4;
623 		uint64_t reserved_4_63:60;
624 #endif
625 	} s;
626 	struct cvmx_asxx_tx_hi_waterx_cn30xx {
627 #ifdef __BIG_ENDIAN_BITFIELD
628 		uint64_t reserved_3_63:61;
629 		uint64_t mark:3;
630 #else
631 		uint64_t mark:3;
632 		uint64_t reserved_3_63:61;
633 #endif
634 	} cn30xx;
635 	struct cvmx_asxx_tx_hi_waterx_cn30xx cn31xx;
636 	struct cvmx_asxx_tx_hi_waterx_s cn38xx;
637 	struct cvmx_asxx_tx_hi_waterx_s cn38xxp2;
638 	struct cvmx_asxx_tx_hi_waterx_cn30xx cn50xx;
639 	struct cvmx_asxx_tx_hi_waterx_s cn58xx;
640 	struct cvmx_asxx_tx_hi_waterx_s cn58xxp1;
641 };
642 
643 union cvmx_asxx_tx_prt_en {
644 	uint64_t u64;
645 	struct cvmx_asxx_tx_prt_en_s {
646 #ifdef __BIG_ENDIAN_BITFIELD
647 		uint64_t reserved_4_63:60;
648 		uint64_t prt_en:4;
649 #else
650 		uint64_t prt_en:4;
651 		uint64_t reserved_4_63:60;
652 #endif
653 	} s;
654 	struct cvmx_asxx_tx_prt_en_cn30xx {
655 #ifdef __BIG_ENDIAN_BITFIELD
656 		uint64_t reserved_3_63:61;
657 		uint64_t prt_en:3;
658 #else
659 		uint64_t prt_en:3;
660 		uint64_t reserved_3_63:61;
661 #endif
662 	} cn30xx;
663 	struct cvmx_asxx_tx_prt_en_cn30xx cn31xx;
664 	struct cvmx_asxx_tx_prt_en_s cn38xx;
665 	struct cvmx_asxx_tx_prt_en_s cn38xxp2;
666 	struct cvmx_asxx_tx_prt_en_cn30xx cn50xx;
667 	struct cvmx_asxx_tx_prt_en_s cn58xx;
668 	struct cvmx_asxx_tx_prt_en_s cn58xxp1;
669 };
670 
671 #endif
672