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
89union 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
102union 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
115union 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
132union 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
151union 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
188union 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
243union 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
281union 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
327union 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
354union 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
373union 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
406union 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
496union 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
612union 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
704union 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
762union 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
890union 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
954union 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
989union 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
1010union 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
1039union 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
1058union 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
1081union 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
1100union 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
1134union 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
1164union 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
1191union 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
1210union 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
1231union 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
1252union 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
1454union 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
1471union 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
1486union 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
1499union 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
1512union 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
1532union 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
1543union 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
1554union 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
1565union 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
1576union 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
1710union 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
1729union 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
1770union 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
1810union 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
1853union 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
1939union 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
1954union 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
1997union 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
2040union 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
2083union 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
2108union 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
2121union 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
2134union 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
2149union 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
2164union 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
2179union 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
2192union 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