xref: /openbmc/linux/arch/mips/include/asm/octeon/cvmx-pko-defs.h (revision 597473720f4dc69749542bfcfed4a927a43d935e)
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-2012 Cavium Networks
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_PKO_DEFS_H__
29  #define __CVMX_PKO_DEFS_H__
30  
31  #define CVMX_PKO_MEM_COUNT0 (CVMX_ADD_IO_SEG(0x0001180050001080ull))
32  #define CVMX_PKO_MEM_COUNT1 (CVMX_ADD_IO_SEG(0x0001180050001088ull))
33  #define CVMX_PKO_MEM_DEBUG0 (CVMX_ADD_IO_SEG(0x0001180050001100ull))
34  #define CVMX_PKO_MEM_DEBUG1 (CVMX_ADD_IO_SEG(0x0001180050001108ull))
35  #define CVMX_PKO_MEM_DEBUG10 (CVMX_ADD_IO_SEG(0x0001180050001150ull))
36  #define CVMX_PKO_MEM_DEBUG11 (CVMX_ADD_IO_SEG(0x0001180050001158ull))
37  #define CVMX_PKO_MEM_DEBUG12 (CVMX_ADD_IO_SEG(0x0001180050001160ull))
38  #define CVMX_PKO_MEM_DEBUG13 (CVMX_ADD_IO_SEG(0x0001180050001168ull))
39  #define CVMX_PKO_MEM_DEBUG14 (CVMX_ADD_IO_SEG(0x0001180050001170ull))
40  #define CVMX_PKO_MEM_DEBUG2 (CVMX_ADD_IO_SEG(0x0001180050001110ull))
41  #define CVMX_PKO_MEM_DEBUG3 (CVMX_ADD_IO_SEG(0x0001180050001118ull))
42  #define CVMX_PKO_MEM_DEBUG4 (CVMX_ADD_IO_SEG(0x0001180050001120ull))
43  #define CVMX_PKO_MEM_DEBUG5 (CVMX_ADD_IO_SEG(0x0001180050001128ull))
44  #define CVMX_PKO_MEM_DEBUG6 (CVMX_ADD_IO_SEG(0x0001180050001130ull))
45  #define CVMX_PKO_MEM_DEBUG7 (CVMX_ADD_IO_SEG(0x0001180050001138ull))
46  #define CVMX_PKO_MEM_DEBUG8 (CVMX_ADD_IO_SEG(0x0001180050001140ull))
47  #define CVMX_PKO_MEM_DEBUG9 (CVMX_ADD_IO_SEG(0x0001180050001148ull))
48  #define CVMX_PKO_MEM_IPORT_PTRS (CVMX_ADD_IO_SEG(0x0001180050001030ull))
49  #define CVMX_PKO_MEM_IPORT_QOS (CVMX_ADD_IO_SEG(0x0001180050001038ull))
50  #define CVMX_PKO_MEM_IQUEUE_PTRS (CVMX_ADD_IO_SEG(0x0001180050001040ull))
51  #define CVMX_PKO_MEM_IQUEUE_QOS (CVMX_ADD_IO_SEG(0x0001180050001048ull))
52  #define CVMX_PKO_MEM_PORT_PTRS (CVMX_ADD_IO_SEG(0x0001180050001010ull))
53  #define CVMX_PKO_MEM_PORT_QOS (CVMX_ADD_IO_SEG(0x0001180050001018ull))
54  #define CVMX_PKO_MEM_PORT_RATE0 (CVMX_ADD_IO_SEG(0x0001180050001020ull))
55  #define CVMX_PKO_MEM_PORT_RATE1 (CVMX_ADD_IO_SEG(0x0001180050001028ull))
56  #define CVMX_PKO_MEM_QUEUE_PTRS (CVMX_ADD_IO_SEG(0x0001180050001000ull))
57  #define CVMX_PKO_MEM_QUEUE_QOS (CVMX_ADD_IO_SEG(0x0001180050001008ull))
58  #define CVMX_PKO_MEM_THROTTLE_INT (CVMX_ADD_IO_SEG(0x0001180050001058ull))
59  #define CVMX_PKO_MEM_THROTTLE_PIPE (CVMX_ADD_IO_SEG(0x0001180050001050ull))
60  #define CVMX_PKO_REG_BIST_RESULT (CVMX_ADD_IO_SEG(0x0001180050000080ull))
61  #define CVMX_PKO_REG_CMD_BUF (CVMX_ADD_IO_SEG(0x0001180050000010ull))
62  #define CVMX_PKO_REG_CRC_CTLX(offset) (CVMX_ADD_IO_SEG(0x0001180050000028ull) + ((offset) & 1) * 8)
63  #define CVMX_PKO_REG_CRC_ENABLE (CVMX_ADD_IO_SEG(0x0001180050000020ull))
64  #define CVMX_PKO_REG_CRC_IVX(offset) (CVMX_ADD_IO_SEG(0x0001180050000038ull) + ((offset) & 1) * 8)
65  #define CVMX_PKO_REG_DEBUG0 (CVMX_ADD_IO_SEG(0x0001180050000098ull))
66  #define CVMX_PKO_REG_DEBUG1 (CVMX_ADD_IO_SEG(0x00011800500000A0ull))
67  #define CVMX_PKO_REG_DEBUG2 (CVMX_ADD_IO_SEG(0x00011800500000A8ull))
68  #define CVMX_PKO_REG_DEBUG3 (CVMX_ADD_IO_SEG(0x00011800500000B0ull))
69  #define CVMX_PKO_REG_DEBUG4 (CVMX_ADD_IO_SEG(0x00011800500000B8ull))
70  #define CVMX_PKO_REG_ENGINE_INFLIGHT (CVMX_ADD_IO_SEG(0x0001180050000050ull))
71  #define CVMX_PKO_REG_ENGINE_INFLIGHT1 (CVMX_ADD_IO_SEG(0x0001180050000318ull))
72  #define CVMX_PKO_REG_ENGINE_STORAGEX(offset) (CVMX_ADD_IO_SEG(0x0001180050000300ull) + ((offset) & 1) * 8)
73  #define CVMX_PKO_REG_ENGINE_THRESH (CVMX_ADD_IO_SEG(0x0001180050000058ull))
74  #define CVMX_PKO_REG_ERROR (CVMX_ADD_IO_SEG(0x0001180050000088ull))
75  #define CVMX_PKO_REG_FLAGS (CVMX_ADD_IO_SEG(0x0001180050000000ull))
76  #define CVMX_PKO_REG_GMX_PORT_MODE (CVMX_ADD_IO_SEG(0x0001180050000018ull))
77  #define CVMX_PKO_REG_INT_MASK (CVMX_ADD_IO_SEG(0x0001180050000090ull))
78  #define CVMX_PKO_REG_LOOPBACK_BPID (CVMX_ADD_IO_SEG(0x0001180050000118ull))
79  #define CVMX_PKO_REG_LOOPBACK_PKIND (CVMX_ADD_IO_SEG(0x0001180050000068ull))
80  #define CVMX_PKO_REG_MIN_PKT (CVMX_ADD_IO_SEG(0x0001180050000070ull))
81  #define CVMX_PKO_REG_PREEMPT (CVMX_ADD_IO_SEG(0x0001180050000110ull))
82  #define CVMX_PKO_REG_QUEUE_MODE (CVMX_ADD_IO_SEG(0x0001180050000048ull))
83  #define CVMX_PKO_REG_QUEUE_PREEMPT (CVMX_ADD_IO_SEG(0x0001180050000108ull))
84  #define CVMX_PKO_REG_QUEUE_PTRS1 (CVMX_ADD_IO_SEG(0x0001180050000100ull))
85  #define CVMX_PKO_REG_READ_IDX (CVMX_ADD_IO_SEG(0x0001180050000008ull))
86  #define CVMX_PKO_REG_THROTTLE (CVMX_ADD_IO_SEG(0x0001180050000078ull))
87  #define CVMX_PKO_REG_TIMESTAMP (CVMX_ADD_IO_SEG(0x0001180050000060ull))
88  
89  union cvmx_pko_mem_count0 {
90  	uint64_t u64;
91  	struct cvmx_pko_mem_count0_s {
92  #ifdef __BIG_ENDIAN_BITFIELD
93  		uint64_t reserved_32_63:32;
94  		uint64_t count:32;
95  #else
96  		uint64_t count:32;
97  		uint64_t reserved_32_63:32;
98  #endif
99  	} s;
100  };
101  
102  union cvmx_pko_mem_count1 {
103  	uint64_t u64;
104  	struct cvmx_pko_mem_count1_s {
105  #ifdef __BIG_ENDIAN_BITFIELD
106  		uint64_t reserved_48_63:16;
107  		uint64_t count:48;
108  #else
109  		uint64_t count:48;
110  		uint64_t reserved_48_63:16;
111  #endif
112  	} s;
113  };
114  
115  union cvmx_pko_mem_debug0 {
116  	uint64_t u64;
117  	struct cvmx_pko_mem_debug0_s {
118  #ifdef __BIG_ENDIAN_BITFIELD
119  		uint64_t fau:28;
120  		uint64_t cmd:14;
121  		uint64_t segs:6;
122  		uint64_t size:16;
123  #else
124  		uint64_t size:16;
125  		uint64_t segs:6;
126  		uint64_t cmd:14;
127  		uint64_t fau:28;
128  #endif
129  	} s;
130  };
131  
132  union cvmx_pko_mem_debug1 {
133  	uint64_t u64;
134  	struct cvmx_pko_mem_debug1_s {
135  #ifdef __BIG_ENDIAN_BITFIELD
136  		uint64_t i:1;
137  		uint64_t back:4;
138  		uint64_t pool:3;
139  		uint64_t size:16;
140  		uint64_t ptr:40;
141  #else
142  		uint64_t ptr:40;
143  		uint64_t size:16;
144  		uint64_t pool:3;
145  		uint64_t back:4;
146  		uint64_t i:1;
147  #endif
148  	} s;
149  };
150  
151  union cvmx_pko_mem_debug10 {
152  	uint64_t u64;
153  	struct cvmx_pko_mem_debug10_s {
154  #ifdef __BIG_ENDIAN_BITFIELD
155  		uint64_t reserved_0_63:64;
156  #else
157  		uint64_t reserved_0_63:64;
158  #endif
159  	} s;
160  	struct cvmx_pko_mem_debug10_cn30xx {
161  #ifdef __BIG_ENDIAN_BITFIELD
162  		uint64_t fau:28;
163  		uint64_t cmd:14;
164  		uint64_t segs:6;
165  		uint64_t size:16;
166  #else
167  		uint64_t size:16;
168  		uint64_t segs:6;
169  		uint64_t cmd:14;
170  		uint64_t fau:28;
171  #endif
172  	} cn30xx;
173  	struct cvmx_pko_mem_debug10_cn50xx {
174  #ifdef __BIG_ENDIAN_BITFIELD
175  		uint64_t reserved_49_63:15;
176  		uint64_t ptrs1:17;
177  		uint64_t reserved_17_31:15;
178  		uint64_t ptrs2:17;
179  #else
180  		uint64_t ptrs2:17;
181  		uint64_t reserved_17_31:15;
182  		uint64_t ptrs1:17;
183  		uint64_t reserved_49_63:15;
184  #endif
185  	} cn50xx;
186  };
187  
188  union cvmx_pko_mem_debug11 {
189  	uint64_t u64;
190  	struct cvmx_pko_mem_debug11_s {
191  #ifdef __BIG_ENDIAN_BITFIELD
192  		uint64_t i:1;
193  		uint64_t back:4;
194  		uint64_t pool:3;
195  		uint64_t size:16;
196  		uint64_t reserved_0_39:40;
197  #else
198  		uint64_t reserved_0_39:40;
199  		uint64_t size:16;
200  		uint64_t pool:3;
201  		uint64_t back:4;
202  		uint64_t i:1;
203  #endif
204  	} s;
205  	struct cvmx_pko_mem_debug11_cn30xx {
206  #ifdef __BIG_ENDIAN_BITFIELD
207  		uint64_t i:1;
208  		uint64_t back:4;
209  		uint64_t pool:3;
210  		uint64_t size:16;
211  		uint64_t ptr:40;
212  #else
213  		uint64_t ptr:40;
214  		uint64_t size:16;
215  		uint64_t pool:3;
216  		uint64_t back:4;
217  		uint64_t i:1;
218  #endif
219  	} cn30xx;
220  	struct cvmx_pko_mem_debug11_cn50xx {
221  #ifdef __BIG_ENDIAN_BITFIELD
222  		uint64_t reserved_23_63:41;
223  		uint64_t maj:1;
224  		uint64_t uid:3;
225  		uint64_t sop:1;
226  		uint64_t len:1;
227  		uint64_t chk:1;
228  		uint64_t cnt:13;
229  		uint64_t mod:3;
230  #else
231  		uint64_t mod:3;
232  		uint64_t cnt:13;
233  		uint64_t chk:1;
234  		uint64_t len:1;
235  		uint64_t sop:1;
236  		uint64_t uid:3;
237  		uint64_t maj:1;
238  		uint64_t reserved_23_63:41;
239  #endif
240  	} cn50xx;
241  };
242  
243  union cvmx_pko_mem_debug12 {
244  	uint64_t u64;
245  	struct cvmx_pko_mem_debug12_s {
246  #ifdef __BIG_ENDIAN_BITFIELD
247  		uint64_t reserved_0_63:64;
248  #else
249  		uint64_t reserved_0_63:64;
250  #endif
251  	} s;
252  	struct cvmx_pko_mem_debug12_cn30xx {
253  #ifdef __BIG_ENDIAN_BITFIELD
254  		uint64_t data:64;
255  #else
256  		uint64_t data:64;
257  #endif
258  	} cn30xx;
259  	struct cvmx_pko_mem_debug12_cn50xx {
260  #ifdef __BIG_ENDIAN_BITFIELD
261  		uint64_t fau:28;
262  		uint64_t cmd:14;
263  		uint64_t segs:6;
264  		uint64_t size:16;
265  #else
266  		uint64_t size:16;
267  		uint64_t segs:6;
268  		uint64_t cmd:14;
269  		uint64_t fau:28;
270  #endif
271  	} cn50xx;
272  	struct cvmx_pko_mem_debug12_cn68xx {
273  #ifdef __BIG_ENDIAN_BITFIELD
274  		uint64_t state:64;
275  #else
276  		uint64_t state:64;
277  #endif
278  	} cn68xx;
279  };
280  
281  union cvmx_pko_mem_debug13 {
282  	uint64_t u64;
283  	struct cvmx_pko_mem_debug13_s {
284  #ifdef __BIG_ENDIAN_BITFIELD
285  		uint64_t reserved_0_63:64;
286  #else
287  		uint64_t reserved_0_63:64;
288  #endif
289  	} s;
290  	struct cvmx_pko_mem_debug13_cn30xx {
291  #ifdef __BIG_ENDIAN_BITFIELD
292  		uint64_t reserved_51_63:13;
293  		uint64_t widx:17;
294  		uint64_t ridx2:17;
295  		uint64_t widx2:17;
296  #else
297  		uint64_t widx2:17;
298  		uint64_t ridx2:17;
299  		uint64_t widx:17;
300  		uint64_t reserved_51_63:13;
301  #endif
302  	} cn30xx;
303  	struct cvmx_pko_mem_debug13_cn50xx {
304  #ifdef __BIG_ENDIAN_BITFIELD
305  		uint64_t i:1;
306  		uint64_t back:4;
307  		uint64_t pool:3;
308  		uint64_t size:16;
309  		uint64_t ptr:40;
310  #else
311  		uint64_t ptr:40;
312  		uint64_t size:16;
313  		uint64_t pool:3;
314  		uint64_t back:4;
315  		uint64_t i:1;
316  #endif
317  	} cn50xx;
318  	struct cvmx_pko_mem_debug13_cn68xx {
319  #ifdef __BIG_ENDIAN_BITFIELD
320  		uint64_t state:64;
321  #else
322  		uint64_t state:64;
323  #endif
324  	} cn68xx;
325  };
326  
327  union cvmx_pko_mem_debug14 {
328  	uint64_t u64;
329  	struct cvmx_pko_mem_debug14_s {
330  #ifdef __BIG_ENDIAN_BITFIELD
331  		uint64_t reserved_0_63:64;
332  #else
333  		uint64_t reserved_0_63:64;
334  #endif
335  	} s;
336  	struct cvmx_pko_mem_debug14_cn30xx {
337  #ifdef __BIG_ENDIAN_BITFIELD
338  		uint64_t reserved_17_63:47;
339  		uint64_t ridx:17;
340  #else
341  		uint64_t ridx:17;
342  		uint64_t reserved_17_63:47;
343  #endif
344  	} cn30xx;
345  	struct cvmx_pko_mem_debug14_cn52xx {
346  #ifdef __BIG_ENDIAN_BITFIELD
347  		uint64_t data:64;
348  #else
349  		uint64_t data:64;
350  #endif
351  	} cn52xx;
352  };
353  
354  union cvmx_pko_mem_debug2 {
355  	uint64_t u64;
356  	struct cvmx_pko_mem_debug2_s {
357  #ifdef __BIG_ENDIAN_BITFIELD
358  		uint64_t i:1;
359  		uint64_t back:4;
360  		uint64_t pool:3;
361  		uint64_t size:16;
362  		uint64_t ptr:40;
363  #else
364  		uint64_t ptr:40;
365  		uint64_t size:16;
366  		uint64_t pool:3;
367  		uint64_t back:4;
368  		uint64_t i:1;
369  #endif
370  	} s;
371  };
372  
373  union cvmx_pko_mem_debug3 {
374  	uint64_t u64;
375  	struct cvmx_pko_mem_debug3_s {
376  #ifdef __BIG_ENDIAN_BITFIELD
377  		uint64_t reserved_0_63:64;
378  #else
379  		uint64_t reserved_0_63:64;
380  #endif
381  	} s;
382  	struct cvmx_pko_mem_debug3_cn30xx {
383  #ifdef __BIG_ENDIAN_BITFIELD
384  		uint64_t i:1;
385  		uint64_t back:4;
386  		uint64_t pool:3;
387  		uint64_t size:16;
388  		uint64_t ptr:40;
389  #else
390  		uint64_t ptr:40;
391  		uint64_t size:16;
392  		uint64_t pool:3;
393  		uint64_t back:4;
394  		uint64_t i:1;
395  #endif
396  	} cn30xx;
397  	struct cvmx_pko_mem_debug3_cn50xx {
398  #ifdef __BIG_ENDIAN_BITFIELD
399  		uint64_t data:64;
400  #else
401  		uint64_t data:64;
402  #endif
403  	} cn50xx;
404  };
405  
406  union cvmx_pko_mem_debug4 {
407  	uint64_t u64;
408  	struct cvmx_pko_mem_debug4_s {
409  #ifdef __BIG_ENDIAN_BITFIELD
410  		uint64_t reserved_0_63:64;
411  #else
412  		uint64_t reserved_0_63:64;
413  #endif
414  	} s;
415  	struct cvmx_pko_mem_debug4_cn30xx {
416  #ifdef __BIG_ENDIAN_BITFIELD
417  		uint64_t data:64;
418  #else
419  		uint64_t data:64;
420  #endif
421  	} cn30xx;
422  	struct cvmx_pko_mem_debug4_cn50xx {
423  #ifdef __BIG_ENDIAN_BITFIELD
424  		uint64_t cmnd_segs:3;
425  		uint64_t cmnd_siz:16;
426  		uint64_t cmnd_off:6;
427  		uint64_t uid:3;
428  		uint64_t dread_sop:1;
429  		uint64_t init_dwrite:1;
430  		uint64_t chk_once:1;
431  		uint64_t chk_mode:1;
432  		uint64_t active:1;
433  		uint64_t static_p:1;
434  		uint64_t qos:3;
435  		uint64_t qcb_ridx:5;
436  		uint64_t qid_off_max:4;
437  		uint64_t qid_off:4;
438  		uint64_t qid_base:8;
439  		uint64_t wait:1;
440  		uint64_t minor:2;
441  		uint64_t major:3;
442  #else
443  		uint64_t major:3;
444  		uint64_t minor:2;
445  		uint64_t wait:1;
446  		uint64_t qid_base:8;
447  		uint64_t qid_off:4;
448  		uint64_t qid_off_max:4;
449  		uint64_t qcb_ridx:5;
450  		uint64_t qos:3;
451  		uint64_t static_p:1;
452  		uint64_t active:1;
453  		uint64_t chk_mode:1;
454  		uint64_t chk_once:1;
455  		uint64_t init_dwrite:1;
456  		uint64_t dread_sop:1;
457  		uint64_t uid:3;
458  		uint64_t cmnd_off:6;
459  		uint64_t cmnd_siz:16;
460  		uint64_t cmnd_segs:3;
461  #endif
462  	} cn50xx;
463  	struct cvmx_pko_mem_debug4_cn52xx {
464  #ifdef __BIG_ENDIAN_BITFIELD
465  		uint64_t curr_siz:8;
466  		uint64_t curr_off:16;
467  		uint64_t cmnd_segs:6;
468  		uint64_t cmnd_siz:16;
469  		uint64_t cmnd_off:6;
470  		uint64_t uid:2;
471  		uint64_t dread_sop:1;
472  		uint64_t init_dwrite:1;
473  		uint64_t chk_once:1;
474  		uint64_t chk_mode:1;
475  		uint64_t wait:1;
476  		uint64_t minor:2;
477  		uint64_t major:3;
478  #else
479  		uint64_t major:3;
480  		uint64_t minor:2;
481  		uint64_t wait:1;
482  		uint64_t chk_mode:1;
483  		uint64_t chk_once:1;
484  		uint64_t init_dwrite:1;
485  		uint64_t dread_sop:1;
486  		uint64_t uid:2;
487  		uint64_t cmnd_off:6;
488  		uint64_t cmnd_siz:16;
489  		uint64_t cmnd_segs:6;
490  		uint64_t curr_off:16;
491  		uint64_t curr_siz:8;
492  #endif
493  	} cn52xx;
494  };
495  
496  union cvmx_pko_mem_debug5 {
497  	uint64_t u64;
498  	struct cvmx_pko_mem_debug5_s {
499  #ifdef __BIG_ENDIAN_BITFIELD
500  		uint64_t reserved_0_63:64;
501  #else
502  		uint64_t reserved_0_63:64;
503  #endif
504  	} s;
505  	struct cvmx_pko_mem_debug5_cn30xx {
506  #ifdef __BIG_ENDIAN_BITFIELD
507  		uint64_t dwri_mod:1;
508  		uint64_t dwri_sop:1;
509  		uint64_t dwri_len:1;
510  		uint64_t dwri_cnt:13;
511  		uint64_t cmnd_siz:16;
512  		uint64_t uid:1;
513  		uint64_t xfer_wor:1;
514  		uint64_t xfer_dwr:1;
515  		uint64_t cbuf_fre:1;
516  		uint64_t reserved_27_27:1;
517  		uint64_t chk_mode:1;
518  		uint64_t active:1;
519  		uint64_t qos:3;
520  		uint64_t qcb_ridx:5;
521  		uint64_t qid_off:3;
522  		uint64_t qid_base:7;
523  		uint64_t wait:1;
524  		uint64_t minor:2;
525  		uint64_t major:4;
526  #else
527  		uint64_t major:4;
528  		uint64_t minor:2;
529  		uint64_t wait:1;
530  		uint64_t qid_base:7;
531  		uint64_t qid_off:3;
532  		uint64_t qcb_ridx:5;
533  		uint64_t qos:3;
534  		uint64_t active:1;
535  		uint64_t chk_mode:1;
536  		uint64_t reserved_27_27:1;
537  		uint64_t cbuf_fre:1;
538  		uint64_t xfer_dwr:1;
539  		uint64_t xfer_wor:1;
540  		uint64_t uid:1;
541  		uint64_t cmnd_siz:16;
542  		uint64_t dwri_cnt:13;
543  		uint64_t dwri_len:1;
544  		uint64_t dwri_sop:1;
545  		uint64_t dwri_mod:1;
546  #endif
547  	} cn30xx;
548  	struct cvmx_pko_mem_debug5_cn50xx {
549  #ifdef __BIG_ENDIAN_BITFIELD
550  		uint64_t curr_ptr:29;
551  		uint64_t curr_siz:16;
552  		uint64_t curr_off:16;
553  		uint64_t cmnd_segs:3;
554  #else
555  		uint64_t cmnd_segs:3;
556  		uint64_t curr_off:16;
557  		uint64_t curr_siz:16;
558  		uint64_t curr_ptr:29;
559  #endif
560  	} cn50xx;
561  	struct cvmx_pko_mem_debug5_cn52xx {
562  #ifdef __BIG_ENDIAN_BITFIELD
563  		uint64_t reserved_54_63:10;
564  		uint64_t nxt_inflt:6;
565  		uint64_t curr_ptr:40;
566  		uint64_t curr_siz:8;
567  #else
568  		uint64_t curr_siz:8;
569  		uint64_t curr_ptr:40;
570  		uint64_t nxt_inflt:6;
571  		uint64_t reserved_54_63:10;
572  #endif
573  	} cn52xx;
574  	struct cvmx_pko_mem_debug5_cn61xx {
575  #ifdef __BIG_ENDIAN_BITFIELD
576  		uint64_t reserved_56_63:8;
577  		uint64_t ptp:1;
578  		uint64_t major_3:1;
579  		uint64_t nxt_inflt:6;
580  		uint64_t curr_ptr:40;
581  		uint64_t curr_siz:8;
582  #else
583  		uint64_t curr_siz:8;
584  		uint64_t curr_ptr:40;
585  		uint64_t nxt_inflt:6;
586  		uint64_t major_3:1;
587  		uint64_t ptp:1;
588  		uint64_t reserved_56_63:8;
589  #endif
590  	} cn61xx;
591  	struct cvmx_pko_mem_debug5_cn68xx {
592  #ifdef __BIG_ENDIAN_BITFIELD
593  		uint64_t reserved_57_63:7;
594  		uint64_t uid_2:1;
595  		uint64_t ptp:1;
596  		uint64_t major_3:1;
597  		uint64_t nxt_inflt:6;
598  		uint64_t curr_ptr:40;
599  		uint64_t curr_siz:8;
600  #else
601  		uint64_t curr_siz:8;
602  		uint64_t curr_ptr:40;
603  		uint64_t nxt_inflt:6;
604  		uint64_t major_3:1;
605  		uint64_t ptp:1;
606  		uint64_t uid_2:1;
607  		uint64_t reserved_57_63:7;
608  #endif
609  	} cn68xx;
610  };
611  
612  union cvmx_pko_mem_debug6 {
613  	uint64_t u64;
614  	struct cvmx_pko_mem_debug6_s {
615  #ifdef __BIG_ENDIAN_BITFIELD
616  		uint64_t reserved_37_63:27;
617  		uint64_t qid_offres:4;
618  		uint64_t qid_offths:4;
619  		uint64_t preempter:1;
620  		uint64_t preemptee:1;
621  		uint64_t preempted:1;
622  		uint64_t active:1;
623  		uint64_t statc:1;
624  		uint64_t qos:3;
625  		uint64_t qcb_ridx:5;
626  		uint64_t qid_offmax:4;
627  		uint64_t reserved_0_11:12;
628  #else
629  		uint64_t reserved_0_11:12;
630  		uint64_t qid_offmax:4;
631  		uint64_t qcb_ridx:5;
632  		uint64_t qos:3;
633  		uint64_t statc:1;
634  		uint64_t active:1;
635  		uint64_t preempted:1;
636  		uint64_t preemptee:1;
637  		uint64_t preempter:1;
638  		uint64_t qid_offths:4;
639  		uint64_t qid_offres:4;
640  		uint64_t reserved_37_63:27;
641  #endif
642  	} s;
643  	struct cvmx_pko_mem_debug6_cn30xx {
644  #ifdef __BIG_ENDIAN_BITFIELD
645  		uint64_t reserved_11_63:53;
646  		uint64_t qid_offm:3;
647  		uint64_t static_p:1;
648  		uint64_t work_min:3;
649  		uint64_t dwri_chk:1;
650  		uint64_t dwri_uid:1;
651  		uint64_t dwri_mod:2;
652  #else
653  		uint64_t dwri_mod:2;
654  		uint64_t dwri_uid:1;
655  		uint64_t dwri_chk:1;
656  		uint64_t work_min:3;
657  		uint64_t static_p:1;
658  		uint64_t qid_offm:3;
659  		uint64_t reserved_11_63:53;
660  #endif
661  	} cn30xx;
662  	struct cvmx_pko_mem_debug6_cn50xx {
663  #ifdef __BIG_ENDIAN_BITFIELD
664  		uint64_t reserved_11_63:53;
665  		uint64_t curr_ptr:11;
666  #else
667  		uint64_t curr_ptr:11;
668  		uint64_t reserved_11_63:53;
669  #endif
670  	} cn50xx;
671  	struct cvmx_pko_mem_debug6_cn52xx {
672  #ifdef __BIG_ENDIAN_BITFIELD
673  		uint64_t reserved_37_63:27;
674  		uint64_t qid_offres:4;
675  		uint64_t qid_offths:4;
676  		uint64_t preempter:1;
677  		uint64_t preemptee:1;
678  		uint64_t preempted:1;
679  		uint64_t active:1;
680  		uint64_t statc:1;
681  		uint64_t qos:3;
682  		uint64_t qcb_ridx:5;
683  		uint64_t qid_offmax:4;
684  		uint64_t qid_off:4;
685  		uint64_t qid_base:8;
686  #else
687  		uint64_t qid_base:8;
688  		uint64_t qid_off:4;
689  		uint64_t qid_offmax:4;
690  		uint64_t qcb_ridx:5;
691  		uint64_t qos:3;
692  		uint64_t statc:1;
693  		uint64_t active:1;
694  		uint64_t preempted:1;
695  		uint64_t preemptee:1;
696  		uint64_t preempter:1;
697  		uint64_t qid_offths:4;
698  		uint64_t qid_offres:4;
699  		uint64_t reserved_37_63:27;
700  #endif
701  	} cn52xx;
702  };
703  
704  union cvmx_pko_mem_debug7 {
705  	uint64_t u64;
706  	struct cvmx_pko_mem_debug7_s {
707  #ifdef __BIG_ENDIAN_BITFIELD
708  		uint64_t reserved_0_63:64;
709  #else
710  		uint64_t reserved_0_63:64;
711  #endif
712  	} s;
713  	struct cvmx_pko_mem_debug7_cn30xx {
714  #ifdef __BIG_ENDIAN_BITFIELD
715  		uint64_t reserved_58_63:6;
716  		uint64_t dwb:9;
717  		uint64_t start:33;
718  		uint64_t size:16;
719  #else
720  		uint64_t size:16;
721  		uint64_t start:33;
722  		uint64_t dwb:9;
723  		uint64_t reserved_58_63:6;
724  #endif
725  	} cn30xx;
726  	struct cvmx_pko_mem_debug7_cn50xx {
727  #ifdef __BIG_ENDIAN_BITFIELD
728  		uint64_t qos:5;
729  		uint64_t tail:1;
730  		uint64_t buf_siz:13;
731  		uint64_t buf_ptr:33;
732  		uint64_t qcb_widx:6;
733  		uint64_t qcb_ridx:6;
734  #else
735  		uint64_t qcb_ridx:6;
736  		uint64_t qcb_widx:6;
737  		uint64_t buf_ptr:33;
738  		uint64_t buf_siz:13;
739  		uint64_t tail:1;
740  		uint64_t qos:5;
741  #endif
742  	} cn50xx;
743  	struct cvmx_pko_mem_debug7_cn68xx {
744  #ifdef __BIG_ENDIAN_BITFIELD
745  		uint64_t qos:3;
746  		uint64_t tail:1;
747  		uint64_t buf_siz:13;
748  		uint64_t buf_ptr:33;
749  		uint64_t qcb_widx:7;
750  		uint64_t qcb_ridx:7;
751  #else
752  		uint64_t qcb_ridx:7;
753  		uint64_t qcb_widx:7;
754  		uint64_t buf_ptr:33;
755  		uint64_t buf_siz:13;
756  		uint64_t tail:1;
757  		uint64_t qos:3;
758  #endif
759  	} cn68xx;
760  };
761  
762  union cvmx_pko_mem_debug8 {
763  	uint64_t u64;
764  	struct cvmx_pko_mem_debug8_s {
765  #ifdef __BIG_ENDIAN_BITFIELD
766  		uint64_t reserved_59_63:5;
767  		uint64_t tail:1;
768  		uint64_t buf_siz:13;
769  		uint64_t reserved_0_44:45;
770  #else
771  		uint64_t reserved_0_44:45;
772  		uint64_t buf_siz:13;
773  		uint64_t tail:1;
774  		uint64_t reserved_59_63:5;
775  #endif
776  	} s;
777  	struct cvmx_pko_mem_debug8_cn30xx {
778  #ifdef __BIG_ENDIAN_BITFIELD
779  		uint64_t qos:5;
780  		uint64_t tail:1;
781  		uint64_t buf_siz:13;
782  		uint64_t buf_ptr:33;
783  		uint64_t qcb_widx:6;
784  		uint64_t qcb_ridx:6;
785  #else
786  		uint64_t qcb_ridx:6;
787  		uint64_t qcb_widx:6;
788  		uint64_t buf_ptr:33;
789  		uint64_t buf_siz:13;
790  		uint64_t tail:1;
791  		uint64_t qos:5;
792  #endif
793  	} cn30xx;
794  	struct cvmx_pko_mem_debug8_cn50xx {
795  #ifdef __BIG_ENDIAN_BITFIELD
796  		uint64_t reserved_28_63:36;
797  		uint64_t doorbell:20;
798  		uint64_t reserved_6_7:2;
799  		uint64_t static_p:1;
800  		uint64_t s_tail:1;
801  		uint64_t static_q:1;
802  		uint64_t qos:3;
803  #else
804  		uint64_t qos:3;
805  		uint64_t static_q:1;
806  		uint64_t s_tail:1;
807  		uint64_t static_p:1;
808  		uint64_t reserved_6_7:2;
809  		uint64_t doorbell:20;
810  		uint64_t reserved_28_63:36;
811  #endif
812  	} cn50xx;
813  	struct cvmx_pko_mem_debug8_cn52xx {
814  #ifdef __BIG_ENDIAN_BITFIELD
815  		uint64_t reserved_29_63:35;
816  		uint64_t preempter:1;
817  		uint64_t doorbell:20;
818  		uint64_t reserved_7_7:1;
819  		uint64_t preemptee:1;
820  		uint64_t static_p:1;
821  		uint64_t s_tail:1;
822  		uint64_t static_q:1;
823  		uint64_t qos:3;
824  #else
825  		uint64_t qos:3;
826  		uint64_t static_q:1;
827  		uint64_t s_tail:1;
828  		uint64_t static_p:1;
829  		uint64_t preemptee:1;
830  		uint64_t reserved_7_7:1;
831  		uint64_t doorbell:20;
832  		uint64_t preempter:1;
833  		uint64_t reserved_29_63:35;
834  #endif
835  	} cn52xx;
836  	struct cvmx_pko_mem_debug8_cn61xx {
837  #ifdef __BIG_ENDIAN_BITFIELD
838  		uint64_t reserved_42_63:22;
839  		uint64_t qid_qqos:8;
840  		uint64_t reserved_33_33:1;
841  		uint64_t qid_idx:4;
842  		uint64_t preempter:1;
843  		uint64_t doorbell:20;
844  		uint64_t reserved_7_7:1;
845  		uint64_t preemptee:1;
846  		uint64_t static_p:1;
847  		uint64_t s_tail:1;
848  		uint64_t static_q:1;
849  		uint64_t qos:3;
850  #else
851  		uint64_t qos:3;
852  		uint64_t static_q:1;
853  		uint64_t s_tail:1;
854  		uint64_t static_p:1;
855  		uint64_t preemptee:1;
856  		uint64_t reserved_7_7:1;
857  		uint64_t doorbell:20;
858  		uint64_t preempter:1;
859  		uint64_t qid_idx:4;
860  		uint64_t reserved_33_33:1;
861  		uint64_t qid_qqos:8;
862  		uint64_t reserved_42_63:22;
863  #endif
864  	} cn61xx;
865  	struct cvmx_pko_mem_debug8_cn68xx {
866  #ifdef __BIG_ENDIAN_BITFIELD
867  		uint64_t reserved_37_63:27;
868  		uint64_t preempter:1;
869  		uint64_t doorbell:20;
870  		uint64_t reserved_9_15:7;
871  		uint64_t preemptee:1;
872  		uint64_t static_p:1;
873  		uint64_t s_tail:1;
874  		uint64_t static_q:1;
875  		uint64_t qos:5;
876  #else
877  		uint64_t qos:5;
878  		uint64_t static_q:1;
879  		uint64_t s_tail:1;
880  		uint64_t static_p:1;
881  		uint64_t preemptee:1;
882  		uint64_t reserved_9_15:7;
883  		uint64_t doorbell:20;
884  		uint64_t preempter:1;
885  		uint64_t reserved_37_63:27;
886  #endif
887  	} cn68xx;
888  };
889  
890  union cvmx_pko_mem_debug9 {
891  	uint64_t u64;
892  	struct cvmx_pko_mem_debug9_s {
893  #ifdef __BIG_ENDIAN_BITFIELD
894  		uint64_t reserved_49_63:15;
895  		uint64_t ptrs0:17;
896  		uint64_t reserved_0_31:32;
897  #else
898  		uint64_t reserved_0_31:32;
899  		uint64_t ptrs0:17;
900  		uint64_t reserved_49_63:15;
901  #endif
902  	} s;
903  	struct cvmx_pko_mem_debug9_cn30xx {
904  #ifdef __BIG_ENDIAN_BITFIELD
905  		uint64_t reserved_28_63:36;
906  		uint64_t doorbell:20;
907  		uint64_t reserved_5_7:3;
908  		uint64_t s_tail:1;
909  		uint64_t static_q:1;
910  		uint64_t qos:3;
911  #else
912  		uint64_t qos:3;
913  		uint64_t static_q:1;
914  		uint64_t s_tail:1;
915  		uint64_t reserved_5_7:3;
916  		uint64_t doorbell:20;
917  		uint64_t reserved_28_63:36;
918  #endif
919  	} cn30xx;
920  	struct cvmx_pko_mem_debug9_cn38xx {
921  #ifdef __BIG_ENDIAN_BITFIELD
922  		uint64_t reserved_28_63:36;
923  		uint64_t doorbell:20;
924  		uint64_t reserved_6_7:2;
925  		uint64_t static_p:1;
926  		uint64_t s_tail:1;
927  		uint64_t static_q:1;
928  		uint64_t qos:3;
929  #else
930  		uint64_t qos:3;
931  		uint64_t static_q:1;
932  		uint64_t s_tail:1;
933  		uint64_t static_p:1;
934  		uint64_t reserved_6_7:2;
935  		uint64_t doorbell:20;
936  		uint64_t reserved_28_63:36;
937  #endif
938  	} cn38xx;
939  	struct cvmx_pko_mem_debug9_cn50xx {
940  #ifdef __BIG_ENDIAN_BITFIELD
941  		uint64_t reserved_49_63:15;
942  		uint64_t ptrs0:17;
943  		uint64_t reserved_17_31:15;
944  		uint64_t ptrs3:17;
945  #else
946  		uint64_t ptrs3:17;
947  		uint64_t reserved_17_31:15;
948  		uint64_t ptrs0:17;
949  		uint64_t reserved_49_63:15;
950  #endif
951  	} cn50xx;
952  };
953  
954  union cvmx_pko_mem_iport_ptrs {
955  	uint64_t u64;
956  	struct cvmx_pko_mem_iport_ptrs_s {
957  #ifdef __BIG_ENDIAN_BITFIELD
958  		uint64_t reserved_63_63:1;
959  		uint64_t crc:1;
960  		uint64_t static_p:1;
961  		uint64_t qos_mask:8;
962  		uint64_t min_pkt:3;
963  		uint64_t reserved_31_49:19;
964  		uint64_t pipe:7;
965  		uint64_t reserved_21_23:3;
966  		uint64_t intr:5;
967  		uint64_t reserved_13_15:3;
968  		uint64_t eid:5;
969  		uint64_t reserved_7_7:1;
970  		uint64_t ipid:7;
971  #else
972  		uint64_t ipid:7;
973  		uint64_t reserved_7_7:1;
974  		uint64_t eid:5;
975  		uint64_t reserved_13_15:3;
976  		uint64_t intr:5;
977  		uint64_t reserved_21_23:3;
978  		uint64_t pipe:7;
979  		uint64_t reserved_31_49:19;
980  		uint64_t min_pkt:3;
981  		uint64_t qos_mask:8;
982  		uint64_t static_p:1;
983  		uint64_t crc:1;
984  		uint64_t reserved_63_63:1;
985  #endif
986  	} s;
987  };
988  
989  union cvmx_pko_mem_iport_qos {
990  	uint64_t u64;
991  	struct cvmx_pko_mem_iport_qos_s {
992  #ifdef __BIG_ENDIAN_BITFIELD
993  		uint64_t reserved_61_63:3;
994  		uint64_t qos_mask:8;
995  		uint64_t reserved_13_52:40;
996  		uint64_t eid:5;
997  		uint64_t reserved_7_7:1;
998  		uint64_t ipid:7;
999  #else
1000  		uint64_t ipid:7;
1001  		uint64_t reserved_7_7:1;
1002  		uint64_t eid:5;
1003  		uint64_t reserved_13_52:40;
1004  		uint64_t qos_mask:8;
1005  		uint64_t reserved_61_63:3;
1006  #endif
1007  	} s;
1008  };
1009  
1010  union cvmx_pko_mem_iqueue_ptrs {
1011  	uint64_t u64;
1012  	struct cvmx_pko_mem_iqueue_ptrs_s {
1013  #ifdef __BIG_ENDIAN_BITFIELD
1014  		uint64_t s_tail:1;
1015  		uint64_t static_p:1;
1016  		uint64_t static_q:1;
1017  		uint64_t qos_mask:8;
1018  		uint64_t buf_ptr:31;
1019  		uint64_t tail:1;
1020  		uint64_t index:5;
1021  		uint64_t reserved_15_15:1;
1022  		uint64_t ipid:7;
1023  		uint64_t qid:8;
1024  #else
1025  		uint64_t qid:8;
1026  		uint64_t ipid:7;
1027  		uint64_t reserved_15_15:1;
1028  		uint64_t index:5;
1029  		uint64_t tail:1;
1030  		uint64_t buf_ptr:31;
1031  		uint64_t qos_mask:8;
1032  		uint64_t static_q:1;
1033  		uint64_t static_p:1;
1034  		uint64_t s_tail:1;
1035  #endif
1036  	} s;
1037  };
1038  
1039  union cvmx_pko_mem_iqueue_qos {
1040  	uint64_t u64;
1041  	struct cvmx_pko_mem_iqueue_qos_s {
1042  #ifdef __BIG_ENDIAN_BITFIELD
1043  		uint64_t reserved_61_63:3;
1044  		uint64_t qos_mask:8;
1045  		uint64_t reserved_15_52:38;
1046  		uint64_t ipid:7;
1047  		uint64_t qid:8;
1048  #else
1049  		uint64_t qid:8;
1050  		uint64_t ipid:7;
1051  		uint64_t reserved_15_52:38;
1052  		uint64_t qos_mask:8;
1053  		uint64_t reserved_61_63:3;
1054  #endif
1055  	} s;
1056  };
1057  
1058  union cvmx_pko_mem_port_ptrs {
1059  	uint64_t u64;
1060  	struct cvmx_pko_mem_port_ptrs_s {
1061  #ifdef __BIG_ENDIAN_BITFIELD
1062  		uint64_t reserved_62_63:2;
1063  		uint64_t static_p:1;
1064  		uint64_t qos_mask:8;
1065  		uint64_t reserved_16_52:37;
1066  		uint64_t bp_port:6;
1067  		uint64_t eid:4;
1068  		uint64_t pid:6;
1069  #else
1070  		uint64_t pid:6;
1071  		uint64_t eid:4;
1072  		uint64_t bp_port:6;
1073  		uint64_t reserved_16_52:37;
1074  		uint64_t qos_mask:8;
1075  		uint64_t static_p:1;
1076  		uint64_t reserved_62_63:2;
1077  #endif
1078  	} s;
1079  };
1080  
1081  union cvmx_pko_mem_port_qos {
1082  	uint64_t u64;
1083  	struct cvmx_pko_mem_port_qos_s {
1084  #ifdef __BIG_ENDIAN_BITFIELD
1085  		uint64_t reserved_61_63:3;
1086  		uint64_t qos_mask:8;
1087  		uint64_t reserved_10_52:43;
1088  		uint64_t eid:4;
1089  		uint64_t pid:6;
1090  #else
1091  		uint64_t pid:6;
1092  		uint64_t eid:4;
1093  		uint64_t reserved_10_52:43;
1094  		uint64_t qos_mask:8;
1095  		uint64_t reserved_61_63:3;
1096  #endif
1097  	} s;
1098  };
1099  
1100  union cvmx_pko_mem_port_rate0 {
1101  	uint64_t u64;
1102  	struct cvmx_pko_mem_port_rate0_s {
1103  #ifdef __BIG_ENDIAN_BITFIELD
1104  		uint64_t reserved_51_63:13;
1105  		uint64_t rate_word:19;
1106  		uint64_t rate_pkt:24;
1107  		uint64_t reserved_7_7:1;
1108  		uint64_t pid:7;
1109  #else
1110  		uint64_t pid:7;
1111  		uint64_t reserved_7_7:1;
1112  		uint64_t rate_pkt:24;
1113  		uint64_t rate_word:19;
1114  		uint64_t reserved_51_63:13;
1115  #endif
1116  	} s;
1117  	struct cvmx_pko_mem_port_rate0_cn52xx {
1118  #ifdef __BIG_ENDIAN_BITFIELD
1119  		uint64_t reserved_51_63:13;
1120  		uint64_t rate_word:19;
1121  		uint64_t rate_pkt:24;
1122  		uint64_t reserved_6_7:2;
1123  		uint64_t pid:6;
1124  #else
1125  		uint64_t pid:6;
1126  		uint64_t reserved_6_7:2;
1127  		uint64_t rate_pkt:24;
1128  		uint64_t rate_word:19;
1129  		uint64_t reserved_51_63:13;
1130  #endif
1131  	} cn52xx;
1132  };
1133  
1134  union cvmx_pko_mem_port_rate1 {
1135  	uint64_t u64;
1136  	struct cvmx_pko_mem_port_rate1_s {
1137  #ifdef __BIG_ENDIAN_BITFIELD
1138  		uint64_t reserved_32_63:32;
1139  		uint64_t rate_lim:24;
1140  		uint64_t reserved_7_7:1;
1141  		uint64_t pid:7;
1142  #else
1143  		uint64_t pid:7;
1144  		uint64_t reserved_7_7:1;
1145  		uint64_t rate_lim:24;
1146  		uint64_t reserved_32_63:32;
1147  #endif
1148  	} s;
1149  	struct cvmx_pko_mem_port_rate1_cn52xx {
1150  #ifdef __BIG_ENDIAN_BITFIELD
1151  		uint64_t reserved_32_63:32;
1152  		uint64_t rate_lim:24;
1153  		uint64_t reserved_6_7:2;
1154  		uint64_t pid:6;
1155  #else
1156  		uint64_t pid:6;
1157  		uint64_t reserved_6_7:2;
1158  		uint64_t rate_lim:24;
1159  		uint64_t reserved_32_63:32;
1160  #endif
1161  	} cn52xx;
1162  };
1163  
1164  union cvmx_pko_mem_queue_ptrs {
1165  	uint64_t u64;
1166  	struct cvmx_pko_mem_queue_ptrs_s {
1167  #ifdef __BIG_ENDIAN_BITFIELD
1168  		uint64_t s_tail:1;
1169  		uint64_t static_p:1;
1170  		uint64_t static_q:1;
1171  		uint64_t qos_mask:8;
1172  		uint64_t buf_ptr:36;
1173  		uint64_t tail:1;
1174  		uint64_t index:3;
1175  		uint64_t port:6;
1176  		uint64_t queue:7;
1177  #else
1178  		uint64_t queue:7;
1179  		uint64_t port:6;
1180  		uint64_t index:3;
1181  		uint64_t tail:1;
1182  		uint64_t buf_ptr:36;
1183  		uint64_t qos_mask:8;
1184  		uint64_t static_q:1;
1185  		uint64_t static_p:1;
1186  		uint64_t s_tail:1;
1187  #endif
1188  	} s;
1189  };
1190  
1191  union cvmx_pko_mem_queue_qos {
1192  	uint64_t u64;
1193  	struct cvmx_pko_mem_queue_qos_s {
1194  #ifdef __BIG_ENDIAN_BITFIELD
1195  		uint64_t reserved_61_63:3;
1196  		uint64_t qos_mask:8;
1197  		uint64_t reserved_13_52:40;
1198  		uint64_t pid:6;
1199  		uint64_t qid:7;
1200  #else
1201  		uint64_t qid:7;
1202  		uint64_t pid:6;
1203  		uint64_t reserved_13_52:40;
1204  		uint64_t qos_mask:8;
1205  		uint64_t reserved_61_63:3;
1206  #endif
1207  	} s;
1208  };
1209  
1210  union cvmx_pko_mem_throttle_int {
1211  	uint64_t u64;
1212  	struct cvmx_pko_mem_throttle_int_s {
1213  #ifdef __BIG_ENDIAN_BITFIELD
1214  		uint64_t reserved_47_63:17;
1215  		uint64_t word:15;
1216  		uint64_t reserved_14_31:18;
1217  		uint64_t packet:6;
1218  		uint64_t reserved_5_7:3;
1219  		uint64_t intr:5;
1220  #else
1221  		uint64_t intr:5;
1222  		uint64_t reserved_5_7:3;
1223  		uint64_t packet:6;
1224  		uint64_t reserved_14_31:18;
1225  		uint64_t word:15;
1226  		uint64_t reserved_47_63:17;
1227  #endif
1228  	} s;
1229  };
1230  
1231  union cvmx_pko_mem_throttle_pipe {
1232  	uint64_t u64;
1233  	struct cvmx_pko_mem_throttle_pipe_s {
1234  #ifdef __BIG_ENDIAN_BITFIELD
1235  		uint64_t reserved_47_63:17;
1236  		uint64_t word:15;
1237  		uint64_t reserved_14_31:18;
1238  		uint64_t packet:6;
1239  		uint64_t reserved_7_7:1;
1240  		uint64_t pipe:7;
1241  #else
1242  		uint64_t pipe:7;
1243  		uint64_t reserved_7_7:1;
1244  		uint64_t packet:6;
1245  		uint64_t reserved_14_31:18;
1246  		uint64_t word:15;
1247  		uint64_t reserved_47_63:17;
1248  #endif
1249  	} s;
1250  };
1251  
1252  union cvmx_pko_reg_bist_result {
1253  	uint64_t u64;
1254  	struct cvmx_pko_reg_bist_result_s {
1255  #ifdef __BIG_ENDIAN_BITFIELD
1256  		uint64_t reserved_0_63:64;
1257  #else
1258  		uint64_t reserved_0_63:64;
1259  #endif
1260  	} s;
1261  	struct cvmx_pko_reg_bist_result_cn30xx {
1262  #ifdef __BIG_ENDIAN_BITFIELD
1263  		uint64_t reserved_27_63:37;
1264  		uint64_t psb2:5;
1265  		uint64_t count:1;
1266  		uint64_t rif:1;
1267  		uint64_t wif:1;
1268  		uint64_t ncb:1;
1269  		uint64_t out:1;
1270  		uint64_t crc:1;
1271  		uint64_t chk:1;
1272  		uint64_t qsb:2;
1273  		uint64_t qcb:2;
1274  		uint64_t pdb:4;
1275  		uint64_t psb:7;
1276  #else
1277  		uint64_t psb:7;
1278  		uint64_t pdb:4;
1279  		uint64_t qcb:2;
1280  		uint64_t qsb:2;
1281  		uint64_t chk:1;
1282  		uint64_t crc:1;
1283  		uint64_t out:1;
1284  		uint64_t ncb:1;
1285  		uint64_t wif:1;
1286  		uint64_t rif:1;
1287  		uint64_t count:1;
1288  		uint64_t psb2:5;
1289  		uint64_t reserved_27_63:37;
1290  #endif
1291  	} cn30xx;
1292  	struct cvmx_pko_reg_bist_result_cn50xx {
1293  #ifdef __BIG_ENDIAN_BITFIELD
1294  		uint64_t reserved_33_63:31;
1295  		uint64_t csr:1;
1296  		uint64_t iob:1;
1297  		uint64_t out_crc:1;
1298  		uint64_t out_ctl:3;
1299  		uint64_t out_sta:1;
1300  		uint64_t out_wif:1;
1301  		uint64_t prt_chk:3;
1302  		uint64_t prt_nxt:1;
1303  		uint64_t prt_psb:6;
1304  		uint64_t ncb_inb:2;
1305  		uint64_t prt_qcb:2;
1306  		uint64_t prt_qsb:3;
1307  		uint64_t dat_dat:4;
1308  		uint64_t dat_ptr:4;
1309  #else
1310  		uint64_t dat_ptr:4;
1311  		uint64_t dat_dat:4;
1312  		uint64_t prt_qsb:3;
1313  		uint64_t prt_qcb:2;
1314  		uint64_t ncb_inb:2;
1315  		uint64_t prt_psb:6;
1316  		uint64_t prt_nxt:1;
1317  		uint64_t prt_chk:3;
1318  		uint64_t out_wif:1;
1319  		uint64_t out_sta:1;
1320  		uint64_t out_ctl:3;
1321  		uint64_t out_crc:1;
1322  		uint64_t iob:1;
1323  		uint64_t csr:1;
1324  		uint64_t reserved_33_63:31;
1325  #endif
1326  	} cn50xx;
1327  	struct cvmx_pko_reg_bist_result_cn52xx {
1328  #ifdef __BIG_ENDIAN_BITFIELD
1329  		uint64_t reserved_35_63:29;
1330  		uint64_t csr:1;
1331  		uint64_t iob:1;
1332  		uint64_t out_dat:1;
1333  		uint64_t out_ctl:3;
1334  		uint64_t out_sta:1;
1335  		uint64_t out_wif:1;
1336  		uint64_t prt_chk:3;
1337  		uint64_t prt_nxt:1;
1338  		uint64_t prt_psb:8;
1339  		uint64_t ncb_inb:2;
1340  		uint64_t prt_qcb:2;
1341  		uint64_t prt_qsb:3;
1342  		uint64_t prt_ctl:2;
1343  		uint64_t dat_dat:2;
1344  		uint64_t dat_ptr:4;
1345  #else
1346  		uint64_t dat_ptr:4;
1347  		uint64_t dat_dat:2;
1348  		uint64_t prt_ctl:2;
1349  		uint64_t prt_qsb:3;
1350  		uint64_t prt_qcb:2;
1351  		uint64_t ncb_inb:2;
1352  		uint64_t prt_psb:8;
1353  		uint64_t prt_nxt:1;
1354  		uint64_t prt_chk:3;
1355  		uint64_t out_wif:1;
1356  		uint64_t out_sta:1;
1357  		uint64_t out_ctl:3;
1358  		uint64_t out_dat:1;
1359  		uint64_t iob:1;
1360  		uint64_t csr:1;
1361  		uint64_t reserved_35_63:29;
1362  #endif
1363  	} cn52xx;
1364  	struct cvmx_pko_reg_bist_result_cn68xx {
1365  #ifdef __BIG_ENDIAN_BITFIELD
1366  		uint64_t reserved_36_63:28;
1367  		uint64_t crc:1;
1368  		uint64_t csr:1;
1369  		uint64_t iob:1;
1370  		uint64_t out_dat:1;
1371  		uint64_t reserved_31_31:1;
1372  		uint64_t out_ctl:2;
1373  		uint64_t out_sta:1;
1374  		uint64_t out_wif:1;
1375  		uint64_t prt_chk:3;
1376  		uint64_t prt_nxt:1;
1377  		uint64_t prt_psb7:1;
1378  		uint64_t reserved_21_21:1;
1379  		uint64_t prt_psb:6;
1380  		uint64_t ncb_inb:2;
1381  		uint64_t prt_qcb:2;
1382  		uint64_t prt_qsb:3;
1383  		uint64_t prt_ctl:2;
1384  		uint64_t dat_dat:2;
1385  		uint64_t dat_ptr:4;
1386  #else
1387  		uint64_t dat_ptr:4;
1388  		uint64_t dat_dat:2;
1389  		uint64_t prt_ctl:2;
1390  		uint64_t prt_qsb:3;
1391  		uint64_t prt_qcb:2;
1392  		uint64_t ncb_inb:2;
1393  		uint64_t prt_psb:6;
1394  		uint64_t reserved_21_21:1;
1395  		uint64_t prt_psb7:1;
1396  		uint64_t prt_nxt:1;
1397  		uint64_t prt_chk:3;
1398  		uint64_t out_wif:1;
1399  		uint64_t out_sta:1;
1400  		uint64_t out_ctl:2;
1401  		uint64_t reserved_31_31:1;
1402  		uint64_t out_dat:1;
1403  		uint64_t iob:1;
1404  		uint64_t csr:1;
1405  		uint64_t crc:1;
1406  		uint64_t reserved_36_63:28;
1407  #endif
1408  	} cn68xx;
1409  	struct cvmx_pko_reg_bist_result_cn68xxp1 {
1410  #ifdef __BIG_ENDIAN_BITFIELD
1411  		uint64_t reserved_35_63:29;
1412  		uint64_t csr:1;
1413  		uint64_t iob:1;
1414  		uint64_t out_dat:1;
1415  		uint64_t reserved_31_31:1;
1416  		uint64_t out_ctl:2;
1417  		uint64_t out_sta:1;
1418  		uint64_t out_wif:1;
1419  		uint64_t prt_chk:3;
1420  		uint64_t prt_nxt:1;
1421  		uint64_t prt_psb7:1;
1422  		uint64_t reserved_21_21:1;
1423  		uint64_t prt_psb:6;
1424  		uint64_t ncb_inb:2;
1425  		uint64_t prt_qcb:2;
1426  		uint64_t prt_qsb:3;
1427  		uint64_t prt_ctl:2;
1428  		uint64_t dat_dat:2;
1429  		uint64_t dat_ptr:4;
1430  #else
1431  		uint64_t dat_ptr:4;
1432  		uint64_t dat_dat:2;
1433  		uint64_t prt_ctl:2;
1434  		uint64_t prt_qsb:3;
1435  		uint64_t prt_qcb:2;
1436  		uint64_t ncb_inb:2;
1437  		uint64_t prt_psb:6;
1438  		uint64_t reserved_21_21:1;
1439  		uint64_t prt_psb7:1;
1440  		uint64_t prt_nxt:1;
1441  		uint64_t prt_chk:3;
1442  		uint64_t out_wif:1;
1443  		uint64_t out_sta:1;
1444  		uint64_t out_ctl:2;
1445  		uint64_t reserved_31_31:1;
1446  		uint64_t out_dat:1;
1447  		uint64_t iob:1;
1448  		uint64_t csr:1;
1449  		uint64_t reserved_35_63:29;
1450  #endif
1451  	} cn68xxp1;
1452  };
1453  
1454  union cvmx_pko_reg_cmd_buf {
1455  	uint64_t u64;
1456  	struct cvmx_pko_reg_cmd_buf_s {
1457  #ifdef __BIG_ENDIAN_BITFIELD
1458  		uint64_t reserved_23_63:41;
1459  		uint64_t pool:3;
1460  		uint64_t reserved_13_19:7;
1461  		uint64_t size:13;
1462  #else
1463  		uint64_t size:13;
1464  		uint64_t reserved_13_19:7;
1465  		uint64_t pool:3;
1466  		uint64_t reserved_23_63:41;
1467  #endif
1468  	} s;
1469  };
1470  
1471  union cvmx_pko_reg_crc_ctlx {
1472  	uint64_t u64;
1473  	struct cvmx_pko_reg_crc_ctlx_s {
1474  #ifdef __BIG_ENDIAN_BITFIELD
1475  		uint64_t reserved_2_63:62;
1476  		uint64_t invres:1;
1477  		uint64_t refin:1;
1478  #else
1479  		uint64_t refin:1;
1480  		uint64_t invres:1;
1481  		uint64_t reserved_2_63:62;
1482  #endif
1483  	} s;
1484  };
1485  
1486  union cvmx_pko_reg_crc_enable {
1487  	uint64_t u64;
1488  	struct cvmx_pko_reg_crc_enable_s {
1489  #ifdef __BIG_ENDIAN_BITFIELD
1490  		uint64_t reserved_32_63:32;
1491  		uint64_t enable:32;
1492  #else
1493  		uint64_t enable:32;
1494  		uint64_t reserved_32_63:32;
1495  #endif
1496  	} s;
1497  };
1498  
1499  union cvmx_pko_reg_crc_ivx {
1500  	uint64_t u64;
1501  	struct cvmx_pko_reg_crc_ivx_s {
1502  #ifdef __BIG_ENDIAN_BITFIELD
1503  		uint64_t reserved_32_63:32;
1504  		uint64_t iv:32;
1505  #else
1506  		uint64_t iv:32;
1507  		uint64_t reserved_32_63:32;
1508  #endif
1509  	} s;
1510  };
1511  
1512  union cvmx_pko_reg_debug0 {
1513  	uint64_t u64;
1514  	struct cvmx_pko_reg_debug0_s {
1515  #ifdef __BIG_ENDIAN_BITFIELD
1516  		uint64_t asserts:64;
1517  #else
1518  		uint64_t asserts:64;
1519  #endif
1520  	} s;
1521  	struct cvmx_pko_reg_debug0_cn30xx {
1522  #ifdef __BIG_ENDIAN_BITFIELD
1523  		uint64_t reserved_17_63:47;
1524  		uint64_t asserts:17;
1525  #else
1526  		uint64_t asserts:17;
1527  		uint64_t reserved_17_63:47;
1528  #endif
1529  	} cn30xx;
1530  };
1531  
1532  union cvmx_pko_reg_debug1 {
1533  	uint64_t u64;
1534  	struct cvmx_pko_reg_debug1_s {
1535  #ifdef __BIG_ENDIAN_BITFIELD
1536  		uint64_t asserts:64;
1537  #else
1538  		uint64_t asserts:64;
1539  #endif
1540  	} s;
1541  };
1542  
1543  union cvmx_pko_reg_debug2 {
1544  	uint64_t u64;
1545  	struct cvmx_pko_reg_debug2_s {
1546  #ifdef __BIG_ENDIAN_BITFIELD
1547  		uint64_t asserts:64;
1548  #else
1549  		uint64_t asserts:64;
1550  #endif
1551  	} s;
1552  };
1553  
1554  union cvmx_pko_reg_debug3 {
1555  	uint64_t u64;
1556  	struct cvmx_pko_reg_debug3_s {
1557  #ifdef __BIG_ENDIAN_BITFIELD
1558  		uint64_t asserts:64;
1559  #else
1560  		uint64_t asserts:64;
1561  #endif
1562  	} s;
1563  };
1564  
1565  union cvmx_pko_reg_debug4 {
1566  	uint64_t u64;
1567  	struct cvmx_pko_reg_debug4_s {
1568  #ifdef __BIG_ENDIAN_BITFIELD
1569  		uint64_t asserts:64;
1570  #else
1571  		uint64_t asserts:64;
1572  #endif
1573  	} s;
1574  };
1575  
1576  union cvmx_pko_reg_engine_inflight {
1577  	uint64_t u64;
1578  	struct cvmx_pko_reg_engine_inflight_s {
1579  #ifdef __BIG_ENDIAN_BITFIELD
1580  		uint64_t engine15:4;
1581  		uint64_t engine14:4;
1582  		uint64_t engine13:4;
1583  		uint64_t engine12:4;
1584  		uint64_t engine11:4;
1585  		uint64_t engine10:4;
1586  		uint64_t engine9:4;
1587  		uint64_t engine8:4;
1588  		uint64_t engine7:4;
1589  		uint64_t engine6:4;
1590  		uint64_t engine5:4;
1591  		uint64_t engine4:4;
1592  		uint64_t engine3:4;
1593  		uint64_t engine2:4;
1594  		uint64_t engine1:4;
1595  		uint64_t engine0:4;
1596  #else
1597  		uint64_t engine0:4;
1598  		uint64_t engine1:4;
1599  		uint64_t engine2:4;
1600  		uint64_t engine3:4;
1601  		uint64_t engine4:4;
1602  		uint64_t engine5:4;
1603  		uint64_t engine6:4;
1604  		uint64_t engine7:4;
1605  		uint64_t engine8:4;
1606  		uint64_t engine9:4;
1607  		uint64_t engine10:4;
1608  		uint64_t engine11:4;
1609  		uint64_t engine12:4;
1610  		uint64_t engine13:4;
1611  		uint64_t engine14:4;
1612  		uint64_t engine15:4;
1613  #endif
1614  	} s;
1615  	struct cvmx_pko_reg_engine_inflight_cn52xx {
1616  #ifdef __BIG_ENDIAN_BITFIELD
1617  		uint64_t reserved_40_63:24;
1618  		uint64_t engine9:4;
1619  		uint64_t engine8:4;
1620  		uint64_t engine7:4;
1621  		uint64_t engine6:4;
1622  		uint64_t engine5:4;
1623  		uint64_t engine4:4;
1624  		uint64_t engine3:4;
1625  		uint64_t engine2:4;
1626  		uint64_t engine1:4;
1627  		uint64_t engine0:4;
1628  #else
1629  		uint64_t engine0:4;
1630  		uint64_t engine1:4;
1631  		uint64_t engine2:4;
1632  		uint64_t engine3:4;
1633  		uint64_t engine4:4;
1634  		uint64_t engine5:4;
1635  		uint64_t engine6:4;
1636  		uint64_t engine7:4;
1637  		uint64_t engine8:4;
1638  		uint64_t engine9:4;
1639  		uint64_t reserved_40_63:24;
1640  #endif
1641  	} cn52xx;
1642  	struct cvmx_pko_reg_engine_inflight_cn61xx {
1643  #ifdef __BIG_ENDIAN_BITFIELD
1644  		uint64_t reserved_56_63:8;
1645  		uint64_t engine13:4;
1646  		uint64_t engine12:4;
1647  		uint64_t engine11:4;
1648  		uint64_t engine10:4;
1649  		uint64_t engine9:4;
1650  		uint64_t engine8:4;
1651  		uint64_t engine7:4;
1652  		uint64_t engine6:4;
1653  		uint64_t engine5:4;
1654  		uint64_t engine4:4;
1655  		uint64_t engine3:4;
1656  		uint64_t engine2:4;
1657  		uint64_t engine1:4;
1658  		uint64_t engine0:4;
1659  #else
1660  		uint64_t engine0:4;
1661  		uint64_t engine1:4;
1662  		uint64_t engine2:4;
1663  		uint64_t engine3:4;
1664  		uint64_t engine4:4;
1665  		uint64_t engine5:4;
1666  		uint64_t engine6:4;
1667  		uint64_t engine7:4;
1668  		uint64_t engine8:4;
1669  		uint64_t engine9:4;
1670  		uint64_t engine10:4;
1671  		uint64_t engine11:4;
1672  		uint64_t engine12:4;
1673  		uint64_t engine13:4;
1674  		uint64_t reserved_56_63:8;
1675  #endif
1676  	} cn61xx;
1677  	struct cvmx_pko_reg_engine_inflight_cn63xx {
1678  #ifdef __BIG_ENDIAN_BITFIELD
1679  		uint64_t reserved_48_63:16;
1680  		uint64_t engine11:4;
1681  		uint64_t engine10:4;
1682  		uint64_t engine9:4;
1683  		uint64_t engine8:4;
1684  		uint64_t engine7:4;
1685  		uint64_t engine6:4;
1686  		uint64_t engine5:4;
1687  		uint64_t engine4:4;
1688  		uint64_t engine3:4;
1689  		uint64_t engine2:4;
1690  		uint64_t engine1:4;
1691  		uint64_t engine0:4;
1692  #else
1693  		uint64_t engine0:4;
1694  		uint64_t engine1:4;
1695  		uint64_t engine2:4;
1696  		uint64_t engine3:4;
1697  		uint64_t engine4:4;
1698  		uint64_t engine5:4;
1699  		uint64_t engine6:4;
1700  		uint64_t engine7:4;
1701  		uint64_t engine8:4;
1702  		uint64_t engine9:4;
1703  		uint64_t engine10:4;
1704  		uint64_t engine11:4;
1705  		uint64_t reserved_48_63:16;
1706  #endif
1707  	} cn63xx;
1708  };
1709  
1710  union cvmx_pko_reg_engine_inflight1 {
1711  	uint64_t u64;
1712  	struct cvmx_pko_reg_engine_inflight1_s {
1713  #ifdef __BIG_ENDIAN_BITFIELD
1714  		uint64_t reserved_16_63:48;
1715  		uint64_t engine19:4;
1716  		uint64_t engine18:4;
1717  		uint64_t engine17:4;
1718  		uint64_t engine16:4;
1719  #else
1720  		uint64_t engine16:4;
1721  		uint64_t engine17:4;
1722  		uint64_t engine18:4;
1723  		uint64_t engine19:4;
1724  		uint64_t reserved_16_63:48;
1725  #endif
1726  	} s;
1727  };
1728  
1729  union cvmx_pko_reg_engine_storagex {
1730  	uint64_t u64;
1731  	struct cvmx_pko_reg_engine_storagex_s {
1732  #ifdef __BIG_ENDIAN_BITFIELD
1733  		uint64_t engine15:4;
1734  		uint64_t engine14:4;
1735  		uint64_t engine13:4;
1736  		uint64_t engine12:4;
1737  		uint64_t engine11:4;
1738  		uint64_t engine10:4;
1739  		uint64_t engine9:4;
1740  		uint64_t engine8:4;
1741  		uint64_t engine7:4;
1742  		uint64_t engine6:4;
1743  		uint64_t engine5:4;
1744  		uint64_t engine4:4;
1745  		uint64_t engine3:4;
1746  		uint64_t engine2:4;
1747  		uint64_t engine1:4;
1748  		uint64_t engine0:4;
1749  #else
1750  		uint64_t engine0:4;
1751  		uint64_t engine1:4;
1752  		uint64_t engine2:4;
1753  		uint64_t engine3:4;
1754  		uint64_t engine4:4;
1755  		uint64_t engine5:4;
1756  		uint64_t engine6:4;
1757  		uint64_t engine7:4;
1758  		uint64_t engine8:4;
1759  		uint64_t engine9:4;
1760  		uint64_t engine10:4;
1761  		uint64_t engine11:4;
1762  		uint64_t engine12:4;
1763  		uint64_t engine13:4;
1764  		uint64_t engine14:4;
1765  		uint64_t engine15:4;
1766  #endif
1767  	} s;
1768  };
1769  
1770  union cvmx_pko_reg_engine_thresh {
1771  	uint64_t u64;
1772  	struct cvmx_pko_reg_engine_thresh_s {
1773  #ifdef __BIG_ENDIAN_BITFIELD
1774  		uint64_t reserved_20_63:44;
1775  		uint64_t mask:20;
1776  #else
1777  		uint64_t mask:20;
1778  		uint64_t reserved_20_63:44;
1779  #endif
1780  	} s;
1781  	struct cvmx_pko_reg_engine_thresh_cn52xx {
1782  #ifdef __BIG_ENDIAN_BITFIELD
1783  		uint64_t reserved_10_63:54;
1784  		uint64_t mask:10;
1785  #else
1786  		uint64_t mask:10;
1787  		uint64_t reserved_10_63:54;
1788  #endif
1789  	} cn52xx;
1790  	struct cvmx_pko_reg_engine_thresh_cn61xx {
1791  #ifdef __BIG_ENDIAN_BITFIELD
1792  		uint64_t reserved_14_63:50;
1793  		uint64_t mask:14;
1794  #else
1795  		uint64_t mask:14;
1796  		uint64_t reserved_14_63:50;
1797  #endif
1798  	} cn61xx;
1799  	struct cvmx_pko_reg_engine_thresh_cn63xx {
1800  #ifdef __BIG_ENDIAN_BITFIELD
1801  		uint64_t reserved_12_63:52;
1802  		uint64_t mask:12;
1803  #else
1804  		uint64_t mask:12;
1805  		uint64_t reserved_12_63:52;
1806  #endif
1807  	} cn63xx;
1808  };
1809  
1810  union cvmx_pko_reg_error {
1811  	uint64_t u64;
1812  	struct cvmx_pko_reg_error_s {
1813  #ifdef __BIG_ENDIAN_BITFIELD
1814  		uint64_t reserved_4_63:60;
1815  		uint64_t loopback:1;
1816  		uint64_t currzero:1;
1817  		uint64_t doorbell:1;
1818  		uint64_t parity:1;
1819  #else
1820  		uint64_t parity:1;
1821  		uint64_t doorbell:1;
1822  		uint64_t currzero:1;
1823  		uint64_t loopback:1;
1824  		uint64_t reserved_4_63:60;
1825  #endif
1826  	} s;
1827  	struct cvmx_pko_reg_error_cn30xx {
1828  #ifdef __BIG_ENDIAN_BITFIELD
1829  		uint64_t reserved_2_63:62;
1830  		uint64_t doorbell:1;
1831  		uint64_t parity:1;
1832  #else
1833  		uint64_t parity:1;
1834  		uint64_t doorbell:1;
1835  		uint64_t reserved_2_63:62;
1836  #endif
1837  	} cn30xx;
1838  	struct cvmx_pko_reg_error_cn50xx {
1839  #ifdef __BIG_ENDIAN_BITFIELD
1840  		uint64_t reserved_3_63:61;
1841  		uint64_t currzero:1;
1842  		uint64_t doorbell:1;
1843  		uint64_t parity:1;
1844  #else
1845  		uint64_t parity:1;
1846  		uint64_t doorbell:1;
1847  		uint64_t currzero:1;
1848  		uint64_t reserved_3_63:61;
1849  #endif
1850  	} cn50xx;
1851  };
1852  
1853  union cvmx_pko_reg_flags {
1854  	uint64_t u64;
1855  	struct cvmx_pko_reg_flags_s {
1856  #ifdef __BIG_ENDIAN_BITFIELD
1857  		uint64_t reserved_9_63:55;
1858  		uint64_t dis_perf3:1;
1859  		uint64_t dis_perf2:1;
1860  		uint64_t dis_perf1:1;
1861  		uint64_t dis_perf0:1;
1862  		uint64_t ena_throttle:1;
1863  		uint64_t reset:1;
1864  		uint64_t store_be:1;
1865  		uint64_t ena_dwb:1;
1866  		uint64_t ena_pko:1;
1867  #else
1868  		uint64_t ena_pko:1;
1869  		uint64_t ena_dwb:1;
1870  		uint64_t store_be:1;
1871  		uint64_t reset:1;
1872  		uint64_t ena_throttle:1;
1873  		uint64_t dis_perf0:1;
1874  		uint64_t dis_perf1:1;
1875  		uint64_t dis_perf2:1;
1876  		uint64_t dis_perf3:1;
1877  		uint64_t reserved_9_63:55;
1878  #endif
1879  	} s;
1880  	struct cvmx_pko_reg_flags_cn30xx {
1881  #ifdef __BIG_ENDIAN_BITFIELD
1882  		uint64_t reserved_4_63:60;
1883  		uint64_t reset:1;
1884  		uint64_t store_be:1;
1885  		uint64_t ena_dwb:1;
1886  		uint64_t ena_pko:1;
1887  #else
1888  		uint64_t ena_pko:1;
1889  		uint64_t ena_dwb:1;
1890  		uint64_t store_be:1;
1891  		uint64_t reset:1;
1892  		uint64_t reserved_4_63:60;
1893  #endif
1894  	} cn30xx;
1895  	struct cvmx_pko_reg_flags_cn61xx {
1896  #ifdef __BIG_ENDIAN_BITFIELD
1897  		uint64_t reserved_9_63:55;
1898  		uint64_t dis_perf3:1;
1899  		uint64_t dis_perf2:1;
1900  		uint64_t reserved_4_6:3;
1901  		uint64_t reset:1;
1902  		uint64_t store_be:1;
1903  		uint64_t ena_dwb:1;
1904  		uint64_t ena_pko:1;
1905  #else
1906  		uint64_t ena_pko:1;
1907  		uint64_t ena_dwb:1;
1908  		uint64_t store_be:1;
1909  		uint64_t reset:1;
1910  		uint64_t reserved_4_6:3;
1911  		uint64_t dis_perf2:1;
1912  		uint64_t dis_perf3:1;
1913  		uint64_t reserved_9_63:55;
1914  #endif
1915  	} cn61xx;
1916  	struct cvmx_pko_reg_flags_cn68xxp1 {
1917  #ifdef __BIG_ENDIAN_BITFIELD
1918  		uint64_t reserved_7_63:57;
1919  		uint64_t dis_perf1:1;
1920  		uint64_t dis_perf0:1;
1921  		uint64_t ena_throttle:1;
1922  		uint64_t reset:1;
1923  		uint64_t store_be:1;
1924  		uint64_t ena_dwb:1;
1925  		uint64_t ena_pko:1;
1926  #else
1927  		uint64_t ena_pko:1;
1928  		uint64_t ena_dwb:1;
1929  		uint64_t store_be:1;
1930  		uint64_t reset:1;
1931  		uint64_t ena_throttle:1;
1932  		uint64_t dis_perf0:1;
1933  		uint64_t dis_perf1:1;
1934  		uint64_t reserved_7_63:57;
1935  #endif
1936  	} cn68xxp1;
1937  };
1938  
1939  union cvmx_pko_reg_gmx_port_mode {
1940  	uint64_t u64;
1941  	struct cvmx_pko_reg_gmx_port_mode_s {
1942  #ifdef __BIG_ENDIAN_BITFIELD
1943  		uint64_t reserved_6_63:58;
1944  		uint64_t mode1:3;
1945  		uint64_t mode0:3;
1946  #else
1947  		uint64_t mode0:3;
1948  		uint64_t mode1:3;
1949  		uint64_t reserved_6_63:58;
1950  #endif
1951  	} s;
1952  };
1953  
1954  union cvmx_pko_reg_int_mask {
1955  	uint64_t u64;
1956  	struct cvmx_pko_reg_int_mask_s {
1957  #ifdef __BIG_ENDIAN_BITFIELD
1958  		uint64_t reserved_4_63:60;
1959  		uint64_t loopback:1;
1960  		uint64_t currzero:1;
1961  		uint64_t doorbell:1;
1962  		uint64_t parity:1;
1963  #else
1964  		uint64_t parity:1;
1965  		uint64_t doorbell:1;
1966  		uint64_t currzero:1;
1967  		uint64_t loopback:1;
1968  		uint64_t reserved_4_63:60;
1969  #endif
1970  	} s;
1971  	struct cvmx_pko_reg_int_mask_cn30xx {
1972  #ifdef __BIG_ENDIAN_BITFIELD
1973  		uint64_t reserved_2_63:62;
1974  		uint64_t doorbell:1;
1975  		uint64_t parity:1;
1976  #else
1977  		uint64_t parity:1;
1978  		uint64_t doorbell:1;
1979  		uint64_t reserved_2_63:62;
1980  #endif
1981  	} cn30xx;
1982  	struct cvmx_pko_reg_int_mask_cn50xx {
1983  #ifdef __BIG_ENDIAN_BITFIELD
1984  		uint64_t reserved_3_63:61;
1985  		uint64_t currzero:1;
1986  		uint64_t doorbell:1;
1987  		uint64_t parity:1;
1988  #else
1989  		uint64_t parity:1;
1990  		uint64_t doorbell:1;
1991  		uint64_t currzero:1;
1992  		uint64_t reserved_3_63:61;
1993  #endif
1994  	} cn50xx;
1995  };
1996  
1997  union cvmx_pko_reg_loopback_bpid {
1998  	uint64_t u64;
1999  	struct cvmx_pko_reg_loopback_bpid_s {
2000  #ifdef __BIG_ENDIAN_BITFIELD
2001  		uint64_t reserved_59_63:5;
2002  		uint64_t bpid7:6;
2003  		uint64_t reserved_52_52:1;
2004  		uint64_t bpid6:6;
2005  		uint64_t reserved_45_45:1;
2006  		uint64_t bpid5:6;
2007  		uint64_t reserved_38_38:1;
2008  		uint64_t bpid4:6;
2009  		uint64_t reserved_31_31:1;
2010  		uint64_t bpid3:6;
2011  		uint64_t reserved_24_24:1;
2012  		uint64_t bpid2:6;
2013  		uint64_t reserved_17_17:1;
2014  		uint64_t bpid1:6;
2015  		uint64_t reserved_10_10:1;
2016  		uint64_t bpid0:6;
2017  		uint64_t reserved_0_3:4;
2018  #else
2019  		uint64_t reserved_0_3:4;
2020  		uint64_t bpid0:6;
2021  		uint64_t reserved_10_10:1;
2022  		uint64_t bpid1:6;
2023  		uint64_t reserved_17_17:1;
2024  		uint64_t bpid2:6;
2025  		uint64_t reserved_24_24:1;
2026  		uint64_t bpid3:6;
2027  		uint64_t reserved_31_31:1;
2028  		uint64_t bpid4:6;
2029  		uint64_t reserved_38_38:1;
2030  		uint64_t bpid5:6;
2031  		uint64_t reserved_45_45:1;
2032  		uint64_t bpid6:6;
2033  		uint64_t reserved_52_52:1;
2034  		uint64_t bpid7:6;
2035  		uint64_t reserved_59_63:5;
2036  #endif
2037  	} s;
2038  };
2039  
2040  union cvmx_pko_reg_loopback_pkind {
2041  	uint64_t u64;
2042  	struct cvmx_pko_reg_loopback_pkind_s {
2043  #ifdef __BIG_ENDIAN_BITFIELD
2044  		uint64_t reserved_59_63:5;
2045  		uint64_t pkind7:6;
2046  		uint64_t reserved_52_52:1;
2047  		uint64_t pkind6:6;
2048  		uint64_t reserved_45_45:1;
2049  		uint64_t pkind5:6;
2050  		uint64_t reserved_38_38:1;
2051  		uint64_t pkind4:6;
2052  		uint64_t reserved_31_31:1;
2053  		uint64_t pkind3:6;
2054  		uint64_t reserved_24_24:1;
2055  		uint64_t pkind2:6;
2056  		uint64_t reserved_17_17:1;
2057  		uint64_t pkind1:6;
2058  		uint64_t reserved_10_10:1;
2059  		uint64_t pkind0:6;
2060  		uint64_t num_ports:4;
2061  #else
2062  		uint64_t num_ports:4;
2063  		uint64_t pkind0:6;
2064  		uint64_t reserved_10_10:1;
2065  		uint64_t pkind1:6;
2066  		uint64_t reserved_17_17:1;
2067  		uint64_t pkind2:6;
2068  		uint64_t reserved_24_24:1;
2069  		uint64_t pkind3:6;
2070  		uint64_t reserved_31_31:1;
2071  		uint64_t pkind4:6;
2072  		uint64_t reserved_38_38:1;
2073  		uint64_t pkind5:6;
2074  		uint64_t reserved_45_45:1;
2075  		uint64_t pkind6:6;
2076  		uint64_t reserved_52_52:1;
2077  		uint64_t pkind7:6;
2078  		uint64_t reserved_59_63:5;
2079  #endif
2080  	} s;
2081  };
2082  
2083  union cvmx_pko_reg_min_pkt {
2084  	uint64_t u64;
2085  	struct cvmx_pko_reg_min_pkt_s {
2086  #ifdef __BIG_ENDIAN_BITFIELD
2087  		uint64_t size7:8;
2088  		uint64_t size6:8;
2089  		uint64_t size5:8;
2090  		uint64_t size4:8;
2091  		uint64_t size3:8;
2092  		uint64_t size2:8;
2093  		uint64_t size1:8;
2094  		uint64_t size0:8;
2095  #else
2096  		uint64_t size0:8;
2097  		uint64_t size1:8;
2098  		uint64_t size2:8;
2099  		uint64_t size3:8;
2100  		uint64_t size4:8;
2101  		uint64_t size5:8;
2102  		uint64_t size6:8;
2103  		uint64_t size7:8;
2104  #endif
2105  	} s;
2106  };
2107  
2108  union cvmx_pko_reg_preempt {
2109  	uint64_t u64;
2110  	struct cvmx_pko_reg_preempt_s {
2111  #ifdef __BIG_ENDIAN_BITFIELD
2112  		uint64_t reserved_16_63:48;
2113  		uint64_t min_size:16;
2114  #else
2115  		uint64_t min_size:16;
2116  		uint64_t reserved_16_63:48;
2117  #endif
2118  	} s;
2119  };
2120  
2121  union cvmx_pko_reg_queue_mode {
2122  	uint64_t u64;
2123  	struct cvmx_pko_reg_queue_mode_s {
2124  #ifdef __BIG_ENDIAN_BITFIELD
2125  		uint64_t reserved_2_63:62;
2126  		uint64_t mode:2;
2127  #else
2128  		uint64_t mode:2;
2129  		uint64_t reserved_2_63:62;
2130  #endif
2131  	} s;
2132  };
2133  
2134  union cvmx_pko_reg_queue_preempt {
2135  	uint64_t u64;
2136  	struct cvmx_pko_reg_queue_preempt_s {
2137  #ifdef __BIG_ENDIAN_BITFIELD
2138  		uint64_t reserved_2_63:62;
2139  		uint64_t preemptee:1;
2140  		uint64_t preempter:1;
2141  #else
2142  		uint64_t preempter:1;
2143  		uint64_t preemptee:1;
2144  		uint64_t reserved_2_63:62;
2145  #endif
2146  	} s;
2147  };
2148  
2149  union cvmx_pko_reg_queue_ptrs1 {
2150  	uint64_t u64;
2151  	struct cvmx_pko_reg_queue_ptrs1_s {
2152  #ifdef __BIG_ENDIAN_BITFIELD
2153  		uint64_t reserved_2_63:62;
2154  		uint64_t idx3:1;
2155  		uint64_t qid7:1;
2156  #else
2157  		uint64_t qid7:1;
2158  		uint64_t idx3:1;
2159  		uint64_t reserved_2_63:62;
2160  #endif
2161  	} s;
2162  };
2163  
2164  union cvmx_pko_reg_read_idx {
2165  	uint64_t u64;
2166  	struct cvmx_pko_reg_read_idx_s {
2167  #ifdef __BIG_ENDIAN_BITFIELD
2168  		uint64_t reserved_16_63:48;
2169  		uint64_t inc:8;
2170  		uint64_t index:8;
2171  #else
2172  		uint64_t index:8;
2173  		uint64_t inc:8;
2174  		uint64_t reserved_16_63:48;
2175  #endif
2176  	} s;
2177  };
2178  
2179  union cvmx_pko_reg_throttle {
2180  	uint64_t u64;
2181  	struct cvmx_pko_reg_throttle_s {
2182  #ifdef __BIG_ENDIAN_BITFIELD
2183  		uint64_t reserved_32_63:32;
2184  		uint64_t int_mask:32;
2185  #else
2186  		uint64_t int_mask:32;
2187  		uint64_t reserved_32_63:32;
2188  #endif
2189  	} s;
2190  };
2191  
2192  union cvmx_pko_reg_timestamp {
2193  	uint64_t u64;
2194  	struct cvmx_pko_reg_timestamp_s {
2195  #ifdef __BIG_ENDIAN_BITFIELD
2196  		uint64_t reserved_4_63:60;
2197  		uint64_t wqe_word:4;
2198  #else
2199  		uint64_t wqe_word:4;
2200  		uint64_t reserved_4_63:60;
2201  #endif
2202  	} s;
2203  };
2204  
2205  #endif
2206