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-2008 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_PIP_DEFS_H__
29 #define __CVMX_PIP_DEFS_H__
32 * Enumeration representing the amount of packet processing
33 * and validation performed by the input hardware.
35 enum cvmx_pip_port_parse_mode
{
37 * Packet input doesn't perform any processing of the input
40 CVMX_PIP_PORT_CFG_MODE_NONE
= 0ull,
42 * Full packet processing is performed with pointer starting
43 * at the L2 (ethernet MAC) header.
45 CVMX_PIP_PORT_CFG_MODE_SKIPL2
= 1ull,
47 * Input packets are assumed to be IP. Results from non IP
48 * packets is undefined. Pointers reference the beginning of
51 CVMX_PIP_PORT_CFG_MODE_SKIPIP
= 2ull
54 #define CVMX_PIP_BCK_PRS \
55 CVMX_ADD_IO_SEG(0x00011800A0000038ull)
56 #define CVMX_PIP_BIST_STATUS \
57 CVMX_ADD_IO_SEG(0x00011800A0000000ull)
58 #define CVMX_PIP_CRC_CTLX(offset) \
59 CVMX_ADD_IO_SEG(0x00011800A0000040ull + (((offset) & 1) * 8))
60 #define CVMX_PIP_CRC_IVX(offset) \
61 CVMX_ADD_IO_SEG(0x00011800A0000050ull + (((offset) & 1) * 8))
62 #define CVMX_PIP_DEC_IPSECX(offset) \
63 CVMX_ADD_IO_SEG(0x00011800A0000080ull + (((offset) & 3) * 8))
64 #define CVMX_PIP_DSA_SRC_GRP \
65 CVMX_ADD_IO_SEG(0x00011800A0000190ull)
66 #define CVMX_PIP_DSA_VID_GRP \
67 CVMX_ADD_IO_SEG(0x00011800A0000198ull)
68 #define CVMX_PIP_FRM_LEN_CHKX(offset) \
69 CVMX_ADD_IO_SEG(0x00011800A0000180ull + (((offset) & 1) * 8))
70 #define CVMX_PIP_GBL_CFG \
71 CVMX_ADD_IO_SEG(0x00011800A0000028ull)
72 #define CVMX_PIP_GBL_CTL \
73 CVMX_ADD_IO_SEG(0x00011800A0000020ull)
74 #define CVMX_PIP_HG_PRI_QOS \
75 CVMX_ADD_IO_SEG(0x00011800A00001A0ull)
76 #define CVMX_PIP_INT_EN \
77 CVMX_ADD_IO_SEG(0x00011800A0000010ull)
78 #define CVMX_PIP_INT_REG \
79 CVMX_ADD_IO_SEG(0x00011800A0000008ull)
80 #define CVMX_PIP_IP_OFFSET \
81 CVMX_ADD_IO_SEG(0x00011800A0000060ull)
82 #define CVMX_PIP_PRT_CFGX(offset) \
83 CVMX_ADD_IO_SEG(0x00011800A0000200ull + (((offset) & 63) * 8))
84 #define CVMX_PIP_PRT_TAGX(offset) \
85 CVMX_ADD_IO_SEG(0x00011800A0000400ull + (((offset) & 63) * 8))
86 #define CVMX_PIP_QOS_DIFFX(offset) \
87 CVMX_ADD_IO_SEG(0x00011800A0000600ull + (((offset) & 63) * 8))
88 #define CVMX_PIP_QOS_VLANX(offset) \
89 CVMX_ADD_IO_SEG(0x00011800A00000C0ull + (((offset) & 7) * 8))
90 #define CVMX_PIP_QOS_WATCHX(offset) \
91 CVMX_ADD_IO_SEG(0x00011800A0000100ull + (((offset) & 7) * 8))
92 #define CVMX_PIP_RAW_WORD \
93 CVMX_ADD_IO_SEG(0x00011800A00000B0ull)
94 #define CVMX_PIP_SFT_RST \
95 CVMX_ADD_IO_SEG(0x00011800A0000030ull)
96 #define CVMX_PIP_STAT0_PRTX(offset) \
97 CVMX_ADD_IO_SEG(0x00011800A0000800ull + (((offset) & 63) * 80))
98 #define CVMX_PIP_STAT1_PRTX(offset) \
99 CVMX_ADD_IO_SEG(0x00011800A0000808ull + (((offset) & 63) * 80))
100 #define CVMX_PIP_STAT2_PRTX(offset) \
101 CVMX_ADD_IO_SEG(0x00011800A0000810ull + (((offset) & 63) * 80))
102 #define CVMX_PIP_STAT3_PRTX(offset) \
103 CVMX_ADD_IO_SEG(0x00011800A0000818ull + (((offset) & 63) * 80))
104 #define CVMX_PIP_STAT4_PRTX(offset) \
105 CVMX_ADD_IO_SEG(0x00011800A0000820ull + (((offset) & 63) * 80))
106 #define CVMX_PIP_STAT5_PRTX(offset) \
107 CVMX_ADD_IO_SEG(0x00011800A0000828ull + (((offset) & 63) * 80))
108 #define CVMX_PIP_STAT6_PRTX(offset) \
109 CVMX_ADD_IO_SEG(0x00011800A0000830ull + (((offset) & 63) * 80))
110 #define CVMX_PIP_STAT7_PRTX(offset) \
111 CVMX_ADD_IO_SEG(0x00011800A0000838ull + (((offset) & 63) * 80))
112 #define CVMX_PIP_STAT8_PRTX(offset) \
113 CVMX_ADD_IO_SEG(0x00011800A0000840ull + (((offset) & 63) * 80))
114 #define CVMX_PIP_STAT9_PRTX(offset) \
115 CVMX_ADD_IO_SEG(0x00011800A0000848ull + (((offset) & 63) * 80))
116 #define CVMX_PIP_STAT_CTL \
117 CVMX_ADD_IO_SEG(0x00011800A0000018ull)
118 #define CVMX_PIP_STAT_INB_ERRSX(offset) \
119 CVMX_ADD_IO_SEG(0x00011800A0001A10ull + (((offset) & 63) * 32))
120 #define CVMX_PIP_STAT_INB_OCTSX(offset) \
121 CVMX_ADD_IO_SEG(0x00011800A0001A08ull + (((offset) & 63) * 32))
122 #define CVMX_PIP_STAT_INB_PKTSX(offset) \
123 CVMX_ADD_IO_SEG(0x00011800A0001A00ull + (((offset) & 63) * 32))
124 #define CVMX_PIP_TAG_INCX(offset) \
125 CVMX_ADD_IO_SEG(0x00011800A0001800ull + (((offset) & 63) * 8))
126 #define CVMX_PIP_TAG_MASK \
127 CVMX_ADD_IO_SEG(0x00011800A0000070ull)
128 #define CVMX_PIP_TAG_SECRET \
129 CVMX_ADD_IO_SEG(0x00011800A0000068ull)
130 #define CVMX_PIP_TODO_ENTRY \
131 CVMX_ADD_IO_SEG(0x00011800A0000078ull)
133 union cvmx_pip_bck_prs
{
135 struct cvmx_pip_bck_prs_s
{
137 uint64_t reserved_13_62
:50;
139 uint64_t reserved_5_7
:3;
142 struct cvmx_pip_bck_prs_s cn38xx
;
143 struct cvmx_pip_bck_prs_s cn38xxp2
;
144 struct cvmx_pip_bck_prs_s cn56xx
;
145 struct cvmx_pip_bck_prs_s cn56xxp1
;
146 struct cvmx_pip_bck_prs_s cn58xx
;
147 struct cvmx_pip_bck_prs_s cn58xxp1
;
150 union cvmx_pip_bist_status
{
152 struct cvmx_pip_bist_status_s
{
153 uint64_t reserved_18_63
:46;
156 struct cvmx_pip_bist_status_s cn30xx
;
157 struct cvmx_pip_bist_status_s cn31xx
;
158 struct cvmx_pip_bist_status_s cn38xx
;
159 struct cvmx_pip_bist_status_s cn38xxp2
;
160 struct cvmx_pip_bist_status_cn50xx
{
161 uint64_t reserved_17_63
:47;
164 struct cvmx_pip_bist_status_s cn52xx
;
165 struct cvmx_pip_bist_status_s cn52xxp1
;
166 struct cvmx_pip_bist_status_s cn56xx
;
167 struct cvmx_pip_bist_status_s cn56xxp1
;
168 struct cvmx_pip_bist_status_s cn58xx
;
169 struct cvmx_pip_bist_status_s cn58xxp1
;
172 union cvmx_pip_crc_ctlx
{
174 struct cvmx_pip_crc_ctlx_s
{
175 uint64_t reserved_2_63
:62;
179 struct cvmx_pip_crc_ctlx_s cn38xx
;
180 struct cvmx_pip_crc_ctlx_s cn38xxp2
;
181 struct cvmx_pip_crc_ctlx_s cn58xx
;
182 struct cvmx_pip_crc_ctlx_s cn58xxp1
;
185 union cvmx_pip_crc_ivx
{
187 struct cvmx_pip_crc_ivx_s
{
188 uint64_t reserved_32_63
:32;
191 struct cvmx_pip_crc_ivx_s cn38xx
;
192 struct cvmx_pip_crc_ivx_s cn38xxp2
;
193 struct cvmx_pip_crc_ivx_s cn58xx
;
194 struct cvmx_pip_crc_ivx_s cn58xxp1
;
197 union cvmx_pip_dec_ipsecx
{
199 struct cvmx_pip_dec_ipsecx_s
{
200 uint64_t reserved_18_63
:46;
205 struct cvmx_pip_dec_ipsecx_s cn30xx
;
206 struct cvmx_pip_dec_ipsecx_s cn31xx
;
207 struct cvmx_pip_dec_ipsecx_s cn38xx
;
208 struct cvmx_pip_dec_ipsecx_s cn38xxp2
;
209 struct cvmx_pip_dec_ipsecx_s cn50xx
;
210 struct cvmx_pip_dec_ipsecx_s cn52xx
;
211 struct cvmx_pip_dec_ipsecx_s cn52xxp1
;
212 struct cvmx_pip_dec_ipsecx_s cn56xx
;
213 struct cvmx_pip_dec_ipsecx_s cn56xxp1
;
214 struct cvmx_pip_dec_ipsecx_s cn58xx
;
215 struct cvmx_pip_dec_ipsecx_s cn58xxp1
;
218 union cvmx_pip_dsa_src_grp
{
220 struct cvmx_pip_dsa_src_grp_s
{
238 struct cvmx_pip_dsa_src_grp_s cn52xx
;
239 struct cvmx_pip_dsa_src_grp_s cn52xxp1
;
240 struct cvmx_pip_dsa_src_grp_s cn56xx
;
243 union cvmx_pip_dsa_vid_grp
{
245 struct cvmx_pip_dsa_vid_grp_s
{
263 struct cvmx_pip_dsa_vid_grp_s cn52xx
;
264 struct cvmx_pip_dsa_vid_grp_s cn52xxp1
;
265 struct cvmx_pip_dsa_vid_grp_s cn56xx
;
268 union cvmx_pip_frm_len_chkx
{
270 struct cvmx_pip_frm_len_chkx_s
{
271 uint64_t reserved_32_63
:32;
275 struct cvmx_pip_frm_len_chkx_s cn50xx
;
276 struct cvmx_pip_frm_len_chkx_s cn52xx
;
277 struct cvmx_pip_frm_len_chkx_s cn52xxp1
;
278 struct cvmx_pip_frm_len_chkx_s cn56xx
;
279 struct cvmx_pip_frm_len_chkx_s cn56xxp1
;
282 union cvmx_pip_gbl_cfg
{
284 struct cvmx_pip_gbl_cfg_s
{
285 uint64_t reserved_19_63
:45;
289 uint64_t reserved_11_15
:5;
291 uint64_t reserved_3_7
:5;
294 struct cvmx_pip_gbl_cfg_s cn30xx
;
295 struct cvmx_pip_gbl_cfg_s cn31xx
;
296 struct cvmx_pip_gbl_cfg_s cn38xx
;
297 struct cvmx_pip_gbl_cfg_s cn38xxp2
;
298 struct cvmx_pip_gbl_cfg_s cn50xx
;
299 struct cvmx_pip_gbl_cfg_s cn52xx
;
300 struct cvmx_pip_gbl_cfg_s cn52xxp1
;
301 struct cvmx_pip_gbl_cfg_s cn56xx
;
302 struct cvmx_pip_gbl_cfg_s cn56xxp1
;
303 struct cvmx_pip_gbl_cfg_s cn58xx
;
304 struct cvmx_pip_gbl_cfg_s cn58xxp1
;
307 union cvmx_pip_gbl_ctl
{
309 struct cvmx_pip_gbl_ctl_s
{
310 uint64_t reserved_27_63
:37;
311 uint64_t dsa_grp_tvid
:1;
312 uint64_t dsa_grp_scmd
:1;
313 uint64_t dsa_grp_sid
:1;
314 uint64_t reserved_21_23
:3;
316 uint64_t reserved_17_19
:3;
326 uint64_t reserved_6_7
:2;
333 struct cvmx_pip_gbl_ctl_cn30xx
{
334 uint64_t reserved_17_63
:47;
344 uint64_t reserved_6_7
:2;
351 struct cvmx_pip_gbl_ctl_cn30xx cn31xx
;
352 struct cvmx_pip_gbl_ctl_cn30xx cn38xx
;
353 struct cvmx_pip_gbl_ctl_cn30xx cn38xxp2
;
354 struct cvmx_pip_gbl_ctl_cn30xx cn50xx
;
355 struct cvmx_pip_gbl_ctl_s cn52xx
;
356 struct cvmx_pip_gbl_ctl_s cn52xxp1
;
357 struct cvmx_pip_gbl_ctl_s cn56xx
;
358 struct cvmx_pip_gbl_ctl_cn56xxp1
{
359 uint64_t reserved_21_63
:43;
361 uint64_t reserved_17_19
:3;
371 uint64_t reserved_6_7
:2;
378 struct cvmx_pip_gbl_ctl_cn30xx cn58xx
;
379 struct cvmx_pip_gbl_ctl_cn30xx cn58xxp1
;
382 union cvmx_pip_hg_pri_qos
{
384 struct cvmx_pip_hg_pri_qos_s
{
385 uint64_t reserved_11_63
:53;
387 uint64_t reserved_6_7
:2;
390 struct cvmx_pip_hg_pri_qos_s cn52xx
;
391 struct cvmx_pip_hg_pri_qos_s cn52xxp1
;
392 struct cvmx_pip_hg_pri_qos_s cn56xx
;
395 union cvmx_pip_int_en
{
397 struct cvmx_pip_int_en_s
{
398 uint64_t reserved_13_63
:51;
413 struct cvmx_pip_int_en_cn30xx
{
414 uint64_t reserved_9_63
:55;
425 struct cvmx_pip_int_en_cn30xx cn31xx
;
426 struct cvmx_pip_int_en_cn30xx cn38xx
;
427 struct cvmx_pip_int_en_cn30xx cn38xxp2
;
428 struct cvmx_pip_int_en_cn50xx
{
429 uint64_t reserved_12_63
:52;
440 uint64_t reserved_1_1
:1;
443 struct cvmx_pip_int_en_cn52xx
{
444 uint64_t reserved_13_63
:51;
456 uint64_t reserved_1_1
:1;
459 struct cvmx_pip_int_en_cn52xx cn52xxp1
;
460 struct cvmx_pip_int_en_s cn56xx
;
461 struct cvmx_pip_int_en_cn56xxp1
{
462 uint64_t reserved_12_63
:52;
476 struct cvmx_pip_int_en_cn58xx
{
477 uint64_t reserved_13_63
:51;
479 uint64_t reserved_9_11
:3;
490 struct cvmx_pip_int_en_cn30xx cn58xxp1
;
493 union cvmx_pip_int_reg
{
495 struct cvmx_pip_int_reg_s
{
496 uint64_t reserved_13_63
:51;
511 struct cvmx_pip_int_reg_cn30xx
{
512 uint64_t reserved_9_63
:55;
523 struct cvmx_pip_int_reg_cn30xx cn31xx
;
524 struct cvmx_pip_int_reg_cn30xx cn38xx
;
525 struct cvmx_pip_int_reg_cn30xx cn38xxp2
;
526 struct cvmx_pip_int_reg_cn50xx
{
527 uint64_t reserved_12_63
:52;
538 uint64_t reserved_1_1
:1;
541 struct cvmx_pip_int_reg_cn52xx
{
542 uint64_t reserved_13_63
:51;
554 uint64_t reserved_1_1
:1;
557 struct cvmx_pip_int_reg_cn52xx cn52xxp1
;
558 struct cvmx_pip_int_reg_s cn56xx
;
559 struct cvmx_pip_int_reg_cn56xxp1
{
560 uint64_t reserved_12_63
:52;
574 struct cvmx_pip_int_reg_cn58xx
{
575 uint64_t reserved_13_63
:51;
577 uint64_t reserved_9_11
:3;
588 struct cvmx_pip_int_reg_cn30xx cn58xxp1
;
591 union cvmx_pip_ip_offset
{
593 struct cvmx_pip_ip_offset_s
{
594 uint64_t reserved_3_63
:61;
597 struct cvmx_pip_ip_offset_s cn30xx
;
598 struct cvmx_pip_ip_offset_s cn31xx
;
599 struct cvmx_pip_ip_offset_s cn38xx
;
600 struct cvmx_pip_ip_offset_s cn38xxp2
;
601 struct cvmx_pip_ip_offset_s cn50xx
;
602 struct cvmx_pip_ip_offset_s cn52xx
;
603 struct cvmx_pip_ip_offset_s cn52xxp1
;
604 struct cvmx_pip_ip_offset_s cn56xx
;
605 struct cvmx_pip_ip_offset_s cn56xxp1
;
606 struct cvmx_pip_ip_offset_s cn58xx
;
607 struct cvmx_pip_ip_offset_s cn58xxp1
;
610 union cvmx_pip_prt_cfgx
{
612 struct cvmx_pip_prt_cfgx_s
{
613 uint64_t reserved_53_63
:11;
616 uint64_t lenerr_en
:1;
617 uint64_t maxerr_en
:1;
618 uint64_t minerr_en
:1;
619 uint64_t grp_wat_47
:4;
620 uint64_t qos_wat_47
:4;
621 uint64_t reserved_37_39
:3;
634 uint64_t reserved_13_15
:3;
639 uint64_t reserved_7_7
:1;
642 struct cvmx_pip_prt_cfgx_cn30xx
{
643 uint64_t reserved_37_63
:27;
649 uint64_t reserved_27_27
:1;
652 uint64_t reserved_18_19
:2;
655 uint64_t reserved_10_15
:6;
657 uint64_t reserved_7_7
:1;
660 struct cvmx_pip_prt_cfgx_cn30xx cn31xx
;
661 struct cvmx_pip_prt_cfgx_cn38xx
{
662 uint64_t reserved_37_63
:27;
668 uint64_t reserved_27_27
:1;
671 uint64_t reserved_18_19
:2;
674 uint64_t reserved_13_15
:3;
676 uint64_t reserved_10_11
:2;
678 uint64_t reserved_7_7
:1;
681 struct cvmx_pip_prt_cfgx_cn38xx cn38xxp2
;
682 struct cvmx_pip_prt_cfgx_cn50xx
{
683 uint64_t reserved_53_63
:11;
686 uint64_t lenerr_en
:1;
687 uint64_t maxerr_en
:1;
688 uint64_t minerr_en
:1;
689 uint64_t grp_wat_47
:4;
690 uint64_t qos_wat_47
:4;
691 uint64_t reserved_37_39
:3;
697 uint64_t reserved_27_27
:1;
700 uint64_t reserved_19_19
:1;
704 uint64_t reserved_13_15
:3;
706 uint64_t reserved_10_11
:2;
708 uint64_t reserved_7_7
:1;
711 struct cvmx_pip_prt_cfgx_s cn52xx
;
712 struct cvmx_pip_prt_cfgx_s cn52xxp1
;
713 struct cvmx_pip_prt_cfgx_s cn56xx
;
714 struct cvmx_pip_prt_cfgx_cn50xx cn56xxp1
;
715 struct cvmx_pip_prt_cfgx_cn58xx
{
716 uint64_t reserved_37_63
:27;
722 uint64_t reserved_27_27
:1;
725 uint64_t reserved_19_19
:1;
729 uint64_t reserved_13_15
:3;
731 uint64_t reserved_10_11
:2;
733 uint64_t reserved_7_7
:1;
736 struct cvmx_pip_prt_cfgx_cn58xx cn58xxp1
;
739 union cvmx_pip_prt_tagx
{
741 struct cvmx_pip_prt_tagx_s
{
742 uint64_t reserved_40_63
:24;
743 uint64_t grptagbase
:4;
744 uint64_t grptagmask
:4;
746 uint64_t grptag_mskip
:1;
750 uint64_t inc_prt_flag
:1;
751 uint64_t ip6_dprt_flag
:1;
752 uint64_t ip4_dprt_flag
:1;
753 uint64_t ip6_sprt_flag
:1;
754 uint64_t ip4_sprt_flag
:1;
755 uint64_t ip6_nxth_flag
:1;
756 uint64_t ip4_pctl_flag
:1;
757 uint64_t ip6_dst_flag
:1;
758 uint64_t ip4_dst_flag
:1;
759 uint64_t ip6_src_flag
:1;
760 uint64_t ip4_src_flag
:1;
761 uint64_t tcp6_tag_type
:2;
762 uint64_t tcp4_tag_type
:2;
763 uint64_t ip6_tag_type
:2;
764 uint64_t ip4_tag_type
:2;
765 uint64_t non_tag_type
:2;
768 struct cvmx_pip_prt_tagx_cn30xx
{
769 uint64_t reserved_40_63
:24;
770 uint64_t grptagbase
:4;
771 uint64_t grptagmask
:4;
773 uint64_t reserved_30_30
:1;
777 uint64_t inc_prt_flag
:1;
778 uint64_t ip6_dprt_flag
:1;
779 uint64_t ip4_dprt_flag
:1;
780 uint64_t ip6_sprt_flag
:1;
781 uint64_t ip4_sprt_flag
:1;
782 uint64_t ip6_nxth_flag
:1;
783 uint64_t ip4_pctl_flag
:1;
784 uint64_t ip6_dst_flag
:1;
785 uint64_t ip4_dst_flag
:1;
786 uint64_t ip6_src_flag
:1;
787 uint64_t ip4_src_flag
:1;
788 uint64_t tcp6_tag_type
:2;
789 uint64_t tcp4_tag_type
:2;
790 uint64_t ip6_tag_type
:2;
791 uint64_t ip4_tag_type
:2;
792 uint64_t non_tag_type
:2;
795 struct cvmx_pip_prt_tagx_cn30xx cn31xx
;
796 struct cvmx_pip_prt_tagx_cn30xx cn38xx
;
797 struct cvmx_pip_prt_tagx_cn30xx cn38xxp2
;
798 struct cvmx_pip_prt_tagx_s cn50xx
;
799 struct cvmx_pip_prt_tagx_s cn52xx
;
800 struct cvmx_pip_prt_tagx_s cn52xxp1
;
801 struct cvmx_pip_prt_tagx_s cn56xx
;
802 struct cvmx_pip_prt_tagx_s cn56xxp1
;
803 struct cvmx_pip_prt_tagx_cn30xx cn58xx
;
804 struct cvmx_pip_prt_tagx_cn30xx cn58xxp1
;
807 union cvmx_pip_qos_diffx
{
809 struct cvmx_pip_qos_diffx_s
{
810 uint64_t reserved_3_63
:61;
813 struct cvmx_pip_qos_diffx_s cn30xx
;
814 struct cvmx_pip_qos_diffx_s cn31xx
;
815 struct cvmx_pip_qos_diffx_s cn38xx
;
816 struct cvmx_pip_qos_diffx_s cn38xxp2
;
817 struct cvmx_pip_qos_diffx_s cn50xx
;
818 struct cvmx_pip_qos_diffx_s cn52xx
;
819 struct cvmx_pip_qos_diffx_s cn52xxp1
;
820 struct cvmx_pip_qos_diffx_s cn56xx
;
821 struct cvmx_pip_qos_diffx_s cn56xxp1
;
822 struct cvmx_pip_qos_diffx_s cn58xx
;
823 struct cvmx_pip_qos_diffx_s cn58xxp1
;
826 union cvmx_pip_qos_vlanx
{
828 struct cvmx_pip_qos_vlanx_s
{
829 uint64_t reserved_7_63
:57;
831 uint64_t reserved_3_3
:1;
834 struct cvmx_pip_qos_vlanx_cn30xx
{
835 uint64_t reserved_3_63
:61;
838 struct cvmx_pip_qos_vlanx_cn30xx cn31xx
;
839 struct cvmx_pip_qos_vlanx_cn30xx cn38xx
;
840 struct cvmx_pip_qos_vlanx_cn30xx cn38xxp2
;
841 struct cvmx_pip_qos_vlanx_cn30xx cn50xx
;
842 struct cvmx_pip_qos_vlanx_s cn52xx
;
843 struct cvmx_pip_qos_vlanx_s cn52xxp1
;
844 struct cvmx_pip_qos_vlanx_s cn56xx
;
845 struct cvmx_pip_qos_vlanx_cn30xx cn56xxp1
;
846 struct cvmx_pip_qos_vlanx_cn30xx cn58xx
;
847 struct cvmx_pip_qos_vlanx_cn30xx cn58xxp1
;
850 union cvmx_pip_qos_watchx
{
852 struct cvmx_pip_qos_watchx_s
{
853 uint64_t reserved_48_63
:16;
855 uint64_t reserved_28_31
:4;
857 uint64_t reserved_23_23
:1;
859 uint64_t reserved_19_19
:1;
860 uint64_t match_type
:3;
861 uint64_t match_value
:16;
863 struct cvmx_pip_qos_watchx_cn30xx
{
864 uint64_t reserved_48_63
:16;
866 uint64_t reserved_28_31
:4;
868 uint64_t reserved_23_23
:1;
870 uint64_t reserved_18_19
:2;
871 uint64_t match_type
:2;
872 uint64_t match_value
:16;
874 struct cvmx_pip_qos_watchx_cn30xx cn31xx
;
875 struct cvmx_pip_qos_watchx_cn30xx cn38xx
;
876 struct cvmx_pip_qos_watchx_cn30xx cn38xxp2
;
877 struct cvmx_pip_qos_watchx_s cn50xx
;
878 struct cvmx_pip_qos_watchx_s cn52xx
;
879 struct cvmx_pip_qos_watchx_s cn52xxp1
;
880 struct cvmx_pip_qos_watchx_s cn56xx
;
881 struct cvmx_pip_qos_watchx_s cn56xxp1
;
882 struct cvmx_pip_qos_watchx_cn30xx cn58xx
;
883 struct cvmx_pip_qos_watchx_cn30xx cn58xxp1
;
886 union cvmx_pip_raw_word
{
888 struct cvmx_pip_raw_word_s
{
889 uint64_t reserved_56_63
:8;
892 struct cvmx_pip_raw_word_s cn30xx
;
893 struct cvmx_pip_raw_word_s cn31xx
;
894 struct cvmx_pip_raw_word_s cn38xx
;
895 struct cvmx_pip_raw_word_s cn38xxp2
;
896 struct cvmx_pip_raw_word_s cn50xx
;
897 struct cvmx_pip_raw_word_s cn52xx
;
898 struct cvmx_pip_raw_word_s cn52xxp1
;
899 struct cvmx_pip_raw_word_s cn56xx
;
900 struct cvmx_pip_raw_word_s cn56xxp1
;
901 struct cvmx_pip_raw_word_s cn58xx
;
902 struct cvmx_pip_raw_word_s cn58xxp1
;
905 union cvmx_pip_sft_rst
{
907 struct cvmx_pip_sft_rst_s
{
908 uint64_t reserved_1_63
:63;
911 struct cvmx_pip_sft_rst_s cn30xx
;
912 struct cvmx_pip_sft_rst_s cn31xx
;
913 struct cvmx_pip_sft_rst_s cn38xx
;
914 struct cvmx_pip_sft_rst_s cn50xx
;
915 struct cvmx_pip_sft_rst_s cn52xx
;
916 struct cvmx_pip_sft_rst_s cn52xxp1
;
917 struct cvmx_pip_sft_rst_s cn56xx
;
918 struct cvmx_pip_sft_rst_s cn56xxp1
;
919 struct cvmx_pip_sft_rst_s cn58xx
;
920 struct cvmx_pip_sft_rst_s cn58xxp1
;
923 union cvmx_pip_stat0_prtx
{
925 struct cvmx_pip_stat0_prtx_s
{
926 uint64_t drp_pkts
:32;
927 uint64_t drp_octs
:32;
929 struct cvmx_pip_stat0_prtx_s cn30xx
;
930 struct cvmx_pip_stat0_prtx_s cn31xx
;
931 struct cvmx_pip_stat0_prtx_s cn38xx
;
932 struct cvmx_pip_stat0_prtx_s cn38xxp2
;
933 struct cvmx_pip_stat0_prtx_s cn50xx
;
934 struct cvmx_pip_stat0_prtx_s cn52xx
;
935 struct cvmx_pip_stat0_prtx_s cn52xxp1
;
936 struct cvmx_pip_stat0_prtx_s cn56xx
;
937 struct cvmx_pip_stat0_prtx_s cn56xxp1
;
938 struct cvmx_pip_stat0_prtx_s cn58xx
;
939 struct cvmx_pip_stat0_prtx_s cn58xxp1
;
942 union cvmx_pip_stat1_prtx
{
944 struct cvmx_pip_stat1_prtx_s
{
945 uint64_t reserved_48_63
:16;
948 struct cvmx_pip_stat1_prtx_s cn30xx
;
949 struct cvmx_pip_stat1_prtx_s cn31xx
;
950 struct cvmx_pip_stat1_prtx_s cn38xx
;
951 struct cvmx_pip_stat1_prtx_s cn38xxp2
;
952 struct cvmx_pip_stat1_prtx_s cn50xx
;
953 struct cvmx_pip_stat1_prtx_s cn52xx
;
954 struct cvmx_pip_stat1_prtx_s cn52xxp1
;
955 struct cvmx_pip_stat1_prtx_s cn56xx
;
956 struct cvmx_pip_stat1_prtx_s cn56xxp1
;
957 struct cvmx_pip_stat1_prtx_s cn58xx
;
958 struct cvmx_pip_stat1_prtx_s cn58xxp1
;
961 union cvmx_pip_stat2_prtx
{
963 struct cvmx_pip_stat2_prtx_s
{
967 struct cvmx_pip_stat2_prtx_s cn30xx
;
968 struct cvmx_pip_stat2_prtx_s cn31xx
;
969 struct cvmx_pip_stat2_prtx_s cn38xx
;
970 struct cvmx_pip_stat2_prtx_s cn38xxp2
;
971 struct cvmx_pip_stat2_prtx_s cn50xx
;
972 struct cvmx_pip_stat2_prtx_s cn52xx
;
973 struct cvmx_pip_stat2_prtx_s cn52xxp1
;
974 struct cvmx_pip_stat2_prtx_s cn56xx
;
975 struct cvmx_pip_stat2_prtx_s cn56xxp1
;
976 struct cvmx_pip_stat2_prtx_s cn58xx
;
977 struct cvmx_pip_stat2_prtx_s cn58xxp1
;
980 union cvmx_pip_stat3_prtx
{
982 struct cvmx_pip_stat3_prtx_s
{
986 struct cvmx_pip_stat3_prtx_s cn30xx
;
987 struct cvmx_pip_stat3_prtx_s cn31xx
;
988 struct cvmx_pip_stat3_prtx_s cn38xx
;
989 struct cvmx_pip_stat3_prtx_s cn38xxp2
;
990 struct cvmx_pip_stat3_prtx_s cn50xx
;
991 struct cvmx_pip_stat3_prtx_s cn52xx
;
992 struct cvmx_pip_stat3_prtx_s cn52xxp1
;
993 struct cvmx_pip_stat3_prtx_s cn56xx
;
994 struct cvmx_pip_stat3_prtx_s cn56xxp1
;
995 struct cvmx_pip_stat3_prtx_s cn58xx
;
996 struct cvmx_pip_stat3_prtx_s cn58xxp1
;
999 union cvmx_pip_stat4_prtx
{
1001 struct cvmx_pip_stat4_prtx_s
{
1002 uint64_t h65to127
:32;
1005 struct cvmx_pip_stat4_prtx_s cn30xx
;
1006 struct cvmx_pip_stat4_prtx_s cn31xx
;
1007 struct cvmx_pip_stat4_prtx_s cn38xx
;
1008 struct cvmx_pip_stat4_prtx_s cn38xxp2
;
1009 struct cvmx_pip_stat4_prtx_s cn50xx
;
1010 struct cvmx_pip_stat4_prtx_s cn52xx
;
1011 struct cvmx_pip_stat4_prtx_s cn52xxp1
;
1012 struct cvmx_pip_stat4_prtx_s cn56xx
;
1013 struct cvmx_pip_stat4_prtx_s cn56xxp1
;
1014 struct cvmx_pip_stat4_prtx_s cn58xx
;
1015 struct cvmx_pip_stat4_prtx_s cn58xxp1
;
1018 union cvmx_pip_stat5_prtx
{
1020 struct cvmx_pip_stat5_prtx_s
{
1021 uint64_t h256to511
:32;
1022 uint64_t h128to255
:32;
1024 struct cvmx_pip_stat5_prtx_s cn30xx
;
1025 struct cvmx_pip_stat5_prtx_s cn31xx
;
1026 struct cvmx_pip_stat5_prtx_s cn38xx
;
1027 struct cvmx_pip_stat5_prtx_s cn38xxp2
;
1028 struct cvmx_pip_stat5_prtx_s cn50xx
;
1029 struct cvmx_pip_stat5_prtx_s cn52xx
;
1030 struct cvmx_pip_stat5_prtx_s cn52xxp1
;
1031 struct cvmx_pip_stat5_prtx_s cn56xx
;
1032 struct cvmx_pip_stat5_prtx_s cn56xxp1
;
1033 struct cvmx_pip_stat5_prtx_s cn58xx
;
1034 struct cvmx_pip_stat5_prtx_s cn58xxp1
;
1037 union cvmx_pip_stat6_prtx
{
1039 struct cvmx_pip_stat6_prtx_s
{
1040 uint64_t h1024to1518
:32;
1041 uint64_t h512to1023
:32;
1043 struct cvmx_pip_stat6_prtx_s cn30xx
;
1044 struct cvmx_pip_stat6_prtx_s cn31xx
;
1045 struct cvmx_pip_stat6_prtx_s cn38xx
;
1046 struct cvmx_pip_stat6_prtx_s cn38xxp2
;
1047 struct cvmx_pip_stat6_prtx_s cn50xx
;
1048 struct cvmx_pip_stat6_prtx_s cn52xx
;
1049 struct cvmx_pip_stat6_prtx_s cn52xxp1
;
1050 struct cvmx_pip_stat6_prtx_s cn56xx
;
1051 struct cvmx_pip_stat6_prtx_s cn56xxp1
;
1052 struct cvmx_pip_stat6_prtx_s cn58xx
;
1053 struct cvmx_pip_stat6_prtx_s cn58xxp1
;
1056 union cvmx_pip_stat7_prtx
{
1058 struct cvmx_pip_stat7_prtx_s
{
1062 struct cvmx_pip_stat7_prtx_s cn30xx
;
1063 struct cvmx_pip_stat7_prtx_s cn31xx
;
1064 struct cvmx_pip_stat7_prtx_s cn38xx
;
1065 struct cvmx_pip_stat7_prtx_s cn38xxp2
;
1066 struct cvmx_pip_stat7_prtx_s cn50xx
;
1067 struct cvmx_pip_stat7_prtx_s cn52xx
;
1068 struct cvmx_pip_stat7_prtx_s cn52xxp1
;
1069 struct cvmx_pip_stat7_prtx_s cn56xx
;
1070 struct cvmx_pip_stat7_prtx_s cn56xxp1
;
1071 struct cvmx_pip_stat7_prtx_s cn58xx
;
1072 struct cvmx_pip_stat7_prtx_s cn58xxp1
;
1075 union cvmx_pip_stat8_prtx
{
1077 struct cvmx_pip_stat8_prtx_s
{
1079 uint64_t undersz
:32;
1081 struct cvmx_pip_stat8_prtx_s cn30xx
;
1082 struct cvmx_pip_stat8_prtx_s cn31xx
;
1083 struct cvmx_pip_stat8_prtx_s cn38xx
;
1084 struct cvmx_pip_stat8_prtx_s cn38xxp2
;
1085 struct cvmx_pip_stat8_prtx_s cn50xx
;
1086 struct cvmx_pip_stat8_prtx_s cn52xx
;
1087 struct cvmx_pip_stat8_prtx_s cn52xxp1
;
1088 struct cvmx_pip_stat8_prtx_s cn56xx
;
1089 struct cvmx_pip_stat8_prtx_s cn56xxp1
;
1090 struct cvmx_pip_stat8_prtx_s cn58xx
;
1091 struct cvmx_pip_stat8_prtx_s cn58xxp1
;
1094 union cvmx_pip_stat9_prtx
{
1096 struct cvmx_pip_stat9_prtx_s
{
1100 struct cvmx_pip_stat9_prtx_s cn30xx
;
1101 struct cvmx_pip_stat9_prtx_s cn31xx
;
1102 struct cvmx_pip_stat9_prtx_s cn38xx
;
1103 struct cvmx_pip_stat9_prtx_s cn38xxp2
;
1104 struct cvmx_pip_stat9_prtx_s cn50xx
;
1105 struct cvmx_pip_stat9_prtx_s cn52xx
;
1106 struct cvmx_pip_stat9_prtx_s cn52xxp1
;
1107 struct cvmx_pip_stat9_prtx_s cn56xx
;
1108 struct cvmx_pip_stat9_prtx_s cn56xxp1
;
1109 struct cvmx_pip_stat9_prtx_s cn58xx
;
1110 struct cvmx_pip_stat9_prtx_s cn58xxp1
;
1113 union cvmx_pip_stat_ctl
{
1115 struct cvmx_pip_stat_ctl_s
{
1116 uint64_t reserved_1_63
:63;
1119 struct cvmx_pip_stat_ctl_s cn30xx
;
1120 struct cvmx_pip_stat_ctl_s cn31xx
;
1121 struct cvmx_pip_stat_ctl_s cn38xx
;
1122 struct cvmx_pip_stat_ctl_s cn38xxp2
;
1123 struct cvmx_pip_stat_ctl_s cn50xx
;
1124 struct cvmx_pip_stat_ctl_s cn52xx
;
1125 struct cvmx_pip_stat_ctl_s cn52xxp1
;
1126 struct cvmx_pip_stat_ctl_s cn56xx
;
1127 struct cvmx_pip_stat_ctl_s cn56xxp1
;
1128 struct cvmx_pip_stat_ctl_s cn58xx
;
1129 struct cvmx_pip_stat_ctl_s cn58xxp1
;
1132 union cvmx_pip_stat_inb_errsx
{
1134 struct cvmx_pip_stat_inb_errsx_s
{
1135 uint64_t reserved_16_63
:48;
1138 struct cvmx_pip_stat_inb_errsx_s cn30xx
;
1139 struct cvmx_pip_stat_inb_errsx_s cn31xx
;
1140 struct cvmx_pip_stat_inb_errsx_s cn38xx
;
1141 struct cvmx_pip_stat_inb_errsx_s cn38xxp2
;
1142 struct cvmx_pip_stat_inb_errsx_s cn50xx
;
1143 struct cvmx_pip_stat_inb_errsx_s cn52xx
;
1144 struct cvmx_pip_stat_inb_errsx_s cn52xxp1
;
1145 struct cvmx_pip_stat_inb_errsx_s cn56xx
;
1146 struct cvmx_pip_stat_inb_errsx_s cn56xxp1
;
1147 struct cvmx_pip_stat_inb_errsx_s cn58xx
;
1148 struct cvmx_pip_stat_inb_errsx_s cn58xxp1
;
1151 union cvmx_pip_stat_inb_octsx
{
1153 struct cvmx_pip_stat_inb_octsx_s
{
1154 uint64_t reserved_48_63
:16;
1157 struct cvmx_pip_stat_inb_octsx_s cn30xx
;
1158 struct cvmx_pip_stat_inb_octsx_s cn31xx
;
1159 struct cvmx_pip_stat_inb_octsx_s cn38xx
;
1160 struct cvmx_pip_stat_inb_octsx_s cn38xxp2
;
1161 struct cvmx_pip_stat_inb_octsx_s cn50xx
;
1162 struct cvmx_pip_stat_inb_octsx_s cn52xx
;
1163 struct cvmx_pip_stat_inb_octsx_s cn52xxp1
;
1164 struct cvmx_pip_stat_inb_octsx_s cn56xx
;
1165 struct cvmx_pip_stat_inb_octsx_s cn56xxp1
;
1166 struct cvmx_pip_stat_inb_octsx_s cn58xx
;
1167 struct cvmx_pip_stat_inb_octsx_s cn58xxp1
;
1170 union cvmx_pip_stat_inb_pktsx
{
1172 struct cvmx_pip_stat_inb_pktsx_s
{
1173 uint64_t reserved_32_63
:32;
1176 struct cvmx_pip_stat_inb_pktsx_s cn30xx
;
1177 struct cvmx_pip_stat_inb_pktsx_s cn31xx
;
1178 struct cvmx_pip_stat_inb_pktsx_s cn38xx
;
1179 struct cvmx_pip_stat_inb_pktsx_s cn38xxp2
;
1180 struct cvmx_pip_stat_inb_pktsx_s cn50xx
;
1181 struct cvmx_pip_stat_inb_pktsx_s cn52xx
;
1182 struct cvmx_pip_stat_inb_pktsx_s cn52xxp1
;
1183 struct cvmx_pip_stat_inb_pktsx_s cn56xx
;
1184 struct cvmx_pip_stat_inb_pktsx_s cn56xxp1
;
1185 struct cvmx_pip_stat_inb_pktsx_s cn58xx
;
1186 struct cvmx_pip_stat_inb_pktsx_s cn58xxp1
;
1189 union cvmx_pip_tag_incx
{
1191 struct cvmx_pip_tag_incx_s
{
1192 uint64_t reserved_8_63
:56;
1195 struct cvmx_pip_tag_incx_s cn30xx
;
1196 struct cvmx_pip_tag_incx_s cn31xx
;
1197 struct cvmx_pip_tag_incx_s cn38xx
;
1198 struct cvmx_pip_tag_incx_s cn38xxp2
;
1199 struct cvmx_pip_tag_incx_s cn50xx
;
1200 struct cvmx_pip_tag_incx_s cn52xx
;
1201 struct cvmx_pip_tag_incx_s cn52xxp1
;
1202 struct cvmx_pip_tag_incx_s cn56xx
;
1203 struct cvmx_pip_tag_incx_s cn56xxp1
;
1204 struct cvmx_pip_tag_incx_s cn58xx
;
1205 struct cvmx_pip_tag_incx_s cn58xxp1
;
1208 union cvmx_pip_tag_mask
{
1210 struct cvmx_pip_tag_mask_s
{
1211 uint64_t reserved_16_63
:48;
1214 struct cvmx_pip_tag_mask_s cn30xx
;
1215 struct cvmx_pip_tag_mask_s cn31xx
;
1216 struct cvmx_pip_tag_mask_s cn38xx
;
1217 struct cvmx_pip_tag_mask_s cn38xxp2
;
1218 struct cvmx_pip_tag_mask_s cn50xx
;
1219 struct cvmx_pip_tag_mask_s cn52xx
;
1220 struct cvmx_pip_tag_mask_s cn52xxp1
;
1221 struct cvmx_pip_tag_mask_s cn56xx
;
1222 struct cvmx_pip_tag_mask_s cn56xxp1
;
1223 struct cvmx_pip_tag_mask_s cn58xx
;
1224 struct cvmx_pip_tag_mask_s cn58xxp1
;
1227 union cvmx_pip_tag_secret
{
1229 struct cvmx_pip_tag_secret_s
{
1230 uint64_t reserved_32_63
:32;
1234 struct cvmx_pip_tag_secret_s cn30xx
;
1235 struct cvmx_pip_tag_secret_s cn31xx
;
1236 struct cvmx_pip_tag_secret_s cn38xx
;
1237 struct cvmx_pip_tag_secret_s cn38xxp2
;
1238 struct cvmx_pip_tag_secret_s cn50xx
;
1239 struct cvmx_pip_tag_secret_s cn52xx
;
1240 struct cvmx_pip_tag_secret_s cn52xxp1
;
1241 struct cvmx_pip_tag_secret_s cn56xx
;
1242 struct cvmx_pip_tag_secret_s cn56xxp1
;
1243 struct cvmx_pip_tag_secret_s cn58xx
;
1244 struct cvmx_pip_tag_secret_s cn58xxp1
;
1247 union cvmx_pip_todo_entry
{
1249 struct cvmx_pip_todo_entry_s
{
1251 uint64_t reserved_62_62
:1;
1254 struct cvmx_pip_todo_entry_s cn30xx
;
1255 struct cvmx_pip_todo_entry_s cn31xx
;
1256 struct cvmx_pip_todo_entry_s cn38xx
;
1257 struct cvmx_pip_todo_entry_s cn38xxp2
;
1258 struct cvmx_pip_todo_entry_s cn50xx
;
1259 struct cvmx_pip_todo_entry_s cn52xx
;
1260 struct cvmx_pip_todo_entry_s cn52xxp1
;
1261 struct cvmx_pip_todo_entry_s cn56xx
;
1262 struct cvmx_pip_todo_entry_s cn56xxp1
;
1263 struct cvmx_pip_todo_entry_s cn58xx
;
1264 struct cvmx_pip_todo_entry_s cn58xxp1
;