1 /***********************license start***************
2 * Author: Cavium Networks
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
7 * Copyright (c) 2003-2012 Cavium Networks
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.
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
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/.
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
28 #ifndef __CVMX_POW_DEFS_H__
29 #define __CVMX_POW_DEFS_H__
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)
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)
61 union cvmx_pow_bist_stat
{
63 struct cvmx_pow_bist_stat_s
{
64 #ifdef __BIG_ENDIAN_BITFIELD
65 uint64_t reserved_32_63
:32;
67 uint64_t reserved_0_15
:16;
69 uint64_t reserved_0_15
:16;
71 uint64_t reserved_32_63
:32;
74 struct cvmx_pow_bist_stat_cn30xx
{
75 #ifdef __BIG_ENDIAN_BITFIELD
76 uint64_t reserved_17_63
:47;
78 uint64_t reserved_9_15
:7;
98 uint64_t reserved_9_15
:7;
100 uint64_t reserved_17_63
:47;
103 struct cvmx_pow_bist_stat_cn31xx
{
104 #ifdef __BIG_ENDIAN_BITFIELD
105 uint64_t reserved_18_63
:46;
107 uint64_t reserved_9_15
:7;
127 uint64_t reserved_9_15
:7;
129 uint64_t reserved_18_63
:46;
132 struct cvmx_pow_bist_stat_cn38xx
{
133 #ifdef __BIG_ENDIAN_BITFIELD
134 uint64_t reserved_32_63
:32;
136 uint64_t reserved_10_15
:6;
158 uint64_t reserved_10_15
:6;
160 uint64_t reserved_32_63
:32;
163 struct cvmx_pow_bist_stat_cn52xx
{
164 #ifdef __BIG_ENDIAN_BITFIELD
165 uint64_t reserved_20_63
:44;
167 uint64_t reserved_9_15
:7;
187 uint64_t reserved_9_15
:7;
189 uint64_t reserved_20_63
:44;
192 struct cvmx_pow_bist_stat_cn56xx
{
193 #ifdef __BIG_ENDIAN_BITFIELD
194 uint64_t reserved_28_63
:36;
196 uint64_t reserved_10_15
:6;
218 uint64_t reserved_10_15
:6;
220 uint64_t reserved_28_63
:36;
223 struct cvmx_pow_bist_stat_cn61xx
{
224 #ifdef __BIG_ENDIAN_BITFIELD
225 uint64_t reserved_20_63
:44;
227 uint64_t reserved_12_15
:4;
243 uint64_t reserved_12_15
:4;
245 uint64_t reserved_20_63
:44;
248 struct cvmx_pow_bist_stat_cn63xx
{
249 #ifdef __BIG_ENDIAN_BITFIELD
250 uint64_t reserved_22_63
:42;
252 uint64_t reserved_12_15
:4;
268 uint64_t reserved_12_15
:4;
270 uint64_t reserved_22_63
:42;
273 struct cvmx_pow_bist_stat_cn66xx
{
274 #ifdef __BIG_ENDIAN_BITFIELD
275 uint64_t reserved_26_63
:38;
277 uint64_t reserved_12_15
:4;
293 uint64_t reserved_12_15
:4;
295 uint64_t reserved_26_63
:38;
300 union cvmx_pow_ds_pc
{
302 struct cvmx_pow_ds_pc_s
{
303 #ifdef __BIG_ENDIAN_BITFIELD
304 uint64_t reserved_32_63
:32;
308 uint64_t reserved_32_63
:32;
313 union cvmx_pow_ecc_err
{
315 struct cvmx_pow_ecc_err_s
{
316 #ifdef __BIG_ENDIAN_BITFIELD
317 uint64_t reserved_45_63
:19;
319 uint64_t reserved_29_31
:3;
321 uint64_t reserved_14_15
:2;
324 uint64_t reserved_9_11
:3;
336 uint64_t reserved_9_11
:3;
339 uint64_t reserved_14_15
:2;
341 uint64_t reserved_29_31
:3;
343 uint64_t reserved_45_63
:19;
346 struct cvmx_pow_ecc_err_cn31xx
{
347 #ifdef __BIG_ENDIAN_BITFIELD
348 uint64_t reserved_14_63
:50;
351 uint64_t reserved_9_11
:3;
363 uint64_t reserved_9_11
:3;
366 uint64_t reserved_14_63
:50;
371 union cvmx_pow_int_ctl
{
373 struct cvmx_pow_int_ctl_s
{
374 #ifdef __BIG_ENDIAN_BITFIELD
375 uint64_t reserved_6_63
:58;
381 uint64_t reserved_6_63
:58;
386 union cvmx_pow_iq_cntx
{
388 struct cvmx_pow_iq_cntx_s
{
389 #ifdef __BIG_ENDIAN_BITFIELD
390 uint64_t reserved_32_63
:32;
394 uint64_t reserved_32_63
:32;
399 union cvmx_pow_iq_com_cnt
{
401 struct cvmx_pow_iq_com_cnt_s
{
402 #ifdef __BIG_ENDIAN_BITFIELD
403 uint64_t reserved_32_63
:32;
407 uint64_t reserved_32_63
:32;
412 union cvmx_pow_iq_int
{
414 struct cvmx_pow_iq_int_s
{
415 #ifdef __BIG_ENDIAN_BITFIELD
416 uint64_t reserved_8_63
:56;
420 uint64_t reserved_8_63
:56;
425 union cvmx_pow_iq_int_en
{
427 struct cvmx_pow_iq_int_en_s
{
428 #ifdef __BIG_ENDIAN_BITFIELD
429 uint64_t reserved_8_63
:56;
433 uint64_t reserved_8_63
:56;
438 union cvmx_pow_iq_thrx
{
440 struct cvmx_pow_iq_thrx_s
{
441 #ifdef __BIG_ENDIAN_BITFIELD
442 uint64_t reserved_32_63
:32;
446 uint64_t reserved_32_63
:32;
451 union cvmx_pow_nos_cnt
{
453 struct cvmx_pow_nos_cnt_s
{
454 #ifdef __BIG_ENDIAN_BITFIELD
455 uint64_t reserved_12_63
:52;
459 uint64_t reserved_12_63
:52;
462 struct cvmx_pow_nos_cnt_cn30xx
{
463 #ifdef __BIG_ENDIAN_BITFIELD
464 uint64_t reserved_7_63
:57;
468 uint64_t reserved_7_63
:57;
471 struct cvmx_pow_nos_cnt_cn31xx
{
472 #ifdef __BIG_ENDIAN_BITFIELD
473 uint64_t reserved_9_63
:55;
477 uint64_t reserved_9_63
:55;
480 struct cvmx_pow_nos_cnt_cn52xx
{
481 #ifdef __BIG_ENDIAN_BITFIELD
482 uint64_t reserved_10_63
:54;
486 uint64_t reserved_10_63
:54;
489 struct cvmx_pow_nos_cnt_cn63xx
{
490 #ifdef __BIG_ENDIAN_BITFIELD
491 uint64_t reserved_11_63
:53;
495 uint64_t reserved_11_63
:53;
500 union cvmx_pow_nw_tim
{
502 struct cvmx_pow_nw_tim_s
{
503 #ifdef __BIG_ENDIAN_BITFIELD
504 uint64_t reserved_10_63
:54;
508 uint64_t reserved_10_63
:54;
513 union cvmx_pow_pf_rst_msk
{
515 struct cvmx_pow_pf_rst_msk_s
{
516 #ifdef __BIG_ENDIAN_BITFIELD
517 uint64_t reserved_8_63
:56;
521 uint64_t reserved_8_63
:56;
526 union cvmx_pow_pp_grp_mskx
{
528 struct cvmx_pow_pp_grp_mskx_s
{
529 #ifdef __BIG_ENDIAN_BITFIELD
530 uint64_t reserved_48_63
:16;
550 uint64_t reserved_48_63
:16;
553 struct cvmx_pow_pp_grp_mskx_cn30xx
{
554 #ifdef __BIG_ENDIAN_BITFIELD
555 uint64_t reserved_16_63
:48;
559 uint64_t reserved_16_63
:48;
564 union cvmx_pow_qos_rndx
{
566 struct cvmx_pow_qos_rndx_s
{
567 #ifdef __BIG_ENDIAN_BITFIELD
568 uint64_t reserved_32_63
:32;
578 uint64_t reserved_32_63
:32;
583 union cvmx_pow_qos_thrx
{
585 struct cvmx_pow_qos_thrx_s
{
586 #ifdef __BIG_ENDIAN_BITFIELD
587 uint64_t reserved_60_63
:4;
590 uint64_t free_cnt
:12;
591 uint64_t reserved_23_23
:1;
593 uint64_t reserved_11_11
:1;
597 uint64_t reserved_11_11
:1;
599 uint64_t reserved_23_23
:1;
600 uint64_t free_cnt
:12;
603 uint64_t reserved_60_63
:4;
606 struct cvmx_pow_qos_thrx_cn30xx
{
607 #ifdef __BIG_ENDIAN_BITFIELD
608 uint64_t reserved_55_63
:9;
610 uint64_t reserved_43_47
:5;
612 uint64_t reserved_31_35
:5;
614 uint64_t reserved_18_23
:6;
616 uint64_t reserved_6_11
:6;
620 uint64_t reserved_6_11
:6;
622 uint64_t reserved_18_23
:6;
624 uint64_t reserved_31_35
:5;
626 uint64_t reserved_43_47
:5;
628 uint64_t reserved_55_63
:9;
631 struct cvmx_pow_qos_thrx_cn31xx
{
632 #ifdef __BIG_ENDIAN_BITFIELD
633 uint64_t reserved_57_63
:7;
635 uint64_t reserved_45_47
:3;
637 uint64_t reserved_33_35
:3;
639 uint64_t reserved_20_23
:4;
641 uint64_t reserved_8_11
:4;
645 uint64_t reserved_8_11
:4;
647 uint64_t reserved_20_23
:4;
649 uint64_t reserved_33_35
:3;
651 uint64_t reserved_45_47
:3;
653 uint64_t reserved_57_63
:7;
656 struct cvmx_pow_qos_thrx_cn52xx
{
657 #ifdef __BIG_ENDIAN_BITFIELD
658 uint64_t reserved_58_63
:6;
660 uint64_t reserved_46_47
:2;
662 uint64_t reserved_34_35
:2;
663 uint64_t free_cnt
:10;
664 uint64_t reserved_21_23
:3;
666 uint64_t reserved_9_11
:3;
670 uint64_t reserved_9_11
:3;
672 uint64_t reserved_21_23
:3;
673 uint64_t free_cnt
:10;
674 uint64_t reserved_34_35
:2;
676 uint64_t reserved_46_47
:2;
678 uint64_t reserved_58_63
:6;
681 struct cvmx_pow_qos_thrx_cn63xx
{
682 #ifdef __BIG_ENDIAN_BITFIELD
683 uint64_t reserved_59_63
:5;
685 uint64_t reserved_47_47
:1;
687 uint64_t reserved_35_35
:1;
688 uint64_t free_cnt
:11;
689 uint64_t reserved_22_23
:2;
691 uint64_t reserved_10_11
:2;
695 uint64_t reserved_10_11
:2;
697 uint64_t reserved_22_23
:2;
698 uint64_t free_cnt
:11;
699 uint64_t reserved_35_35
:1;
701 uint64_t reserved_47_47
:1;
703 uint64_t reserved_59_63
:5;
708 union cvmx_pow_ts_pc
{
710 struct cvmx_pow_ts_pc_s
{
711 #ifdef __BIG_ENDIAN_BITFIELD
712 uint64_t reserved_32_63
:32;
716 uint64_t reserved_32_63
:32;
721 union cvmx_pow_wa_com_pc
{
723 struct cvmx_pow_wa_com_pc_s
{
724 #ifdef __BIG_ENDIAN_BITFIELD
725 uint64_t reserved_32_63
:32;
729 uint64_t reserved_32_63
:32;
734 union cvmx_pow_wa_pcx
{
736 struct cvmx_pow_wa_pcx_s
{
737 #ifdef __BIG_ENDIAN_BITFIELD
738 uint64_t reserved_32_63
:32;
742 uint64_t reserved_32_63
:32;
747 union cvmx_pow_wq_int
{
749 struct cvmx_pow_wq_int_s
{
750 #ifdef __BIG_ENDIAN_BITFIELD
751 uint64_t reserved_32_63
:32;
757 uint64_t reserved_32_63
:32;
762 union cvmx_pow_wq_int_cntx
{
764 struct cvmx_pow_wq_int_cntx_s
{
765 #ifdef __BIG_ENDIAN_BITFIELD
766 uint64_t reserved_28_63
:36;
774 uint64_t reserved_28_63
:36;
777 struct cvmx_pow_wq_int_cntx_cn30xx
{
778 #ifdef __BIG_ENDIAN_BITFIELD
779 uint64_t reserved_28_63
:36;
781 uint64_t reserved_19_23
:5;
783 uint64_t reserved_7_11
:5;
787 uint64_t reserved_7_11
:5;
789 uint64_t reserved_19_23
:5;
791 uint64_t reserved_28_63
:36;
794 struct cvmx_pow_wq_int_cntx_cn31xx
{
795 #ifdef __BIG_ENDIAN_BITFIELD
796 uint64_t reserved_28_63
:36;
798 uint64_t reserved_21_23
:3;
800 uint64_t reserved_9_11
:3;
804 uint64_t reserved_9_11
:3;
806 uint64_t reserved_21_23
:3;
808 uint64_t reserved_28_63
:36;
811 struct cvmx_pow_wq_int_cntx_cn52xx
{
812 #ifdef __BIG_ENDIAN_BITFIELD
813 uint64_t reserved_28_63
:36;
815 uint64_t reserved_22_23
:2;
817 uint64_t reserved_10_11
:2;
821 uint64_t reserved_10_11
:2;
823 uint64_t reserved_22_23
:2;
825 uint64_t reserved_28_63
:36;
828 struct cvmx_pow_wq_int_cntx_cn63xx
{
829 #ifdef __BIG_ENDIAN_BITFIELD
830 uint64_t reserved_28_63
:36;
832 uint64_t reserved_23_23
:1;
834 uint64_t reserved_11_11
:1;
838 uint64_t reserved_11_11
:1;
840 uint64_t reserved_23_23
:1;
842 uint64_t reserved_28_63
:36;
847 union cvmx_pow_wq_int_pc
{
849 struct cvmx_pow_wq_int_pc_s
{
850 #ifdef __BIG_ENDIAN_BITFIELD
851 uint64_t reserved_60_63
:4;
853 uint64_t reserved_28_31
:4;
855 uint64_t reserved_0_7
:8;
857 uint64_t reserved_0_7
:8;
859 uint64_t reserved_28_31
:4;
861 uint64_t reserved_60_63
:4;
866 union cvmx_pow_wq_int_thrx
{
868 struct cvmx_pow_wq_int_thrx_s
{
869 #ifdef __BIG_ENDIAN_BITFIELD
870 uint64_t reserved_29_63
:35;
873 uint64_t reserved_23_23
:1;
875 uint64_t reserved_11_11
:1;
879 uint64_t reserved_11_11
:1;
881 uint64_t reserved_23_23
:1;
884 uint64_t reserved_29_63
:35;
887 struct cvmx_pow_wq_int_thrx_cn30xx
{
888 #ifdef __BIG_ENDIAN_BITFIELD
889 uint64_t reserved_29_63
:35;
892 uint64_t reserved_18_23
:6;
894 uint64_t reserved_6_11
:6;
898 uint64_t reserved_6_11
:6;
900 uint64_t reserved_18_23
:6;
903 uint64_t reserved_29_63
:35;
906 struct cvmx_pow_wq_int_thrx_cn31xx
{
907 #ifdef __BIG_ENDIAN_BITFIELD
908 uint64_t reserved_29_63
:35;
911 uint64_t reserved_20_23
:4;
913 uint64_t reserved_8_11
:4;
917 uint64_t reserved_8_11
:4;
919 uint64_t reserved_20_23
:4;
922 uint64_t reserved_29_63
:35;
925 struct cvmx_pow_wq_int_thrx_cn52xx
{
926 #ifdef __BIG_ENDIAN_BITFIELD
927 uint64_t reserved_29_63
:35;
930 uint64_t reserved_21_23
:3;
932 uint64_t reserved_9_11
:3;
936 uint64_t reserved_9_11
:3;
938 uint64_t reserved_21_23
:3;
941 uint64_t reserved_29_63
:35;
944 struct cvmx_pow_wq_int_thrx_cn63xx
{
945 #ifdef __BIG_ENDIAN_BITFIELD
946 uint64_t reserved_29_63
:35;
949 uint64_t reserved_22_23
:2;
951 uint64_t reserved_10_11
:2;
955 uint64_t reserved_10_11
:2;
957 uint64_t reserved_22_23
:2;
960 uint64_t reserved_29_63
:35;
965 union cvmx_pow_ws_pcx
{
967 struct cvmx_pow_ws_pcx_s
{
968 #ifdef __BIG_ENDIAN_BITFIELD
969 uint64_t reserved_32_63
:32;
973 uint64_t reserved_32_63
:32;
978 union cvmx_sso_wq_int_thrx
{
981 #ifdef __BIG_ENDIAN_BITFIELD
982 uint64_t reserved_33_63
:31;
985 uint64_t reserved_26_27
:2;
987 uint64_t reserved_12_13
:2;
991 uint64_t reserved_12_13
:2;
993 uint64_t reserved_26_27
:2;
996 uint64_t reserved_33_63
:31;