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_POW_DEFS_H__
29 #define __CVMX_POW_DEFS_H__
30 
31 #define CVMX_POW_BIST_STAT (CVMX_ADD_IO_SEG(0x00016700000003F8ull))
32 #define CVMX_POW_DS_PC (CVMX_ADD_IO_SEG(0x0001670000000398ull))
33 #define CVMX_POW_ECC_ERR (CVMX_ADD_IO_SEG(0x0001670000000218ull))
34 #define CVMX_POW_INT_CTL (CVMX_ADD_IO_SEG(0x0001670000000220ull))
35 #define CVMX_POW_IQ_CNTX(offset) (CVMX_ADD_IO_SEG(0x0001670000000340ull) + ((offset) & 7) * 8)
36 #define CVMX_POW_IQ_COM_CNT (CVMX_ADD_IO_SEG(0x0001670000000388ull))
37 #define CVMX_POW_IQ_INT (CVMX_ADD_IO_SEG(0x0001670000000238ull))
38 #define CVMX_POW_IQ_INT_EN (CVMX_ADD_IO_SEG(0x0001670000000240ull))
39 #define CVMX_POW_IQ_THRX(offset) (CVMX_ADD_IO_SEG(0x00016700000003A0ull) + ((offset) & 7) * 8)
40 #define CVMX_POW_NOS_CNT (CVMX_ADD_IO_SEG(0x0001670000000228ull))
41 #define CVMX_POW_NW_TIM (CVMX_ADD_IO_SEG(0x0001670000000210ull))
42 #define CVMX_POW_PF_RST_MSK (CVMX_ADD_IO_SEG(0x0001670000000230ull))
43 #define CVMX_POW_PP_GRP_MSKX(offset) (CVMX_ADD_IO_SEG(0x0001670000000000ull) + ((offset) & 15) * 8)
44 #define CVMX_POW_QOS_RNDX(offset) (CVMX_ADD_IO_SEG(0x00016700000001C0ull) + ((offset) & 7) * 8)
45 #define CVMX_POW_QOS_THRX(offset) (CVMX_ADD_IO_SEG(0x0001670000000180ull) + ((offset) & 7) * 8)
46 #define CVMX_POW_TS_PC (CVMX_ADD_IO_SEG(0x0001670000000390ull))
47 #define CVMX_POW_WA_COM_PC (CVMX_ADD_IO_SEG(0x0001670000000380ull))
48 #define CVMX_POW_WA_PCX(offset) (CVMX_ADD_IO_SEG(0x0001670000000300ull) + ((offset) & 7) * 8)
49 #define CVMX_POW_WQ_INT (CVMX_ADD_IO_SEG(0x0001670000000200ull))
50 #define CVMX_POW_WQ_INT_CNTX(offset) (CVMX_ADD_IO_SEG(0x0001670000000100ull) + ((offset) & 15) * 8)
51 #define CVMX_POW_WQ_INT_PC (CVMX_ADD_IO_SEG(0x0001670000000208ull))
52 #define CVMX_POW_WQ_INT_THRX(offset) (CVMX_ADD_IO_SEG(0x0001670000000080ull) + ((offset) & 15) * 8)
53 #define CVMX_POW_WS_PCX(offset) (CVMX_ADD_IO_SEG(0x0001670000000280ull) + ((offset) & 15) * 8)
54 
55 #define CVMX_SSO_WQ_INT (CVMX_ADD_IO_SEG(0x0001670000001000ull))
56 #define CVMX_SSO_WQ_IQ_DIS (CVMX_ADD_IO_SEG(0x0001670000001010ull))
57 #define CVMX_SSO_WQ_INT_PC (CVMX_ADD_IO_SEG(0x0001670000001020ull))
58 #define CVMX_SSO_PPX_GRP_MSK(offset) (CVMX_ADD_IO_SEG(0x0001670000006000ull) + ((offset) & 31) * 8)
59 #define CVMX_SSO_WQ_INT_THRX(offset) (CVMX_ADD_IO_SEG(0x0001670000007000ull) + ((offset) & 63) * 8)
60 
61 union cvmx_pow_bist_stat {
62 	uint64_t u64;
63 	struct cvmx_pow_bist_stat_s {
64 #ifdef __BIG_ENDIAN_BITFIELD
65 		uint64_t reserved_32_63:32;
66 		uint64_t pp:16;
67 		uint64_t reserved_0_15:16;
68 #else
69 		uint64_t reserved_0_15:16;
70 		uint64_t pp:16;
71 		uint64_t reserved_32_63:32;
72 #endif
73 	} s;
74 	struct cvmx_pow_bist_stat_cn30xx {
75 #ifdef __BIG_ENDIAN_BITFIELD
76 		uint64_t reserved_17_63:47;
77 		uint64_t pp:1;
78 		uint64_t reserved_9_15:7;
79 		uint64_t cam:1;
80 		uint64_t nbt1:1;
81 		uint64_t nbt0:1;
82 		uint64_t index:1;
83 		uint64_t fidx:1;
84 		uint64_t nbr1:1;
85 		uint64_t nbr0:1;
86 		uint64_t pend:1;
87 		uint64_t adr:1;
88 #else
89 		uint64_t adr:1;
90 		uint64_t pend:1;
91 		uint64_t nbr0:1;
92 		uint64_t nbr1:1;
93 		uint64_t fidx:1;
94 		uint64_t index:1;
95 		uint64_t nbt0:1;
96 		uint64_t nbt1:1;
97 		uint64_t cam:1;
98 		uint64_t reserved_9_15:7;
99 		uint64_t pp:1;
100 		uint64_t reserved_17_63:47;
101 #endif
102 	} cn30xx;
103 	struct cvmx_pow_bist_stat_cn31xx {
104 #ifdef __BIG_ENDIAN_BITFIELD
105 		uint64_t reserved_18_63:46;
106 		uint64_t pp:2;
107 		uint64_t reserved_9_15:7;
108 		uint64_t cam:1;
109 		uint64_t nbt1:1;
110 		uint64_t nbt0:1;
111 		uint64_t index:1;
112 		uint64_t fidx:1;
113 		uint64_t nbr1:1;
114 		uint64_t nbr0:1;
115 		uint64_t pend:1;
116 		uint64_t adr:1;
117 #else
118 		uint64_t adr:1;
119 		uint64_t pend:1;
120 		uint64_t nbr0:1;
121 		uint64_t nbr1:1;
122 		uint64_t fidx:1;
123 		uint64_t index:1;
124 		uint64_t nbt0:1;
125 		uint64_t nbt1:1;
126 		uint64_t cam:1;
127 		uint64_t reserved_9_15:7;
128 		uint64_t pp:2;
129 		uint64_t reserved_18_63:46;
130 #endif
131 	} cn31xx;
132 	struct cvmx_pow_bist_stat_cn38xx {
133 #ifdef __BIG_ENDIAN_BITFIELD
134 		uint64_t reserved_32_63:32;
135 		uint64_t pp:16;
136 		uint64_t reserved_10_15:6;
137 		uint64_t cam:1;
138 		uint64_t nbt:1;
139 		uint64_t index:1;
140 		uint64_t fidx:1;
141 		uint64_t nbr1:1;
142 		uint64_t nbr0:1;
143 		uint64_t pend1:1;
144 		uint64_t pend0:1;
145 		uint64_t adr1:1;
146 		uint64_t adr0:1;
147 #else
148 		uint64_t adr0:1;
149 		uint64_t adr1:1;
150 		uint64_t pend0:1;
151 		uint64_t pend1:1;
152 		uint64_t nbr0:1;
153 		uint64_t nbr1:1;
154 		uint64_t fidx:1;
155 		uint64_t index:1;
156 		uint64_t nbt:1;
157 		uint64_t cam:1;
158 		uint64_t reserved_10_15:6;
159 		uint64_t pp:16;
160 		uint64_t reserved_32_63:32;
161 #endif
162 	} cn38xx;
163 	struct cvmx_pow_bist_stat_cn52xx {
164 #ifdef __BIG_ENDIAN_BITFIELD
165 		uint64_t reserved_20_63:44;
166 		uint64_t pp:4;
167 		uint64_t reserved_9_15:7;
168 		uint64_t cam:1;
169 		uint64_t nbt1:1;
170 		uint64_t nbt0:1;
171 		uint64_t index:1;
172 		uint64_t fidx:1;
173 		uint64_t nbr1:1;
174 		uint64_t nbr0:1;
175 		uint64_t pend:1;
176 		uint64_t adr:1;
177 #else
178 		uint64_t adr:1;
179 		uint64_t pend:1;
180 		uint64_t nbr0:1;
181 		uint64_t nbr1:1;
182 		uint64_t fidx:1;
183 		uint64_t index:1;
184 		uint64_t nbt0:1;
185 		uint64_t nbt1:1;
186 		uint64_t cam:1;
187 		uint64_t reserved_9_15:7;
188 		uint64_t pp:4;
189 		uint64_t reserved_20_63:44;
190 #endif
191 	} cn52xx;
192 	struct cvmx_pow_bist_stat_cn56xx {
193 #ifdef __BIG_ENDIAN_BITFIELD
194 		uint64_t reserved_28_63:36;
195 		uint64_t pp:12;
196 		uint64_t reserved_10_15:6;
197 		uint64_t cam:1;
198 		uint64_t nbt:1;
199 		uint64_t index:1;
200 		uint64_t fidx:1;
201 		uint64_t nbr1:1;
202 		uint64_t nbr0:1;
203 		uint64_t pend1:1;
204 		uint64_t pend0:1;
205 		uint64_t adr1:1;
206 		uint64_t adr0:1;
207 #else
208 		uint64_t adr0:1;
209 		uint64_t adr1:1;
210 		uint64_t pend0:1;
211 		uint64_t pend1:1;
212 		uint64_t nbr0:1;
213 		uint64_t nbr1:1;
214 		uint64_t fidx:1;
215 		uint64_t index:1;
216 		uint64_t nbt:1;
217 		uint64_t cam:1;
218 		uint64_t reserved_10_15:6;
219 		uint64_t pp:12;
220 		uint64_t reserved_28_63:36;
221 #endif
222 	} cn56xx;
223 	struct cvmx_pow_bist_stat_cn61xx {
224 #ifdef __BIG_ENDIAN_BITFIELD
225 		uint64_t reserved_20_63:44;
226 		uint64_t pp:4;
227 		uint64_t reserved_12_15:4;
228 		uint64_t cam:1;
229 		uint64_t nbr:3;
230 		uint64_t nbt:4;
231 		uint64_t index:1;
232 		uint64_t fidx:1;
233 		uint64_t pend:1;
234 		uint64_t adr:1;
235 #else
236 		uint64_t adr:1;
237 		uint64_t pend:1;
238 		uint64_t fidx:1;
239 		uint64_t index:1;
240 		uint64_t nbt:4;
241 		uint64_t nbr:3;
242 		uint64_t cam:1;
243 		uint64_t reserved_12_15:4;
244 		uint64_t pp:4;
245 		uint64_t reserved_20_63:44;
246 #endif
247 	} cn61xx;
248 	struct cvmx_pow_bist_stat_cn63xx {
249 #ifdef __BIG_ENDIAN_BITFIELD
250 		uint64_t reserved_22_63:42;
251 		uint64_t pp:6;
252 		uint64_t reserved_12_15:4;
253 		uint64_t cam:1;
254 		uint64_t nbr:3;
255 		uint64_t nbt:4;
256 		uint64_t index:1;
257 		uint64_t fidx:1;
258 		uint64_t pend:1;
259 		uint64_t adr:1;
260 #else
261 		uint64_t adr:1;
262 		uint64_t pend:1;
263 		uint64_t fidx:1;
264 		uint64_t index:1;
265 		uint64_t nbt:4;
266 		uint64_t nbr:3;
267 		uint64_t cam:1;
268 		uint64_t reserved_12_15:4;
269 		uint64_t pp:6;
270 		uint64_t reserved_22_63:42;
271 #endif
272 	} cn63xx;
273 	struct cvmx_pow_bist_stat_cn66xx {
274 #ifdef __BIG_ENDIAN_BITFIELD
275 		uint64_t reserved_26_63:38;
276 		uint64_t pp:10;
277 		uint64_t reserved_12_15:4;
278 		uint64_t cam:1;
279 		uint64_t nbr:3;
280 		uint64_t nbt:4;
281 		uint64_t index:1;
282 		uint64_t fidx:1;
283 		uint64_t pend:1;
284 		uint64_t adr:1;
285 #else
286 		uint64_t adr:1;
287 		uint64_t pend:1;
288 		uint64_t fidx:1;
289 		uint64_t index:1;
290 		uint64_t nbt:4;
291 		uint64_t nbr:3;
292 		uint64_t cam:1;
293 		uint64_t reserved_12_15:4;
294 		uint64_t pp:10;
295 		uint64_t reserved_26_63:38;
296 #endif
297 	} cn66xx;
298 };
299 
300 union cvmx_pow_ds_pc {
301 	uint64_t u64;
302 	struct cvmx_pow_ds_pc_s {
303 #ifdef __BIG_ENDIAN_BITFIELD
304 		uint64_t reserved_32_63:32;
305 		uint64_t ds_pc:32;
306 #else
307 		uint64_t ds_pc:32;
308 		uint64_t reserved_32_63:32;
309 #endif
310 	} s;
311 };
312 
313 union cvmx_pow_ecc_err {
314 	uint64_t u64;
315 	struct cvmx_pow_ecc_err_s {
316 #ifdef __BIG_ENDIAN_BITFIELD
317 		uint64_t reserved_45_63:19;
318 		uint64_t iop_ie:13;
319 		uint64_t reserved_29_31:3;
320 		uint64_t iop:13;
321 		uint64_t reserved_14_15:2;
322 		uint64_t rpe_ie:1;
323 		uint64_t rpe:1;
324 		uint64_t reserved_9_11:3;
325 		uint64_t syn:5;
326 		uint64_t dbe_ie:1;
327 		uint64_t sbe_ie:1;
328 		uint64_t dbe:1;
329 		uint64_t sbe:1;
330 #else
331 		uint64_t sbe:1;
332 		uint64_t dbe:1;
333 		uint64_t sbe_ie:1;
334 		uint64_t dbe_ie:1;
335 		uint64_t syn:5;
336 		uint64_t reserved_9_11:3;
337 		uint64_t rpe:1;
338 		uint64_t rpe_ie:1;
339 		uint64_t reserved_14_15:2;
340 		uint64_t iop:13;
341 		uint64_t reserved_29_31:3;
342 		uint64_t iop_ie:13;
343 		uint64_t reserved_45_63:19;
344 #endif
345 	} s;
346 	struct cvmx_pow_ecc_err_cn31xx {
347 #ifdef __BIG_ENDIAN_BITFIELD
348 		uint64_t reserved_14_63:50;
349 		uint64_t rpe_ie:1;
350 		uint64_t rpe:1;
351 		uint64_t reserved_9_11:3;
352 		uint64_t syn:5;
353 		uint64_t dbe_ie:1;
354 		uint64_t sbe_ie:1;
355 		uint64_t dbe:1;
356 		uint64_t sbe:1;
357 #else
358 		uint64_t sbe:1;
359 		uint64_t dbe:1;
360 		uint64_t sbe_ie:1;
361 		uint64_t dbe_ie:1;
362 		uint64_t syn:5;
363 		uint64_t reserved_9_11:3;
364 		uint64_t rpe:1;
365 		uint64_t rpe_ie:1;
366 		uint64_t reserved_14_63:50;
367 #endif
368 	} cn31xx;
369 };
370 
371 union cvmx_pow_int_ctl {
372 	uint64_t u64;
373 	struct cvmx_pow_int_ctl_s {
374 #ifdef __BIG_ENDIAN_BITFIELD
375 		uint64_t reserved_6_63:58;
376 		uint64_t pfr_dis:1;
377 		uint64_t nbr_thr:5;
378 #else
379 		uint64_t nbr_thr:5;
380 		uint64_t pfr_dis:1;
381 		uint64_t reserved_6_63:58;
382 #endif
383 	} s;
384 };
385 
386 union cvmx_pow_iq_cntx {
387 	uint64_t u64;
388 	struct cvmx_pow_iq_cntx_s {
389 #ifdef __BIG_ENDIAN_BITFIELD
390 		uint64_t reserved_32_63:32;
391 		uint64_t iq_cnt:32;
392 #else
393 		uint64_t iq_cnt:32;
394 		uint64_t reserved_32_63:32;
395 #endif
396 	} s;
397 };
398 
399 union cvmx_pow_iq_com_cnt {
400 	uint64_t u64;
401 	struct cvmx_pow_iq_com_cnt_s {
402 #ifdef __BIG_ENDIAN_BITFIELD
403 		uint64_t reserved_32_63:32;
404 		uint64_t iq_cnt:32;
405 #else
406 		uint64_t iq_cnt:32;
407 		uint64_t reserved_32_63:32;
408 #endif
409 	} s;
410 };
411 
412 union cvmx_pow_iq_int {
413 	uint64_t u64;
414 	struct cvmx_pow_iq_int_s {
415 #ifdef __BIG_ENDIAN_BITFIELD
416 		uint64_t reserved_8_63:56;
417 		uint64_t iq_int:8;
418 #else
419 		uint64_t iq_int:8;
420 		uint64_t reserved_8_63:56;
421 #endif
422 	} s;
423 };
424 
425 union cvmx_pow_iq_int_en {
426 	uint64_t u64;
427 	struct cvmx_pow_iq_int_en_s {
428 #ifdef __BIG_ENDIAN_BITFIELD
429 		uint64_t reserved_8_63:56;
430 		uint64_t int_en:8;
431 #else
432 		uint64_t int_en:8;
433 		uint64_t reserved_8_63:56;
434 #endif
435 	} s;
436 };
437 
438 union cvmx_pow_iq_thrx {
439 	uint64_t u64;
440 	struct cvmx_pow_iq_thrx_s {
441 #ifdef __BIG_ENDIAN_BITFIELD
442 		uint64_t reserved_32_63:32;
443 		uint64_t iq_thr:32;
444 #else
445 		uint64_t iq_thr:32;
446 		uint64_t reserved_32_63:32;
447 #endif
448 	} s;
449 };
450 
451 union cvmx_pow_nos_cnt {
452 	uint64_t u64;
453 	struct cvmx_pow_nos_cnt_s {
454 #ifdef __BIG_ENDIAN_BITFIELD
455 		uint64_t reserved_12_63:52;
456 		uint64_t nos_cnt:12;
457 #else
458 		uint64_t nos_cnt:12;
459 		uint64_t reserved_12_63:52;
460 #endif
461 	} s;
462 	struct cvmx_pow_nos_cnt_cn30xx {
463 #ifdef __BIG_ENDIAN_BITFIELD
464 		uint64_t reserved_7_63:57;
465 		uint64_t nos_cnt:7;
466 #else
467 		uint64_t nos_cnt:7;
468 		uint64_t reserved_7_63:57;
469 #endif
470 	} cn30xx;
471 	struct cvmx_pow_nos_cnt_cn31xx {
472 #ifdef __BIG_ENDIAN_BITFIELD
473 		uint64_t reserved_9_63:55;
474 		uint64_t nos_cnt:9;
475 #else
476 		uint64_t nos_cnt:9;
477 		uint64_t reserved_9_63:55;
478 #endif
479 	} cn31xx;
480 	struct cvmx_pow_nos_cnt_cn52xx {
481 #ifdef __BIG_ENDIAN_BITFIELD
482 		uint64_t reserved_10_63:54;
483 		uint64_t nos_cnt:10;
484 #else
485 		uint64_t nos_cnt:10;
486 		uint64_t reserved_10_63:54;
487 #endif
488 	} cn52xx;
489 	struct cvmx_pow_nos_cnt_cn63xx {
490 #ifdef __BIG_ENDIAN_BITFIELD
491 		uint64_t reserved_11_63:53;
492 		uint64_t nos_cnt:11;
493 #else
494 		uint64_t nos_cnt:11;
495 		uint64_t reserved_11_63:53;
496 #endif
497 	} cn63xx;
498 };
499 
500 union cvmx_pow_nw_tim {
501 	uint64_t u64;
502 	struct cvmx_pow_nw_tim_s {
503 #ifdef __BIG_ENDIAN_BITFIELD
504 		uint64_t reserved_10_63:54;
505 		uint64_t nw_tim:10;
506 #else
507 		uint64_t nw_tim:10;
508 		uint64_t reserved_10_63:54;
509 #endif
510 	} s;
511 };
512 
513 union cvmx_pow_pf_rst_msk {
514 	uint64_t u64;
515 	struct cvmx_pow_pf_rst_msk_s {
516 #ifdef __BIG_ENDIAN_BITFIELD
517 		uint64_t reserved_8_63:56;
518 		uint64_t rst_msk:8;
519 #else
520 		uint64_t rst_msk:8;
521 		uint64_t reserved_8_63:56;
522 #endif
523 	} s;
524 };
525 
526 union cvmx_pow_pp_grp_mskx {
527 	uint64_t u64;
528 	struct cvmx_pow_pp_grp_mskx_s {
529 #ifdef __BIG_ENDIAN_BITFIELD
530 		uint64_t reserved_48_63:16;
531 		uint64_t qos7_pri:4;
532 		uint64_t qos6_pri:4;
533 		uint64_t qos5_pri:4;
534 		uint64_t qos4_pri:4;
535 		uint64_t qos3_pri:4;
536 		uint64_t qos2_pri:4;
537 		uint64_t qos1_pri:4;
538 		uint64_t qos0_pri:4;
539 		uint64_t grp_msk:16;
540 #else
541 		uint64_t grp_msk:16;
542 		uint64_t qos0_pri:4;
543 		uint64_t qos1_pri:4;
544 		uint64_t qos2_pri:4;
545 		uint64_t qos3_pri:4;
546 		uint64_t qos4_pri:4;
547 		uint64_t qos5_pri:4;
548 		uint64_t qos6_pri:4;
549 		uint64_t qos7_pri:4;
550 		uint64_t reserved_48_63:16;
551 #endif
552 	} s;
553 	struct cvmx_pow_pp_grp_mskx_cn30xx {
554 #ifdef __BIG_ENDIAN_BITFIELD
555 		uint64_t reserved_16_63:48;
556 		uint64_t grp_msk:16;
557 #else
558 		uint64_t grp_msk:16;
559 		uint64_t reserved_16_63:48;
560 #endif
561 	} cn30xx;
562 };
563 
564 union cvmx_pow_qos_rndx {
565 	uint64_t u64;
566 	struct cvmx_pow_qos_rndx_s {
567 #ifdef __BIG_ENDIAN_BITFIELD
568 		uint64_t reserved_32_63:32;
569 		uint64_t rnd_p3:8;
570 		uint64_t rnd_p2:8;
571 		uint64_t rnd_p1:8;
572 		uint64_t rnd:8;
573 #else
574 		uint64_t rnd:8;
575 		uint64_t rnd_p1:8;
576 		uint64_t rnd_p2:8;
577 		uint64_t rnd_p3:8;
578 		uint64_t reserved_32_63:32;
579 #endif
580 	} s;
581 };
582 
583 union cvmx_pow_qos_thrx {
584 	uint64_t u64;
585 	struct cvmx_pow_qos_thrx_s {
586 #ifdef __BIG_ENDIAN_BITFIELD
587 		uint64_t reserved_60_63:4;
588 		uint64_t des_cnt:12;
589 		uint64_t buf_cnt:12;
590 		uint64_t free_cnt:12;
591 		uint64_t reserved_23_23:1;
592 		uint64_t max_thr:11;
593 		uint64_t reserved_11_11:1;
594 		uint64_t min_thr:11;
595 #else
596 		uint64_t min_thr:11;
597 		uint64_t reserved_11_11:1;
598 		uint64_t max_thr:11;
599 		uint64_t reserved_23_23:1;
600 		uint64_t free_cnt:12;
601 		uint64_t buf_cnt:12;
602 		uint64_t des_cnt:12;
603 		uint64_t reserved_60_63:4;
604 #endif
605 	} s;
606 	struct cvmx_pow_qos_thrx_cn30xx {
607 #ifdef __BIG_ENDIAN_BITFIELD
608 		uint64_t reserved_55_63:9;
609 		uint64_t des_cnt:7;
610 		uint64_t reserved_43_47:5;
611 		uint64_t buf_cnt:7;
612 		uint64_t reserved_31_35:5;
613 		uint64_t free_cnt:7;
614 		uint64_t reserved_18_23:6;
615 		uint64_t max_thr:6;
616 		uint64_t reserved_6_11:6;
617 		uint64_t min_thr:6;
618 #else
619 		uint64_t min_thr:6;
620 		uint64_t reserved_6_11:6;
621 		uint64_t max_thr:6;
622 		uint64_t reserved_18_23:6;
623 		uint64_t free_cnt:7;
624 		uint64_t reserved_31_35:5;
625 		uint64_t buf_cnt:7;
626 		uint64_t reserved_43_47:5;
627 		uint64_t des_cnt:7;
628 		uint64_t reserved_55_63:9;
629 #endif
630 	} cn30xx;
631 	struct cvmx_pow_qos_thrx_cn31xx {
632 #ifdef __BIG_ENDIAN_BITFIELD
633 		uint64_t reserved_57_63:7;
634 		uint64_t des_cnt:9;
635 		uint64_t reserved_45_47:3;
636 		uint64_t buf_cnt:9;
637 		uint64_t reserved_33_35:3;
638 		uint64_t free_cnt:9;
639 		uint64_t reserved_20_23:4;
640 		uint64_t max_thr:8;
641 		uint64_t reserved_8_11:4;
642 		uint64_t min_thr:8;
643 #else
644 		uint64_t min_thr:8;
645 		uint64_t reserved_8_11:4;
646 		uint64_t max_thr:8;
647 		uint64_t reserved_20_23:4;
648 		uint64_t free_cnt:9;
649 		uint64_t reserved_33_35:3;
650 		uint64_t buf_cnt:9;
651 		uint64_t reserved_45_47:3;
652 		uint64_t des_cnt:9;
653 		uint64_t reserved_57_63:7;
654 #endif
655 	} cn31xx;
656 	struct cvmx_pow_qos_thrx_cn52xx {
657 #ifdef __BIG_ENDIAN_BITFIELD
658 		uint64_t reserved_58_63:6;
659 		uint64_t des_cnt:10;
660 		uint64_t reserved_46_47:2;
661 		uint64_t buf_cnt:10;
662 		uint64_t reserved_34_35:2;
663 		uint64_t free_cnt:10;
664 		uint64_t reserved_21_23:3;
665 		uint64_t max_thr:9;
666 		uint64_t reserved_9_11:3;
667 		uint64_t min_thr:9;
668 #else
669 		uint64_t min_thr:9;
670 		uint64_t reserved_9_11:3;
671 		uint64_t max_thr:9;
672 		uint64_t reserved_21_23:3;
673 		uint64_t free_cnt:10;
674 		uint64_t reserved_34_35:2;
675 		uint64_t buf_cnt:10;
676 		uint64_t reserved_46_47:2;
677 		uint64_t des_cnt:10;
678 		uint64_t reserved_58_63:6;
679 #endif
680 	} cn52xx;
681 	struct cvmx_pow_qos_thrx_cn63xx {
682 #ifdef __BIG_ENDIAN_BITFIELD
683 		uint64_t reserved_59_63:5;
684 		uint64_t des_cnt:11;
685 		uint64_t reserved_47_47:1;
686 		uint64_t buf_cnt:11;
687 		uint64_t reserved_35_35:1;
688 		uint64_t free_cnt:11;
689 		uint64_t reserved_22_23:2;
690 		uint64_t max_thr:10;
691 		uint64_t reserved_10_11:2;
692 		uint64_t min_thr:10;
693 #else
694 		uint64_t min_thr:10;
695 		uint64_t reserved_10_11:2;
696 		uint64_t max_thr:10;
697 		uint64_t reserved_22_23:2;
698 		uint64_t free_cnt:11;
699 		uint64_t reserved_35_35:1;
700 		uint64_t buf_cnt:11;
701 		uint64_t reserved_47_47:1;
702 		uint64_t des_cnt:11;
703 		uint64_t reserved_59_63:5;
704 #endif
705 	} cn63xx;
706 };
707 
708 union cvmx_pow_ts_pc {
709 	uint64_t u64;
710 	struct cvmx_pow_ts_pc_s {
711 #ifdef __BIG_ENDIAN_BITFIELD
712 		uint64_t reserved_32_63:32;
713 		uint64_t ts_pc:32;
714 #else
715 		uint64_t ts_pc:32;
716 		uint64_t reserved_32_63:32;
717 #endif
718 	} s;
719 };
720 
721 union cvmx_pow_wa_com_pc {
722 	uint64_t u64;
723 	struct cvmx_pow_wa_com_pc_s {
724 #ifdef __BIG_ENDIAN_BITFIELD
725 		uint64_t reserved_32_63:32;
726 		uint64_t wa_pc:32;
727 #else
728 		uint64_t wa_pc:32;
729 		uint64_t reserved_32_63:32;
730 #endif
731 	} s;
732 };
733 
734 union cvmx_pow_wa_pcx {
735 	uint64_t u64;
736 	struct cvmx_pow_wa_pcx_s {
737 #ifdef __BIG_ENDIAN_BITFIELD
738 		uint64_t reserved_32_63:32;
739 		uint64_t wa_pc:32;
740 #else
741 		uint64_t wa_pc:32;
742 		uint64_t reserved_32_63:32;
743 #endif
744 	} s;
745 };
746 
747 union cvmx_pow_wq_int {
748 	uint64_t u64;
749 	struct cvmx_pow_wq_int_s {
750 #ifdef __BIG_ENDIAN_BITFIELD
751 		uint64_t reserved_32_63:32;
752 		uint64_t iq_dis:16;
753 		uint64_t wq_int:16;
754 #else
755 		uint64_t wq_int:16;
756 		uint64_t iq_dis:16;
757 		uint64_t reserved_32_63:32;
758 #endif
759 	} s;
760 };
761 
762 union cvmx_pow_wq_int_cntx {
763 	uint64_t u64;
764 	struct cvmx_pow_wq_int_cntx_s {
765 #ifdef __BIG_ENDIAN_BITFIELD
766 		uint64_t reserved_28_63:36;
767 		uint64_t tc_cnt:4;
768 		uint64_t ds_cnt:12;
769 		uint64_t iq_cnt:12;
770 #else
771 		uint64_t iq_cnt:12;
772 		uint64_t ds_cnt:12;
773 		uint64_t tc_cnt:4;
774 		uint64_t reserved_28_63:36;
775 #endif
776 	} s;
777 	struct cvmx_pow_wq_int_cntx_cn30xx {
778 #ifdef __BIG_ENDIAN_BITFIELD
779 		uint64_t reserved_28_63:36;
780 		uint64_t tc_cnt:4;
781 		uint64_t reserved_19_23:5;
782 		uint64_t ds_cnt:7;
783 		uint64_t reserved_7_11:5;
784 		uint64_t iq_cnt:7;
785 #else
786 		uint64_t iq_cnt:7;
787 		uint64_t reserved_7_11:5;
788 		uint64_t ds_cnt:7;
789 		uint64_t reserved_19_23:5;
790 		uint64_t tc_cnt:4;
791 		uint64_t reserved_28_63:36;
792 #endif
793 	} cn30xx;
794 	struct cvmx_pow_wq_int_cntx_cn31xx {
795 #ifdef __BIG_ENDIAN_BITFIELD
796 		uint64_t reserved_28_63:36;
797 		uint64_t tc_cnt:4;
798 		uint64_t reserved_21_23:3;
799 		uint64_t ds_cnt:9;
800 		uint64_t reserved_9_11:3;
801 		uint64_t iq_cnt:9;
802 #else
803 		uint64_t iq_cnt:9;
804 		uint64_t reserved_9_11:3;
805 		uint64_t ds_cnt:9;
806 		uint64_t reserved_21_23:3;
807 		uint64_t tc_cnt:4;
808 		uint64_t reserved_28_63:36;
809 #endif
810 	} cn31xx;
811 	struct cvmx_pow_wq_int_cntx_cn52xx {
812 #ifdef __BIG_ENDIAN_BITFIELD
813 		uint64_t reserved_28_63:36;
814 		uint64_t tc_cnt:4;
815 		uint64_t reserved_22_23:2;
816 		uint64_t ds_cnt:10;
817 		uint64_t reserved_10_11:2;
818 		uint64_t iq_cnt:10;
819 #else
820 		uint64_t iq_cnt:10;
821 		uint64_t reserved_10_11:2;
822 		uint64_t ds_cnt:10;
823 		uint64_t reserved_22_23:2;
824 		uint64_t tc_cnt:4;
825 		uint64_t reserved_28_63:36;
826 #endif
827 	} cn52xx;
828 	struct cvmx_pow_wq_int_cntx_cn63xx {
829 #ifdef __BIG_ENDIAN_BITFIELD
830 		uint64_t reserved_28_63:36;
831 		uint64_t tc_cnt:4;
832 		uint64_t reserved_23_23:1;
833 		uint64_t ds_cnt:11;
834 		uint64_t reserved_11_11:1;
835 		uint64_t iq_cnt:11;
836 #else
837 		uint64_t iq_cnt:11;
838 		uint64_t reserved_11_11:1;
839 		uint64_t ds_cnt:11;
840 		uint64_t reserved_23_23:1;
841 		uint64_t tc_cnt:4;
842 		uint64_t reserved_28_63:36;
843 #endif
844 	} cn63xx;
845 };
846 
847 union cvmx_pow_wq_int_pc {
848 	uint64_t u64;
849 	struct cvmx_pow_wq_int_pc_s {
850 #ifdef __BIG_ENDIAN_BITFIELD
851 		uint64_t reserved_60_63:4;
852 		uint64_t pc:28;
853 		uint64_t reserved_28_31:4;
854 		uint64_t pc_thr:20;
855 		uint64_t reserved_0_7:8;
856 #else
857 		uint64_t reserved_0_7:8;
858 		uint64_t pc_thr:20;
859 		uint64_t reserved_28_31:4;
860 		uint64_t pc:28;
861 		uint64_t reserved_60_63:4;
862 #endif
863 	} s;
864 };
865 
866 union cvmx_pow_wq_int_thrx {
867 	uint64_t u64;
868 	struct cvmx_pow_wq_int_thrx_s {
869 #ifdef __BIG_ENDIAN_BITFIELD
870 		uint64_t reserved_29_63:35;
871 		uint64_t tc_en:1;
872 		uint64_t tc_thr:4;
873 		uint64_t reserved_23_23:1;
874 		uint64_t ds_thr:11;
875 		uint64_t reserved_11_11:1;
876 		uint64_t iq_thr:11;
877 #else
878 		uint64_t iq_thr:11;
879 		uint64_t reserved_11_11:1;
880 		uint64_t ds_thr:11;
881 		uint64_t reserved_23_23:1;
882 		uint64_t tc_thr:4;
883 		uint64_t tc_en:1;
884 		uint64_t reserved_29_63:35;
885 #endif
886 	} s;
887 	struct cvmx_pow_wq_int_thrx_cn30xx {
888 #ifdef __BIG_ENDIAN_BITFIELD
889 		uint64_t reserved_29_63:35;
890 		uint64_t tc_en:1;
891 		uint64_t tc_thr:4;
892 		uint64_t reserved_18_23:6;
893 		uint64_t ds_thr:6;
894 		uint64_t reserved_6_11:6;
895 		uint64_t iq_thr:6;
896 #else
897 		uint64_t iq_thr:6;
898 		uint64_t reserved_6_11:6;
899 		uint64_t ds_thr:6;
900 		uint64_t reserved_18_23:6;
901 		uint64_t tc_thr:4;
902 		uint64_t tc_en:1;
903 		uint64_t reserved_29_63:35;
904 #endif
905 	} cn30xx;
906 	struct cvmx_pow_wq_int_thrx_cn31xx {
907 #ifdef __BIG_ENDIAN_BITFIELD
908 		uint64_t reserved_29_63:35;
909 		uint64_t tc_en:1;
910 		uint64_t tc_thr:4;
911 		uint64_t reserved_20_23:4;
912 		uint64_t ds_thr:8;
913 		uint64_t reserved_8_11:4;
914 		uint64_t iq_thr:8;
915 #else
916 		uint64_t iq_thr:8;
917 		uint64_t reserved_8_11:4;
918 		uint64_t ds_thr:8;
919 		uint64_t reserved_20_23:4;
920 		uint64_t tc_thr:4;
921 		uint64_t tc_en:1;
922 		uint64_t reserved_29_63:35;
923 #endif
924 	} cn31xx;
925 	struct cvmx_pow_wq_int_thrx_cn52xx {
926 #ifdef __BIG_ENDIAN_BITFIELD
927 		uint64_t reserved_29_63:35;
928 		uint64_t tc_en:1;
929 		uint64_t tc_thr:4;
930 		uint64_t reserved_21_23:3;
931 		uint64_t ds_thr:9;
932 		uint64_t reserved_9_11:3;
933 		uint64_t iq_thr:9;
934 #else
935 		uint64_t iq_thr:9;
936 		uint64_t reserved_9_11:3;
937 		uint64_t ds_thr:9;
938 		uint64_t reserved_21_23:3;
939 		uint64_t tc_thr:4;
940 		uint64_t tc_en:1;
941 		uint64_t reserved_29_63:35;
942 #endif
943 	} cn52xx;
944 	struct cvmx_pow_wq_int_thrx_cn63xx {
945 #ifdef __BIG_ENDIAN_BITFIELD
946 		uint64_t reserved_29_63:35;
947 		uint64_t tc_en:1;
948 		uint64_t tc_thr:4;
949 		uint64_t reserved_22_23:2;
950 		uint64_t ds_thr:10;
951 		uint64_t reserved_10_11:2;
952 		uint64_t iq_thr:10;
953 #else
954 		uint64_t iq_thr:10;
955 		uint64_t reserved_10_11:2;
956 		uint64_t ds_thr:10;
957 		uint64_t reserved_22_23:2;
958 		uint64_t tc_thr:4;
959 		uint64_t tc_en:1;
960 		uint64_t reserved_29_63:35;
961 #endif
962 	} cn63xx;
963 };
964 
965 union cvmx_pow_ws_pcx {
966 	uint64_t u64;
967 	struct cvmx_pow_ws_pcx_s {
968 #ifdef __BIG_ENDIAN_BITFIELD
969 		uint64_t reserved_32_63:32;
970 		uint64_t ws_pc:32;
971 #else
972 		uint64_t ws_pc:32;
973 		uint64_t reserved_32_63:32;
974 #endif
975 	} s;
976 };
977 
978 union cvmx_sso_wq_int_thrx {
979 	uint64_t u64;
980 	struct {
981 #ifdef __BIG_ENDIAN_BITFIELD
982 		uint64_t reserved_33_63:31;
983 		uint64_t tc_en:1;
984 		uint64_t tc_thr:4;
985 		uint64_t reserved_26_27:2;
986 		uint64_t ds_thr:12;
987 		uint64_t reserved_12_13:2;
988 		uint64_t iq_thr:12;
989 #else
990 		uint64_t iq_thr:12;
991 		uint64_t reserved_12_13:2;
992 		uint64_t ds_thr:12;
993 		uint64_t reserved_26_27:2;
994 		uint64_t tc_thr:4;
995 		uint64_t tc_en:1;
996 		uint64_t reserved_33_63:31;
997 #endif
998 	} s;
999 };
1000 
1001 #endif
1002