Merge tag 'irqchip-4.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm...
[sfrench/cifs-2.6.git] / arch / mips / include / asm / octeon / cvmx-asxx-defs.h
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