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
61union 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
300union 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
313union 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
371union 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
386union 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
399union 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
412union 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
425union 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
438union 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
451union 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
500union 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
513union 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
526union 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
564union 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
583union 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
708union 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
721union 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
734union 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
747union 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
762union 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
847union 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
866union 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
965union 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
978union 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