arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / mips / include / asm / octeon / cvmx-pko-defs.h
1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: support@caviumnetworks.com
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (c) 2003-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