154293ec3SDavid Daney /***********************license start***************
254293ec3SDavid Daney  * Author: Cavium Networks
354293ec3SDavid Daney  *
454293ec3SDavid Daney  * Contact: support@caviumnetworks.com
554293ec3SDavid Daney  * This file is part of the OCTEON SDK
654293ec3SDavid Daney  *
7c5aa59e8SDavid Daney  * Copyright (c) 2003-2012 Cavium Networks
854293ec3SDavid Daney  *
954293ec3SDavid Daney  * This file is free software; you can redistribute it and/or modify
1054293ec3SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
1154293ec3SDavid Daney  * published by the Free Software Foundation.
1254293ec3SDavid Daney  *
1354293ec3SDavid Daney  * This file is distributed in the hope that it will be useful, but
1454293ec3SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
1554293ec3SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
1654293ec3SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
1754293ec3SDavid Daney  * details.
1854293ec3SDavid Daney  *
1954293ec3SDavid Daney  * You should have received a copy of the GNU General Public License
2054293ec3SDavid Daney  * along with this file; if not, write to the Free Software
2154293ec3SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2254293ec3SDavid Daney  * or visit http://www.gnu.org/licenses/.
2354293ec3SDavid Daney  *
2454293ec3SDavid Daney  * This file may also be available under a different license from Cavium.
2554293ec3SDavid Daney  * Contact Cavium Networks for more information
2654293ec3SDavid Daney  ***********************license end**************************************/
2754293ec3SDavid Daney 
2854293ec3SDavid Daney #ifndef __CVMX_IPD_DEFS_H__
2954293ec3SDavid Daney #define __CVMX_IPD_DEFS_H__
3054293ec3SDavid Daney 
31aa32a955SDavid Daney #define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull))
32aa32a955SDavid Daney #define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull))
33aa32a955SDavid Daney #define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull))
34aa32a955SDavid Daney #define CVMX_IPD_BIST_STATUS (CVMX_ADD_IO_SEG(0x00014F00000007F8ull))
35c5aa59e8SDavid Daney #define CVMX_IPD_BPIDX_MBUF_TH(offset) (CVMX_ADD_IO_SEG(0x00014F0000002000ull) + ((offset) & 63) * 8)
36c5aa59e8SDavid Daney #define CVMX_IPD_BPID_BP_COUNTERX(offset) (CVMX_ADD_IO_SEG(0x00014F0000003000ull) + ((offset) & 63) * 8)
37aa32a955SDavid Daney #define CVMX_IPD_BP_PRT_RED_END (CVMX_ADD_IO_SEG(0x00014F0000000328ull))
38aa32a955SDavid Daney #define CVMX_IPD_CLK_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000338ull))
39c5aa59e8SDavid Daney #define CVMX_IPD_CREDITS (CVMX_ADD_IO_SEG(0x00014F0000004410ull))
40aa32a955SDavid Daney #define CVMX_IPD_CTL_STATUS (CVMX_ADD_IO_SEG(0x00014F0000000018ull))
41c5aa59e8SDavid Daney #define CVMX_IPD_ECC_CTL (CVMX_ADD_IO_SEG(0x00014F0000004408ull))
42c5aa59e8SDavid Daney #define CVMX_IPD_FREE_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000780ull))
43c5aa59e8SDavid Daney #define CVMX_IPD_FREE_PTR_VALUE (CVMX_ADD_IO_SEG(0x00014F0000000788ull))
44c5aa59e8SDavid Daney #define CVMX_IPD_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000790ull))
45aa32a955SDavid Daney #define CVMX_IPD_INT_ENB (CVMX_ADD_IO_SEG(0x00014F0000000160ull))
46aa32a955SDavid Daney #define CVMX_IPD_INT_SUM (CVMX_ADD_IO_SEG(0x00014F0000000168ull))
47c5aa59e8SDavid Daney #define CVMX_IPD_NEXT_PKT_PTR (CVMX_ADD_IO_SEG(0x00014F00000007A0ull))
48c5aa59e8SDavid Daney #define CVMX_IPD_NEXT_WQE_PTR (CVMX_ADD_IO_SEG(0x00014F00000007A8ull))
49aa32a955SDavid Daney #define CVMX_IPD_NOT_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000008ull))
50c5aa59e8SDavid Daney #define CVMX_IPD_ON_BP_DROP_PKTX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004100ull))
51aa32a955SDavid Daney #define CVMX_IPD_PACKET_MBUFF_SIZE (CVMX_ADD_IO_SEG(0x00014F0000000010ull))
52c5aa59e8SDavid Daney #define CVMX_IPD_PKT_ERR (CVMX_ADD_IO_SEG(0x00014F00000003F0ull))
53aa32a955SDavid Daney #define CVMX_IPD_PKT_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000358ull))
54aa32a955SDavid Daney #define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000028ull) + ((offset) & 63) * 8)
55aa32a955SDavid Daney #define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) (CVMX_ADD_IO_SEG(0x00014F0000000368ull) + ((offset) & 63) * 8 - 8*36)
56aa32a955SDavid Daney #define CVMX_IPD_PORTX_BP_PAGE_CNT3(offset) (CVMX_ADD_IO_SEG(0x00014F00000003D0ull) + ((offset) & 63) * 8 - 8*40)
57aa32a955SDavid Daney #define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000388ull) + ((offset) & 63) * 8 - 8*36)
58aa32a955SDavid Daney #define CVMX_IPD_PORT_BP_COUNTERS3_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000003B0ull) + ((offset) & 63) * 8 - 8*40)
59c5aa59e8SDavid Daney #define CVMX_IPD_PORT_BP_COUNTERS4_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000410ull) + ((offset) & 63) * 8 - 8*44)
60aa32a955SDavid Daney #define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000001B8ull) + ((offset) & 63) * 8)
61c5aa59e8SDavid Daney #define CVMX_IPD_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000798ull))
62aa32a955SDavid Daney #define CVMX_IPD_PORT_QOS_INTX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000808ull) + ((offset) & 7) * 8)
63aa32a955SDavid Daney #define CVMX_IPD_PORT_QOS_INT_ENBX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000848ull) + ((offset) & 7) * 8)
64aa32a955SDavid Daney #define CVMX_IPD_PORT_QOS_X_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000888ull) + ((offset) & 511) * 8)
65c5aa59e8SDavid Daney #define CVMX_IPD_PORT_SOPX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004400ull))
66aa32a955SDavid Daney #define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000348ull))
67aa32a955SDavid Daney #define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000350ull))
68aa32a955SDavid Daney #define CVMX_IPD_PTR_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000320ull))
69aa32a955SDavid Daney #define CVMX_IPD_PWP_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000340ull))
70aa32a955SDavid Daney #define CVMX_IPD_QOS0_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(0)
71aa32a955SDavid Daney #define CVMX_IPD_QOS1_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(1)
72aa32a955SDavid Daney #define CVMX_IPD_QOS2_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(2)
73aa32a955SDavid Daney #define CVMX_IPD_QOS3_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(3)
74aa32a955SDavid Daney #define CVMX_IPD_QOS4_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(4)
75aa32a955SDavid Daney #define CVMX_IPD_QOS5_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(5)
76aa32a955SDavid Daney #define CVMX_IPD_QOS6_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(6)
77aa32a955SDavid Daney #define CVMX_IPD_QOS7_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(7)
78aa32a955SDavid Daney #define CVMX_IPD_QOSX_RED_MARKS(offset) (CVMX_ADD_IO_SEG(0x00014F0000000178ull) + ((offset) & 7) * 8)
79aa32a955SDavid Daney #define CVMX_IPD_QUE0_FREE_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000330ull))
80c5aa59e8SDavid Daney #define CVMX_IPD_RED_BPID_ENABLEX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004200ull))
81c5aa59e8SDavid Daney #define CVMX_IPD_RED_DELAY (CVMX_ADD_IO_SEG(0x00014F0000004300ull))
82aa32a955SDavid Daney #define CVMX_IPD_RED_PORT_ENABLE (CVMX_ADD_IO_SEG(0x00014F00000002D8ull))
83aa32a955SDavid Daney #define CVMX_IPD_RED_PORT_ENABLE2 (CVMX_ADD_IO_SEG(0x00014F00000003A8ull))
84aa32a955SDavid Daney #define CVMX_IPD_RED_QUE0_PARAM CVMX_IPD_RED_QUEX_PARAM(0)
85aa32a955SDavid Daney #define CVMX_IPD_RED_QUE1_PARAM CVMX_IPD_RED_QUEX_PARAM(1)
86aa32a955SDavid Daney #define CVMX_IPD_RED_QUE2_PARAM CVMX_IPD_RED_QUEX_PARAM(2)
87aa32a955SDavid Daney #define CVMX_IPD_RED_QUE3_PARAM CVMX_IPD_RED_QUEX_PARAM(3)
88aa32a955SDavid Daney #define CVMX_IPD_RED_QUE4_PARAM CVMX_IPD_RED_QUEX_PARAM(4)
89aa32a955SDavid Daney #define CVMX_IPD_RED_QUE5_PARAM CVMX_IPD_RED_QUEX_PARAM(5)
90aa32a955SDavid Daney #define CVMX_IPD_RED_QUE6_PARAM CVMX_IPD_RED_QUEX_PARAM(6)
91aa32a955SDavid Daney #define CVMX_IPD_RED_QUE7_PARAM CVMX_IPD_RED_QUEX_PARAM(7)
92aa32a955SDavid Daney #define CVMX_IPD_RED_QUEX_PARAM(offset) (CVMX_ADD_IO_SEG(0x00014F00000002E0ull) + ((offset) & 7) * 8)
93c5aa59e8SDavid Daney #define CVMX_IPD_REQ_WGT (CVMX_ADD_IO_SEG(0x00014F0000004418ull))
94aa32a955SDavid Daney #define CVMX_IPD_SUB_PORT_BP_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000148ull))
95aa32a955SDavid Daney #define CVMX_IPD_SUB_PORT_FCS (CVMX_ADD_IO_SEG(0x00014F0000000170ull))
96aa32a955SDavid Daney #define CVMX_IPD_SUB_PORT_QOS_CNT (CVMX_ADD_IO_SEG(0x00014F0000000800ull))
97aa32a955SDavid Daney #define CVMX_IPD_WQE_FPA_QUEUE (CVMX_ADD_IO_SEG(0x00014F0000000020ull))
98aa32a955SDavid Daney #define CVMX_IPD_WQE_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000360ull))
9954293ec3SDavid Daney 
10054293ec3SDavid Daney union cvmx_ipd_1st_mbuff_skip {
10154293ec3SDavid Daney 	uint64_t u64;
10254293ec3SDavid Daney 	struct cvmx_ipd_1st_mbuff_skip_s {
103c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
10454293ec3SDavid Daney 		uint64_t reserved_6_63:58;
10554293ec3SDavid Daney 		uint64_t skip_sz:6;
106c5aa59e8SDavid Daney #else
107c5aa59e8SDavid Daney 		uint64_t skip_sz:6;
108c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
109c5aa59e8SDavid Daney #endif
11054293ec3SDavid Daney 	} s;
11154293ec3SDavid Daney };
11254293ec3SDavid Daney 
11354293ec3SDavid Daney union cvmx_ipd_1st_next_ptr_back {
11454293ec3SDavid Daney 	uint64_t u64;
11554293ec3SDavid Daney 	struct cvmx_ipd_1st_next_ptr_back_s {
116c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
11754293ec3SDavid Daney 		uint64_t reserved_4_63:60;
11854293ec3SDavid Daney 		uint64_t back:4;
119c5aa59e8SDavid Daney #else
120c5aa59e8SDavid Daney 		uint64_t back:4;
121c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
122c5aa59e8SDavid Daney #endif
12354293ec3SDavid Daney 	} s;
12454293ec3SDavid Daney };
12554293ec3SDavid Daney 
12654293ec3SDavid Daney union cvmx_ipd_2nd_next_ptr_back {
12754293ec3SDavid Daney 	uint64_t u64;
12854293ec3SDavid Daney 	struct cvmx_ipd_2nd_next_ptr_back_s {
129c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
13054293ec3SDavid Daney 		uint64_t reserved_4_63:60;
13154293ec3SDavid Daney 		uint64_t back:4;
132c5aa59e8SDavid Daney #else
133c5aa59e8SDavid Daney 		uint64_t back:4;
134c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
135c5aa59e8SDavid Daney #endif
13654293ec3SDavid Daney 	} s;
13754293ec3SDavid Daney };
13854293ec3SDavid Daney 
13954293ec3SDavid Daney union cvmx_ipd_bist_status {
14054293ec3SDavid Daney 	uint64_t u64;
14154293ec3SDavid Daney 	struct cvmx_ipd_bist_status_s {
142c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
143c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
144c5aa59e8SDavid Daney 		uint64_t iiwo1:1;
145c5aa59e8SDavid Daney 		uint64_t iiwo0:1;
146c5aa59e8SDavid Daney 		uint64_t iio1:1;
147c5aa59e8SDavid Daney 		uint64_t iio0:1;
148c5aa59e8SDavid Daney 		uint64_t pbm4:1;
149c5aa59e8SDavid Daney 		uint64_t csr_mem:1;
150c5aa59e8SDavid Daney 		uint64_t csr_ncmd:1;
151c5aa59e8SDavid Daney 		uint64_t pwq_wqed:1;
152c5aa59e8SDavid Daney 		uint64_t pwq_wp1:1;
153c5aa59e8SDavid Daney 		uint64_t pwq_pow:1;
154c5aa59e8SDavid Daney 		uint64_t ipq_pbe1:1;
155c5aa59e8SDavid Daney 		uint64_t ipq_pbe0:1;
156c5aa59e8SDavid Daney 		uint64_t pbm3:1;
157c5aa59e8SDavid Daney 		uint64_t pbm2:1;
158c5aa59e8SDavid Daney 		uint64_t pbm1:1;
159c5aa59e8SDavid Daney 		uint64_t pbm0:1;
160c5aa59e8SDavid Daney 		uint64_t pbm_word:1;
161c5aa59e8SDavid Daney 		uint64_t pwq1:1;
162c5aa59e8SDavid Daney 		uint64_t pwq0:1;
163c5aa59e8SDavid Daney 		uint64_t prc_off:1;
164c5aa59e8SDavid Daney 		uint64_t ipd_old:1;
165c5aa59e8SDavid Daney 		uint64_t ipd_new:1;
166c5aa59e8SDavid Daney 		uint64_t pwp:1;
167c5aa59e8SDavid Daney #else
168c5aa59e8SDavid Daney 		uint64_t pwp:1;
169c5aa59e8SDavid Daney 		uint64_t ipd_new:1;
170c5aa59e8SDavid Daney 		uint64_t ipd_old:1;
171c5aa59e8SDavid Daney 		uint64_t prc_off:1;
172c5aa59e8SDavid Daney 		uint64_t pwq0:1;
173c5aa59e8SDavid Daney 		uint64_t pwq1:1;
174c5aa59e8SDavid Daney 		uint64_t pbm_word:1;
175c5aa59e8SDavid Daney 		uint64_t pbm0:1;
176c5aa59e8SDavid Daney 		uint64_t pbm1:1;
177c5aa59e8SDavid Daney 		uint64_t pbm2:1;
178c5aa59e8SDavid Daney 		uint64_t pbm3:1;
179c5aa59e8SDavid Daney 		uint64_t ipq_pbe0:1;
180c5aa59e8SDavid Daney 		uint64_t ipq_pbe1:1;
181c5aa59e8SDavid Daney 		uint64_t pwq_pow:1;
182c5aa59e8SDavid Daney 		uint64_t pwq_wp1:1;
183c5aa59e8SDavid Daney 		uint64_t pwq_wqed:1;
184c5aa59e8SDavid Daney 		uint64_t csr_ncmd:1;
185c5aa59e8SDavid Daney 		uint64_t csr_mem:1;
186c5aa59e8SDavid Daney 		uint64_t pbm4:1;
187c5aa59e8SDavid Daney 		uint64_t iio0:1;
188c5aa59e8SDavid Daney 		uint64_t iio1:1;
189c5aa59e8SDavid Daney 		uint64_t iiwo0:1;
190c5aa59e8SDavid Daney 		uint64_t iiwo1:1;
191c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
192c5aa59e8SDavid Daney #endif
193c5aa59e8SDavid Daney 	} s;
194c5aa59e8SDavid Daney 	struct cvmx_ipd_bist_status_cn30xx {
195c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
196c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
197c5aa59e8SDavid Daney 		uint64_t pwq_wqed:1;
198c5aa59e8SDavid Daney 		uint64_t pwq_wp1:1;
199c5aa59e8SDavid Daney 		uint64_t pwq_pow:1;
200c5aa59e8SDavid Daney 		uint64_t ipq_pbe1:1;
201c5aa59e8SDavid Daney 		uint64_t ipq_pbe0:1;
202c5aa59e8SDavid Daney 		uint64_t pbm3:1;
203c5aa59e8SDavid Daney 		uint64_t pbm2:1;
204c5aa59e8SDavid Daney 		uint64_t pbm1:1;
205c5aa59e8SDavid Daney 		uint64_t pbm0:1;
206c5aa59e8SDavid Daney 		uint64_t pbm_word:1;
207c5aa59e8SDavid Daney 		uint64_t pwq1:1;
208c5aa59e8SDavid Daney 		uint64_t pwq0:1;
209c5aa59e8SDavid Daney 		uint64_t prc_off:1;
210c5aa59e8SDavid Daney 		uint64_t ipd_old:1;
211c5aa59e8SDavid Daney 		uint64_t ipd_new:1;
212c5aa59e8SDavid Daney 		uint64_t pwp:1;
213c5aa59e8SDavid Daney #else
214c5aa59e8SDavid Daney 		uint64_t pwp:1;
215c5aa59e8SDavid Daney 		uint64_t ipd_new:1;
216c5aa59e8SDavid Daney 		uint64_t ipd_old:1;
217c5aa59e8SDavid Daney 		uint64_t prc_off:1;
218c5aa59e8SDavid Daney 		uint64_t pwq0:1;
219c5aa59e8SDavid Daney 		uint64_t pwq1:1;
220c5aa59e8SDavid Daney 		uint64_t pbm_word:1;
221c5aa59e8SDavid Daney 		uint64_t pbm0:1;
222c5aa59e8SDavid Daney 		uint64_t pbm1:1;
223c5aa59e8SDavid Daney 		uint64_t pbm2:1;
224c5aa59e8SDavid Daney 		uint64_t pbm3:1;
225c5aa59e8SDavid Daney 		uint64_t ipq_pbe0:1;
226c5aa59e8SDavid Daney 		uint64_t ipq_pbe1:1;
227c5aa59e8SDavid Daney 		uint64_t pwq_pow:1;
228c5aa59e8SDavid Daney 		uint64_t pwq_wp1:1;
229c5aa59e8SDavid Daney 		uint64_t pwq_wqed:1;
230c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
231c5aa59e8SDavid Daney #endif
232c5aa59e8SDavid Daney 	} cn30xx;
233c5aa59e8SDavid Daney 	struct cvmx_ipd_bist_status_cn52xx {
234c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
23554293ec3SDavid Daney 		uint64_t reserved_18_63:46;
23654293ec3SDavid Daney 		uint64_t csr_mem:1;
23754293ec3SDavid Daney 		uint64_t csr_ncmd:1;
23854293ec3SDavid Daney 		uint64_t pwq_wqed:1;
23954293ec3SDavid Daney 		uint64_t pwq_wp1:1;
24054293ec3SDavid Daney 		uint64_t pwq_pow:1;
24154293ec3SDavid Daney 		uint64_t ipq_pbe1:1;
24254293ec3SDavid Daney 		uint64_t ipq_pbe0:1;
24354293ec3SDavid Daney 		uint64_t pbm3:1;
24454293ec3SDavid Daney 		uint64_t pbm2:1;
24554293ec3SDavid Daney 		uint64_t pbm1:1;
24654293ec3SDavid Daney 		uint64_t pbm0:1;
24754293ec3SDavid Daney 		uint64_t pbm_word:1;
24854293ec3SDavid Daney 		uint64_t pwq1:1;
24954293ec3SDavid Daney 		uint64_t pwq0:1;
25054293ec3SDavid Daney 		uint64_t prc_off:1;
25154293ec3SDavid Daney 		uint64_t ipd_old:1;
25254293ec3SDavid Daney 		uint64_t ipd_new:1;
25354293ec3SDavid Daney 		uint64_t pwp:1;
254c5aa59e8SDavid Daney #else
25554293ec3SDavid Daney 		uint64_t pwp:1;
256c5aa59e8SDavid Daney 		uint64_t ipd_new:1;
257c5aa59e8SDavid Daney 		uint64_t ipd_old:1;
258c5aa59e8SDavid Daney 		uint64_t prc_off:1;
259c5aa59e8SDavid Daney 		uint64_t pwq0:1;
260c5aa59e8SDavid Daney 		uint64_t pwq1:1;
261c5aa59e8SDavid Daney 		uint64_t pbm_word:1;
262c5aa59e8SDavid Daney 		uint64_t pbm0:1;
263c5aa59e8SDavid Daney 		uint64_t pbm1:1;
264c5aa59e8SDavid Daney 		uint64_t pbm2:1;
265c5aa59e8SDavid Daney 		uint64_t pbm3:1;
266c5aa59e8SDavid Daney 		uint64_t ipq_pbe0:1;
267c5aa59e8SDavid Daney 		uint64_t ipq_pbe1:1;
268c5aa59e8SDavid Daney 		uint64_t pwq_pow:1;
269c5aa59e8SDavid Daney 		uint64_t pwq_wp1:1;
270c5aa59e8SDavid Daney 		uint64_t pwq_wqed:1;
271c5aa59e8SDavid Daney 		uint64_t csr_ncmd:1;
272c5aa59e8SDavid Daney 		uint64_t csr_mem:1;
273c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
274c5aa59e8SDavid Daney #endif
275c5aa59e8SDavid Daney 	} cn52xx;
27654293ec3SDavid Daney };
27754293ec3SDavid Daney 
27854293ec3SDavid Daney union cvmx_ipd_bp_prt_red_end {
27954293ec3SDavid Daney 	uint64_t u64;
28054293ec3SDavid Daney 	struct cvmx_ipd_bp_prt_red_end_s {
281c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
282c5aa59e8SDavid Daney 		uint64_t reserved_48_63:16;
283c5aa59e8SDavid Daney 		uint64_t prt_enb:48;
284c5aa59e8SDavid Daney #else
285c5aa59e8SDavid Daney 		uint64_t prt_enb:48;
286c5aa59e8SDavid Daney 		uint64_t reserved_48_63:16;
287c5aa59e8SDavid Daney #endif
28854293ec3SDavid Daney 	} s;
28954293ec3SDavid Daney 	struct cvmx_ipd_bp_prt_red_end_cn30xx {
290c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
29154293ec3SDavid Daney 		uint64_t reserved_36_63:28;
29254293ec3SDavid Daney 		uint64_t prt_enb:36;
293c5aa59e8SDavid Daney #else
294c5aa59e8SDavid Daney 		uint64_t prt_enb:36;
295c5aa59e8SDavid Daney 		uint64_t reserved_36_63:28;
296c5aa59e8SDavid Daney #endif
29754293ec3SDavid Daney 	} cn30xx;
298aa32a955SDavid Daney 	struct cvmx_ipd_bp_prt_red_end_cn52xx {
299c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
300aa32a955SDavid Daney 		uint64_t reserved_40_63:24;
301aa32a955SDavid Daney 		uint64_t prt_enb:40;
302c5aa59e8SDavid Daney #else
303c5aa59e8SDavid Daney 		uint64_t prt_enb:40;
304c5aa59e8SDavid Daney 		uint64_t reserved_40_63:24;
305c5aa59e8SDavid Daney #endif
306aa32a955SDavid Daney 	} cn52xx;
307c5aa59e8SDavid Daney 	struct cvmx_ipd_bp_prt_red_end_cn63xx {
308c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
309c5aa59e8SDavid Daney 		uint64_t reserved_44_63:20;
310c5aa59e8SDavid Daney 		uint64_t prt_enb:44;
311c5aa59e8SDavid Daney #else
312c5aa59e8SDavid Daney 		uint64_t prt_enb:44;
313c5aa59e8SDavid Daney 		uint64_t reserved_44_63:20;
314c5aa59e8SDavid Daney #endif
315c5aa59e8SDavid Daney 	} cn63xx;
316c5aa59e8SDavid Daney };
317c5aa59e8SDavid Daney 
318c5aa59e8SDavid Daney union cvmx_ipd_bpidx_mbuf_th {
319c5aa59e8SDavid Daney 	uint64_t u64;
320c5aa59e8SDavid Daney 	struct cvmx_ipd_bpidx_mbuf_th_s {
321c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
322c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
323c5aa59e8SDavid Daney 		uint64_t bp_enb:1;
324c5aa59e8SDavid Daney 		uint64_t page_cnt:17;
325c5aa59e8SDavid Daney #else
326c5aa59e8SDavid Daney 		uint64_t page_cnt:17;
327c5aa59e8SDavid Daney 		uint64_t bp_enb:1;
328c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
329c5aa59e8SDavid Daney #endif
330c5aa59e8SDavid Daney 	} s;
331c5aa59e8SDavid Daney };
332c5aa59e8SDavid Daney 
333c5aa59e8SDavid Daney union cvmx_ipd_bpid_bp_counterx {
334c5aa59e8SDavid Daney 	uint64_t u64;
335c5aa59e8SDavid Daney 	struct cvmx_ipd_bpid_bp_counterx_s {
336c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
337c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
338c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
339c5aa59e8SDavid Daney #else
340c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
341c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
342c5aa59e8SDavid Daney #endif
343c5aa59e8SDavid Daney 	} s;
34454293ec3SDavid Daney };
34554293ec3SDavid Daney 
34654293ec3SDavid Daney union cvmx_ipd_clk_count {
34754293ec3SDavid Daney 	uint64_t u64;
34854293ec3SDavid Daney 	struct cvmx_ipd_clk_count_s {
349c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
35054293ec3SDavid Daney 		uint64_t clk_cnt:64;
351c5aa59e8SDavid Daney #else
352c5aa59e8SDavid Daney 		uint64_t clk_cnt:64;
353c5aa59e8SDavid Daney #endif
35454293ec3SDavid Daney 	} s;
355c5aa59e8SDavid Daney };
356c5aa59e8SDavid Daney 
357c5aa59e8SDavid Daney union cvmx_ipd_credits {
358c5aa59e8SDavid Daney 	uint64_t u64;
359c5aa59e8SDavid Daney 	struct cvmx_ipd_credits_s {
360c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
361c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
362c5aa59e8SDavid Daney 		uint64_t iob_wrc:8;
363c5aa59e8SDavid Daney 		uint64_t iob_wr:8;
364c5aa59e8SDavid Daney #else
365c5aa59e8SDavid Daney 		uint64_t iob_wr:8;
366c5aa59e8SDavid Daney 		uint64_t iob_wrc:8;
367c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
368c5aa59e8SDavid Daney #endif
369c5aa59e8SDavid Daney 	} s;
37054293ec3SDavid Daney };
37154293ec3SDavid Daney 
37254293ec3SDavid Daney union cvmx_ipd_ctl_status {
37354293ec3SDavid Daney 	uint64_t u64;
37454293ec3SDavid Daney 	struct cvmx_ipd_ctl_status_s {
375c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
376aa32a955SDavid Daney 		uint64_t reserved_18_63:46;
377aa32a955SDavid Daney 		uint64_t use_sop:1;
378aa32a955SDavid Daney 		uint64_t rst_done:1;
379aa32a955SDavid Daney 		uint64_t clken:1;
38054293ec3SDavid Daney 		uint64_t no_wptr:1;
38154293ec3SDavid Daney 		uint64_t pq_apkt:1;
38254293ec3SDavid Daney 		uint64_t pq_nabuf:1;
38354293ec3SDavid Daney 		uint64_t ipd_full:1;
38454293ec3SDavid Daney 		uint64_t pkt_off:1;
38554293ec3SDavid Daney 		uint64_t len_m8:1;
38654293ec3SDavid Daney 		uint64_t reset:1;
38754293ec3SDavid Daney 		uint64_t addpkt:1;
38854293ec3SDavid Daney 		uint64_t naddbuf:1;
38954293ec3SDavid Daney 		uint64_t pkt_lend:1;
39054293ec3SDavid Daney 		uint64_t wqe_lend:1;
39154293ec3SDavid Daney 		uint64_t pbp_en:1;
39254293ec3SDavid Daney 		uint64_t opc_mode:2;
39354293ec3SDavid Daney 		uint64_t ipd_en:1;
394c5aa59e8SDavid Daney #else
395c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
396c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
397c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
398c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
399c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
400c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
401c5aa59e8SDavid Daney 		uint64_t addpkt:1;
402c5aa59e8SDavid Daney 		uint64_t reset:1;
403c5aa59e8SDavid Daney 		uint64_t len_m8:1;
404c5aa59e8SDavid Daney 		uint64_t pkt_off:1;
405c5aa59e8SDavid Daney 		uint64_t ipd_full:1;
406c5aa59e8SDavid Daney 		uint64_t pq_nabuf:1;
407c5aa59e8SDavid Daney 		uint64_t pq_apkt:1;
408c5aa59e8SDavid Daney 		uint64_t no_wptr:1;
409c5aa59e8SDavid Daney 		uint64_t clken:1;
410c5aa59e8SDavid Daney 		uint64_t rst_done:1;
411c5aa59e8SDavid Daney 		uint64_t use_sop:1;
412c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
413c5aa59e8SDavid Daney #endif
41454293ec3SDavid Daney 	} s;
41554293ec3SDavid Daney 	struct cvmx_ipd_ctl_status_cn30xx {
416c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
41754293ec3SDavid Daney 		uint64_t reserved_10_63:54;
41854293ec3SDavid Daney 		uint64_t len_m8:1;
41954293ec3SDavid Daney 		uint64_t reset:1;
42054293ec3SDavid Daney 		uint64_t addpkt:1;
42154293ec3SDavid Daney 		uint64_t naddbuf:1;
42254293ec3SDavid Daney 		uint64_t pkt_lend:1;
42354293ec3SDavid Daney 		uint64_t wqe_lend:1;
42454293ec3SDavid Daney 		uint64_t pbp_en:1;
42554293ec3SDavid Daney 		uint64_t opc_mode:2;
42654293ec3SDavid Daney 		uint64_t ipd_en:1;
427c5aa59e8SDavid Daney #else
428c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
429c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
430c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
431c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
432c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
433c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
434c5aa59e8SDavid Daney 		uint64_t addpkt:1;
435c5aa59e8SDavid Daney 		uint64_t reset:1;
436c5aa59e8SDavid Daney 		uint64_t len_m8:1;
437c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
438c5aa59e8SDavid Daney #endif
43954293ec3SDavid Daney 	} cn30xx;
44054293ec3SDavid Daney 	struct cvmx_ipd_ctl_status_cn38xxp2 {
441c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
44254293ec3SDavid Daney 		uint64_t reserved_9_63:55;
44354293ec3SDavid Daney 		uint64_t reset:1;
44454293ec3SDavid Daney 		uint64_t addpkt:1;
44554293ec3SDavid Daney 		uint64_t naddbuf:1;
44654293ec3SDavid Daney 		uint64_t pkt_lend:1;
44754293ec3SDavid Daney 		uint64_t wqe_lend:1;
44854293ec3SDavid Daney 		uint64_t pbp_en:1;
44954293ec3SDavid Daney 		uint64_t opc_mode:2;
45054293ec3SDavid Daney 		uint64_t ipd_en:1;
451c5aa59e8SDavid Daney #else
452c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
453c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
454c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
455c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
456c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
457c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
458c5aa59e8SDavid Daney 		uint64_t addpkt:1;
459c5aa59e8SDavid Daney 		uint64_t reset:1;
460c5aa59e8SDavid Daney 		uint64_t reserved_9_63:55;
461c5aa59e8SDavid Daney #endif
46254293ec3SDavid Daney 	} cn38xxp2;
463aa32a955SDavid Daney 	struct cvmx_ipd_ctl_status_cn50xx {
464c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
465aa32a955SDavid Daney 		uint64_t reserved_15_63:49;
466aa32a955SDavid Daney 		uint64_t no_wptr:1;
467aa32a955SDavid Daney 		uint64_t pq_apkt:1;
468aa32a955SDavid Daney 		uint64_t pq_nabuf:1;
469aa32a955SDavid Daney 		uint64_t ipd_full:1;
470aa32a955SDavid Daney 		uint64_t pkt_off:1;
471aa32a955SDavid Daney 		uint64_t len_m8:1;
472aa32a955SDavid Daney 		uint64_t reset:1;
473aa32a955SDavid Daney 		uint64_t addpkt:1;
474aa32a955SDavid Daney 		uint64_t naddbuf:1;
475aa32a955SDavid Daney 		uint64_t pkt_lend:1;
476aa32a955SDavid Daney 		uint64_t wqe_lend:1;
477aa32a955SDavid Daney 		uint64_t pbp_en:1;
478aa32a955SDavid Daney 		uint64_t opc_mode:2;
479aa32a955SDavid Daney 		uint64_t ipd_en:1;
480c5aa59e8SDavid Daney #else
481c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
482c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
483c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
484c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
485c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
486c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
487c5aa59e8SDavid Daney 		uint64_t addpkt:1;
488c5aa59e8SDavid Daney 		uint64_t reset:1;
489c5aa59e8SDavid Daney 		uint64_t len_m8:1;
490c5aa59e8SDavid Daney 		uint64_t pkt_off:1;
491c5aa59e8SDavid Daney 		uint64_t ipd_full:1;
492c5aa59e8SDavid Daney 		uint64_t pq_nabuf:1;
493c5aa59e8SDavid Daney 		uint64_t pq_apkt:1;
494c5aa59e8SDavid Daney 		uint64_t no_wptr:1;
495c5aa59e8SDavid Daney 		uint64_t reserved_15_63:49;
496c5aa59e8SDavid Daney #endif
497aa32a955SDavid Daney 	} cn50xx;
49854293ec3SDavid Daney 	struct cvmx_ipd_ctl_status_cn58xx {
499c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
50054293ec3SDavid Daney 		uint64_t reserved_12_63:52;
50154293ec3SDavid Daney 		uint64_t ipd_full:1;
50254293ec3SDavid Daney 		uint64_t pkt_off:1;
50354293ec3SDavid Daney 		uint64_t len_m8:1;
50454293ec3SDavid Daney 		uint64_t reset:1;
50554293ec3SDavid Daney 		uint64_t addpkt:1;
50654293ec3SDavid Daney 		uint64_t naddbuf:1;
50754293ec3SDavid Daney 		uint64_t pkt_lend:1;
50854293ec3SDavid Daney 		uint64_t wqe_lend:1;
50954293ec3SDavid Daney 		uint64_t pbp_en:1;
51054293ec3SDavid Daney 		uint64_t opc_mode:2;
51154293ec3SDavid Daney 		uint64_t ipd_en:1;
512c5aa59e8SDavid Daney #else
513c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
514c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
515c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
516c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
517c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
518c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
519c5aa59e8SDavid Daney 		uint64_t addpkt:1;
520c5aa59e8SDavid Daney 		uint64_t reset:1;
521c5aa59e8SDavid Daney 		uint64_t len_m8:1;
522c5aa59e8SDavid Daney 		uint64_t pkt_off:1;
523c5aa59e8SDavid Daney 		uint64_t ipd_full:1;
524c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
525c5aa59e8SDavid Daney #endif
52654293ec3SDavid Daney 	} cn58xx;
527aa32a955SDavid Daney 	struct cvmx_ipd_ctl_status_cn63xxp1 {
528c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
529aa32a955SDavid Daney 		uint64_t reserved_16_63:48;
530aa32a955SDavid Daney 		uint64_t clken:1;
531aa32a955SDavid Daney 		uint64_t no_wptr:1;
532aa32a955SDavid Daney 		uint64_t pq_apkt:1;
533aa32a955SDavid Daney 		uint64_t pq_nabuf:1;
534aa32a955SDavid Daney 		uint64_t ipd_full:1;
535aa32a955SDavid Daney 		uint64_t pkt_off:1;
536aa32a955SDavid Daney 		uint64_t len_m8:1;
537aa32a955SDavid Daney 		uint64_t reset:1;
538aa32a955SDavid Daney 		uint64_t addpkt:1;
539aa32a955SDavid Daney 		uint64_t naddbuf:1;
540aa32a955SDavid Daney 		uint64_t pkt_lend:1;
541aa32a955SDavid Daney 		uint64_t wqe_lend:1;
542aa32a955SDavid Daney 		uint64_t pbp_en:1;
543aa32a955SDavid Daney 		uint64_t opc_mode:2;
544aa32a955SDavid Daney 		uint64_t ipd_en:1;
545c5aa59e8SDavid Daney #else
546c5aa59e8SDavid Daney 		uint64_t ipd_en:1;
547c5aa59e8SDavid Daney 		uint64_t opc_mode:2;
548c5aa59e8SDavid Daney 		uint64_t pbp_en:1;
549c5aa59e8SDavid Daney 		uint64_t wqe_lend:1;
550c5aa59e8SDavid Daney 		uint64_t pkt_lend:1;
551c5aa59e8SDavid Daney 		uint64_t naddbuf:1;
552c5aa59e8SDavid Daney 		uint64_t addpkt:1;
553c5aa59e8SDavid Daney 		uint64_t reset:1;
554c5aa59e8SDavid Daney 		uint64_t len_m8:1;
555c5aa59e8SDavid Daney 		uint64_t pkt_off:1;
556c5aa59e8SDavid Daney 		uint64_t ipd_full:1;
557c5aa59e8SDavid Daney 		uint64_t pq_nabuf:1;
558c5aa59e8SDavid Daney 		uint64_t pq_apkt:1;
559c5aa59e8SDavid Daney 		uint64_t no_wptr:1;
560c5aa59e8SDavid Daney 		uint64_t clken:1;
561c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
562c5aa59e8SDavid Daney #endif
563aa32a955SDavid Daney 	} cn63xxp1;
564c5aa59e8SDavid Daney };
565c5aa59e8SDavid Daney 
566c5aa59e8SDavid Daney union cvmx_ipd_ecc_ctl {
567c5aa59e8SDavid Daney 	uint64_t u64;
568c5aa59e8SDavid Daney 	struct cvmx_ipd_ecc_ctl_s {
569c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
570c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
571c5aa59e8SDavid Daney 		uint64_t pm3_syn:2;
572c5aa59e8SDavid Daney 		uint64_t pm2_syn:2;
573c5aa59e8SDavid Daney 		uint64_t pm1_syn:2;
574c5aa59e8SDavid Daney 		uint64_t pm0_syn:2;
575c5aa59e8SDavid Daney #else
576c5aa59e8SDavid Daney 		uint64_t pm0_syn:2;
577c5aa59e8SDavid Daney 		uint64_t pm1_syn:2;
578c5aa59e8SDavid Daney 		uint64_t pm2_syn:2;
579c5aa59e8SDavid Daney 		uint64_t pm3_syn:2;
580c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
581c5aa59e8SDavid Daney #endif
582c5aa59e8SDavid Daney 	} s;
583c5aa59e8SDavid Daney };
584c5aa59e8SDavid Daney 
585c5aa59e8SDavid Daney union cvmx_ipd_free_ptr_fifo_ctl {
586c5aa59e8SDavid Daney 	uint64_t u64;
587c5aa59e8SDavid Daney 	struct cvmx_ipd_free_ptr_fifo_ctl_s {
588c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
589c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
590c5aa59e8SDavid Daney 		uint64_t max_cnts:7;
591c5aa59e8SDavid Daney 		uint64_t wraddr:8;
592c5aa59e8SDavid Daney 		uint64_t praddr:8;
593c5aa59e8SDavid Daney 		uint64_t cena:1;
594c5aa59e8SDavid Daney 		uint64_t raddr:8;
595c5aa59e8SDavid Daney #else
596c5aa59e8SDavid Daney 		uint64_t raddr:8;
597c5aa59e8SDavid Daney 		uint64_t cena:1;
598c5aa59e8SDavid Daney 		uint64_t praddr:8;
599c5aa59e8SDavid Daney 		uint64_t wraddr:8;
600c5aa59e8SDavid Daney 		uint64_t max_cnts:7;
601c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
602c5aa59e8SDavid Daney #endif
603c5aa59e8SDavid Daney 	} s;
604c5aa59e8SDavid Daney };
605c5aa59e8SDavid Daney 
606c5aa59e8SDavid Daney union cvmx_ipd_free_ptr_value {
607c5aa59e8SDavid Daney 	uint64_t u64;
608c5aa59e8SDavid Daney 	struct cvmx_ipd_free_ptr_value_s {
609c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
610c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
611c5aa59e8SDavid Daney 		uint64_t ptr:33;
612c5aa59e8SDavid Daney #else
613c5aa59e8SDavid Daney 		uint64_t ptr:33;
614c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
615c5aa59e8SDavid Daney #endif
616c5aa59e8SDavid Daney 	} s;
617c5aa59e8SDavid Daney };
618c5aa59e8SDavid Daney 
619c5aa59e8SDavid Daney union cvmx_ipd_hold_ptr_fifo_ctl {
620c5aa59e8SDavid Daney 	uint64_t u64;
621c5aa59e8SDavid Daney 	struct cvmx_ipd_hold_ptr_fifo_ctl_s {
622c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
623c5aa59e8SDavid Daney 		uint64_t reserved_43_63:21;
624c5aa59e8SDavid Daney 		uint64_t ptr:33;
625c5aa59e8SDavid Daney 		uint64_t max_pkt:3;
626c5aa59e8SDavid Daney 		uint64_t praddr:3;
627c5aa59e8SDavid Daney 		uint64_t cena:1;
628c5aa59e8SDavid Daney 		uint64_t raddr:3;
629c5aa59e8SDavid Daney #else
630c5aa59e8SDavid Daney 		uint64_t raddr:3;
631c5aa59e8SDavid Daney 		uint64_t cena:1;
632c5aa59e8SDavid Daney 		uint64_t praddr:3;
633c5aa59e8SDavid Daney 		uint64_t max_pkt:3;
634c5aa59e8SDavid Daney 		uint64_t ptr:33;
635c5aa59e8SDavid Daney 		uint64_t reserved_43_63:21;
636c5aa59e8SDavid Daney #endif
637c5aa59e8SDavid Daney 	} s;
63854293ec3SDavid Daney };
63954293ec3SDavid Daney 
64054293ec3SDavid Daney union cvmx_ipd_int_enb {
64154293ec3SDavid Daney 	uint64_t u64;
64254293ec3SDavid Daney 	struct cvmx_ipd_int_enb_s {
643c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
644c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
645c5aa59e8SDavid Daney 		uint64_t pw3_dbe:1;
646c5aa59e8SDavid Daney 		uint64_t pw3_sbe:1;
647c5aa59e8SDavid Daney 		uint64_t pw2_dbe:1;
648c5aa59e8SDavid Daney 		uint64_t pw2_sbe:1;
649c5aa59e8SDavid Daney 		uint64_t pw1_dbe:1;
650c5aa59e8SDavid Daney 		uint64_t pw1_sbe:1;
651c5aa59e8SDavid Daney 		uint64_t pw0_dbe:1;
652c5aa59e8SDavid Daney 		uint64_t pw0_sbe:1;
653c5aa59e8SDavid Daney 		uint64_t dat:1;
654c5aa59e8SDavid Daney 		uint64_t eop:1;
655c5aa59e8SDavid Daney 		uint64_t sop:1;
656c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
657c5aa59e8SDavid Daney 		uint64_t pq_add:1;
658c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
659c5aa59e8SDavid Daney 		uint64_t d_coll:1;
660c5aa59e8SDavid Daney 		uint64_t c_coll:1;
661c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
662c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
663c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
664c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
665c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
666c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
667c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
668c5aa59e8SDavid Daney #else
669c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
670c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
671c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
672c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
673c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
674c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
675c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
676c5aa59e8SDavid Daney 		uint64_t c_coll:1;
677c5aa59e8SDavid Daney 		uint64_t d_coll:1;
678c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
679c5aa59e8SDavid Daney 		uint64_t pq_add:1;
680c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
681c5aa59e8SDavid Daney 		uint64_t sop:1;
682c5aa59e8SDavid Daney 		uint64_t eop:1;
683c5aa59e8SDavid Daney 		uint64_t dat:1;
684c5aa59e8SDavid Daney 		uint64_t pw0_sbe:1;
685c5aa59e8SDavid Daney 		uint64_t pw0_dbe:1;
686c5aa59e8SDavid Daney 		uint64_t pw1_sbe:1;
687c5aa59e8SDavid Daney 		uint64_t pw1_dbe:1;
688c5aa59e8SDavid Daney 		uint64_t pw2_sbe:1;
689c5aa59e8SDavid Daney 		uint64_t pw2_dbe:1;
690c5aa59e8SDavid Daney 		uint64_t pw3_sbe:1;
691c5aa59e8SDavid Daney 		uint64_t pw3_dbe:1;
692c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
693c5aa59e8SDavid Daney #endif
694c5aa59e8SDavid Daney 	} s;
695c5aa59e8SDavid Daney 	struct cvmx_ipd_int_enb_cn30xx {
696c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
697c5aa59e8SDavid Daney 		uint64_t reserved_5_63:59;
698c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
699c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
700c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
701c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
702c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
703c5aa59e8SDavid Daney #else
704c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
705c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
706c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
707c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
708c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
709c5aa59e8SDavid Daney 		uint64_t reserved_5_63:59;
710c5aa59e8SDavid Daney #endif
711c5aa59e8SDavid Daney 	} cn30xx;
712c5aa59e8SDavid Daney 	struct cvmx_ipd_int_enb_cn38xx {
713c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
714c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
715c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
716c5aa59e8SDavid Daney 		uint64_t d_coll:1;
717c5aa59e8SDavid Daney 		uint64_t c_coll:1;
718c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
719c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
720c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
721c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
722c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
723c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
724c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
725c5aa59e8SDavid Daney #else
726c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
727c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
728c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
729c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
730c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
731c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
732c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
733c5aa59e8SDavid Daney 		uint64_t c_coll:1;
734c5aa59e8SDavid Daney 		uint64_t d_coll:1;
735c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
736c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
737c5aa59e8SDavid Daney #endif
738c5aa59e8SDavid Daney 	} cn38xx;
739c5aa59e8SDavid Daney 	struct cvmx_ipd_int_enb_cn52xx {
740c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
74154293ec3SDavid Daney 		uint64_t reserved_12_63:52;
74254293ec3SDavid Daney 		uint64_t pq_sub:1;
74354293ec3SDavid Daney 		uint64_t pq_add:1;
74454293ec3SDavid Daney 		uint64_t bc_ovr:1;
74554293ec3SDavid Daney 		uint64_t d_coll:1;
74654293ec3SDavid Daney 		uint64_t c_coll:1;
74754293ec3SDavid Daney 		uint64_t cc_ovr:1;
74854293ec3SDavid Daney 		uint64_t dc_ovr:1;
74954293ec3SDavid Daney 		uint64_t bp_sub:1;
75054293ec3SDavid Daney 		uint64_t prc_par3:1;
75154293ec3SDavid Daney 		uint64_t prc_par2:1;
75254293ec3SDavid Daney 		uint64_t prc_par1:1;
75354293ec3SDavid Daney 		uint64_t prc_par0:1;
754c5aa59e8SDavid Daney #else
75554293ec3SDavid Daney 		uint64_t prc_par0:1;
756c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
757c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
758c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
759c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
76054293ec3SDavid Daney 		uint64_t dc_ovr:1;
761c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
762c5aa59e8SDavid Daney 		uint64_t c_coll:1;
763c5aa59e8SDavid Daney 		uint64_t d_coll:1;
764c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
765c5aa59e8SDavid Daney 		uint64_t pq_add:1;
766c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
767c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
768c5aa59e8SDavid Daney #endif
769c5aa59e8SDavid Daney 	} cn52xx;
77054293ec3SDavid Daney };
77154293ec3SDavid Daney 
77254293ec3SDavid Daney union cvmx_ipd_int_sum {
77354293ec3SDavid Daney 	uint64_t u64;
77454293ec3SDavid Daney 	struct cvmx_ipd_int_sum_s {
775c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
776c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
777c5aa59e8SDavid Daney 		uint64_t pw3_dbe:1;
778c5aa59e8SDavid Daney 		uint64_t pw3_sbe:1;
779c5aa59e8SDavid Daney 		uint64_t pw2_dbe:1;
780c5aa59e8SDavid Daney 		uint64_t pw2_sbe:1;
781c5aa59e8SDavid Daney 		uint64_t pw1_dbe:1;
782c5aa59e8SDavid Daney 		uint64_t pw1_sbe:1;
783c5aa59e8SDavid Daney 		uint64_t pw0_dbe:1;
784c5aa59e8SDavid Daney 		uint64_t pw0_sbe:1;
785c5aa59e8SDavid Daney 		uint64_t dat:1;
786c5aa59e8SDavid Daney 		uint64_t eop:1;
787c5aa59e8SDavid Daney 		uint64_t sop:1;
788c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
789c5aa59e8SDavid Daney 		uint64_t pq_add:1;
790c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
791c5aa59e8SDavid Daney 		uint64_t d_coll:1;
792c5aa59e8SDavid Daney 		uint64_t c_coll:1;
793c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
794c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
795c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
796c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
797c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
798c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
799c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
800c5aa59e8SDavid Daney #else
801c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
802c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
803c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
804c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
805c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
806c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
807c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
808c5aa59e8SDavid Daney 		uint64_t c_coll:1;
809c5aa59e8SDavid Daney 		uint64_t d_coll:1;
810c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
811c5aa59e8SDavid Daney 		uint64_t pq_add:1;
812c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
813c5aa59e8SDavid Daney 		uint64_t sop:1;
814c5aa59e8SDavid Daney 		uint64_t eop:1;
815c5aa59e8SDavid Daney 		uint64_t dat:1;
816c5aa59e8SDavid Daney 		uint64_t pw0_sbe:1;
817c5aa59e8SDavid Daney 		uint64_t pw0_dbe:1;
818c5aa59e8SDavid Daney 		uint64_t pw1_sbe:1;
819c5aa59e8SDavid Daney 		uint64_t pw1_dbe:1;
820c5aa59e8SDavid Daney 		uint64_t pw2_sbe:1;
821c5aa59e8SDavid Daney 		uint64_t pw2_dbe:1;
822c5aa59e8SDavid Daney 		uint64_t pw3_sbe:1;
823c5aa59e8SDavid Daney 		uint64_t pw3_dbe:1;
824c5aa59e8SDavid Daney 		uint64_t reserved_23_63:41;
825c5aa59e8SDavid Daney #endif
826c5aa59e8SDavid Daney 	} s;
827c5aa59e8SDavid Daney 	struct cvmx_ipd_int_sum_cn30xx {
828c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
829c5aa59e8SDavid Daney 		uint64_t reserved_5_63:59;
830c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
831c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
832c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
833c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
834c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
835c5aa59e8SDavid Daney #else
836c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
837c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
838c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
839c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
840c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
841c5aa59e8SDavid Daney 		uint64_t reserved_5_63:59;
842c5aa59e8SDavid Daney #endif
843c5aa59e8SDavid Daney 	} cn30xx;
844c5aa59e8SDavid Daney 	struct cvmx_ipd_int_sum_cn38xx {
845c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
846c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
847c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
848c5aa59e8SDavid Daney 		uint64_t d_coll:1;
849c5aa59e8SDavid Daney 		uint64_t c_coll:1;
850c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
851c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
852c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
853c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
854c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
855c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
856c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
857c5aa59e8SDavid Daney #else
858c5aa59e8SDavid Daney 		uint64_t prc_par0:1;
859c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
860c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
861c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
862c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
863c5aa59e8SDavid Daney 		uint64_t dc_ovr:1;
864c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
865c5aa59e8SDavid Daney 		uint64_t c_coll:1;
866c5aa59e8SDavid Daney 		uint64_t d_coll:1;
867c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
868c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
869c5aa59e8SDavid Daney #endif
870c5aa59e8SDavid Daney 	} cn38xx;
871c5aa59e8SDavid Daney 	struct cvmx_ipd_int_sum_cn52xx {
872c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
87354293ec3SDavid Daney 		uint64_t reserved_12_63:52;
87454293ec3SDavid Daney 		uint64_t pq_sub:1;
87554293ec3SDavid Daney 		uint64_t pq_add:1;
87654293ec3SDavid Daney 		uint64_t bc_ovr:1;
87754293ec3SDavid Daney 		uint64_t d_coll:1;
87854293ec3SDavid Daney 		uint64_t c_coll:1;
87954293ec3SDavid Daney 		uint64_t cc_ovr:1;
88054293ec3SDavid Daney 		uint64_t dc_ovr:1;
88154293ec3SDavid Daney 		uint64_t bp_sub:1;
88254293ec3SDavid Daney 		uint64_t prc_par3:1;
88354293ec3SDavid Daney 		uint64_t prc_par2:1;
88454293ec3SDavid Daney 		uint64_t prc_par1:1;
88554293ec3SDavid Daney 		uint64_t prc_par0:1;
886c5aa59e8SDavid Daney #else
88754293ec3SDavid Daney 		uint64_t prc_par0:1;
888c5aa59e8SDavid Daney 		uint64_t prc_par1:1;
889c5aa59e8SDavid Daney 		uint64_t prc_par2:1;
890c5aa59e8SDavid Daney 		uint64_t prc_par3:1;
891c5aa59e8SDavid Daney 		uint64_t bp_sub:1;
89254293ec3SDavid Daney 		uint64_t dc_ovr:1;
893c5aa59e8SDavid Daney 		uint64_t cc_ovr:1;
894c5aa59e8SDavid Daney 		uint64_t c_coll:1;
895c5aa59e8SDavid Daney 		uint64_t d_coll:1;
896c5aa59e8SDavid Daney 		uint64_t bc_ovr:1;
897c5aa59e8SDavid Daney 		uint64_t pq_add:1;
898c5aa59e8SDavid Daney 		uint64_t pq_sub:1;
899c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
900c5aa59e8SDavid Daney #endif
901c5aa59e8SDavid Daney 	} cn52xx;
902c5aa59e8SDavid Daney };
903c5aa59e8SDavid Daney 
904c5aa59e8SDavid Daney union cvmx_ipd_next_pkt_ptr {
905c5aa59e8SDavid Daney 	uint64_t u64;
906c5aa59e8SDavid Daney 	struct cvmx_ipd_next_pkt_ptr_s {
907c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
908c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
909c5aa59e8SDavid Daney 		uint64_t ptr:33;
910c5aa59e8SDavid Daney #else
911c5aa59e8SDavid Daney 		uint64_t ptr:33;
912c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
913c5aa59e8SDavid Daney #endif
914c5aa59e8SDavid Daney 	} s;
915c5aa59e8SDavid Daney };
916c5aa59e8SDavid Daney 
917c5aa59e8SDavid Daney union cvmx_ipd_next_wqe_ptr {
918c5aa59e8SDavid Daney 	uint64_t u64;
919c5aa59e8SDavid Daney 	struct cvmx_ipd_next_wqe_ptr_s {
920c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
921c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
922c5aa59e8SDavid Daney 		uint64_t ptr:33;
923c5aa59e8SDavid Daney #else
924c5aa59e8SDavid Daney 		uint64_t ptr:33;
925c5aa59e8SDavid Daney 		uint64_t reserved_33_63:31;
926c5aa59e8SDavid Daney #endif
927c5aa59e8SDavid Daney 	} s;
92854293ec3SDavid Daney };
92954293ec3SDavid Daney 
93054293ec3SDavid Daney union cvmx_ipd_not_1st_mbuff_skip {
93154293ec3SDavid Daney 	uint64_t u64;
93254293ec3SDavid Daney 	struct cvmx_ipd_not_1st_mbuff_skip_s {
933c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
93454293ec3SDavid Daney 		uint64_t reserved_6_63:58;
93554293ec3SDavid Daney 		uint64_t skip_sz:6;
936c5aa59e8SDavid Daney #else
937c5aa59e8SDavid Daney 		uint64_t skip_sz:6;
938c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
939c5aa59e8SDavid Daney #endif
94054293ec3SDavid Daney 	} s;
941c5aa59e8SDavid Daney };
942c5aa59e8SDavid Daney 
943c5aa59e8SDavid Daney union cvmx_ipd_on_bp_drop_pktx {
944c5aa59e8SDavid Daney 	uint64_t u64;
945c5aa59e8SDavid Daney 	struct cvmx_ipd_on_bp_drop_pktx_s {
946c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
947c5aa59e8SDavid Daney 		uint64_t prt_enb:64;
948c5aa59e8SDavid Daney #else
949c5aa59e8SDavid Daney 		uint64_t prt_enb:64;
950c5aa59e8SDavid Daney #endif
951c5aa59e8SDavid Daney 	} s;
95254293ec3SDavid Daney };
95354293ec3SDavid Daney 
95454293ec3SDavid Daney union cvmx_ipd_packet_mbuff_size {
95554293ec3SDavid Daney 	uint64_t u64;
95654293ec3SDavid Daney 	struct cvmx_ipd_packet_mbuff_size_s {
957c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
95854293ec3SDavid Daney 		uint64_t reserved_12_63:52;
95954293ec3SDavid Daney 		uint64_t mb_size:12;
960c5aa59e8SDavid Daney #else
961c5aa59e8SDavid Daney 		uint64_t mb_size:12;
962c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
963c5aa59e8SDavid Daney #endif
96454293ec3SDavid Daney 	} s;
965c5aa59e8SDavid Daney };
966c5aa59e8SDavid Daney 
967c5aa59e8SDavid Daney union cvmx_ipd_pkt_err {
968c5aa59e8SDavid Daney 	uint64_t u64;
969c5aa59e8SDavid Daney 	struct cvmx_ipd_pkt_err_s {
970c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
971c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
972c5aa59e8SDavid Daney 		uint64_t reasm:6;
973c5aa59e8SDavid Daney #else
974c5aa59e8SDavid Daney 		uint64_t reasm:6;
975c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
976c5aa59e8SDavid Daney #endif
977c5aa59e8SDavid Daney 	} s;
97854293ec3SDavid Daney };
97954293ec3SDavid Daney 
98054293ec3SDavid Daney union cvmx_ipd_pkt_ptr_valid {
98154293ec3SDavid Daney 	uint64_t u64;
98254293ec3SDavid Daney 	struct cvmx_ipd_pkt_ptr_valid_s {
983c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
98454293ec3SDavid Daney 		uint64_t reserved_29_63:35;
98554293ec3SDavid Daney 		uint64_t ptr:29;
986c5aa59e8SDavid Daney #else
987c5aa59e8SDavid Daney 		uint64_t ptr:29;
988c5aa59e8SDavid Daney 		uint64_t reserved_29_63:35;
989c5aa59e8SDavid Daney #endif
99054293ec3SDavid Daney 	} s;
99154293ec3SDavid Daney };
99254293ec3SDavid Daney 
99354293ec3SDavid Daney union cvmx_ipd_portx_bp_page_cnt {
99454293ec3SDavid Daney 	uint64_t u64;
99554293ec3SDavid Daney 	struct cvmx_ipd_portx_bp_page_cnt_s {
996c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
99754293ec3SDavid Daney 		uint64_t reserved_18_63:46;
99854293ec3SDavid Daney 		uint64_t bp_enb:1;
99954293ec3SDavid Daney 		uint64_t page_cnt:17;
1000c5aa59e8SDavid Daney #else
1001c5aa59e8SDavid Daney 		uint64_t page_cnt:17;
1002c5aa59e8SDavid Daney 		uint64_t bp_enb:1;
1003c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
1004c5aa59e8SDavid Daney #endif
100554293ec3SDavid Daney 	} s;
100654293ec3SDavid Daney };
100754293ec3SDavid Daney 
100854293ec3SDavid Daney union cvmx_ipd_portx_bp_page_cnt2 {
100954293ec3SDavid Daney 	uint64_t u64;
101054293ec3SDavid Daney 	struct cvmx_ipd_portx_bp_page_cnt2_s {
1011c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
101254293ec3SDavid Daney 		uint64_t reserved_18_63:46;
101354293ec3SDavid Daney 		uint64_t bp_enb:1;
101454293ec3SDavid Daney 		uint64_t page_cnt:17;
1015c5aa59e8SDavid Daney #else
1016c5aa59e8SDavid Daney 		uint64_t page_cnt:17;
1017c5aa59e8SDavid Daney 		uint64_t bp_enb:1;
1018c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
1019c5aa59e8SDavid Daney #endif
102054293ec3SDavid Daney 	} s;
1021aa32a955SDavid Daney };
1022aa32a955SDavid Daney 
1023aa32a955SDavid Daney union cvmx_ipd_portx_bp_page_cnt3 {
1024aa32a955SDavid Daney 	uint64_t u64;
1025aa32a955SDavid Daney 	struct cvmx_ipd_portx_bp_page_cnt3_s {
1026c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1027aa32a955SDavid Daney 		uint64_t reserved_18_63:46;
1028aa32a955SDavid Daney 		uint64_t bp_enb:1;
1029aa32a955SDavid Daney 		uint64_t page_cnt:17;
1030c5aa59e8SDavid Daney #else
1031c5aa59e8SDavid Daney 		uint64_t page_cnt:17;
1032c5aa59e8SDavid Daney 		uint64_t bp_enb:1;
1033c5aa59e8SDavid Daney 		uint64_t reserved_18_63:46;
1034c5aa59e8SDavid Daney #endif
1035aa32a955SDavid Daney 	} s;
103654293ec3SDavid Daney };
103754293ec3SDavid Daney 
103854293ec3SDavid Daney union cvmx_ipd_port_bp_counters2_pairx {
103954293ec3SDavid Daney 	uint64_t u64;
104054293ec3SDavid Daney 	struct cvmx_ipd_port_bp_counters2_pairx_s {
1041c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
104254293ec3SDavid Daney 		uint64_t reserved_25_63:39;
104354293ec3SDavid Daney 		uint64_t cnt_val:25;
1044c5aa59e8SDavid Daney #else
1045c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
1046c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
1047c5aa59e8SDavid Daney #endif
104854293ec3SDavid Daney 	} s;
1049aa32a955SDavid Daney };
1050aa32a955SDavid Daney 
1051aa32a955SDavid Daney union cvmx_ipd_port_bp_counters3_pairx {
1052aa32a955SDavid Daney 	uint64_t u64;
1053aa32a955SDavid Daney 	struct cvmx_ipd_port_bp_counters3_pairx_s {
1054c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1055aa32a955SDavid Daney 		uint64_t reserved_25_63:39;
1056aa32a955SDavid Daney 		uint64_t cnt_val:25;
1057c5aa59e8SDavid Daney #else
1058c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
1059c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
1060c5aa59e8SDavid Daney #endif
1061aa32a955SDavid Daney 	} s;
1062c5aa59e8SDavid Daney };
1063c5aa59e8SDavid Daney 
1064c5aa59e8SDavid Daney union cvmx_ipd_port_bp_counters4_pairx {
1065c5aa59e8SDavid Daney 	uint64_t u64;
1066c5aa59e8SDavid Daney 	struct cvmx_ipd_port_bp_counters4_pairx_s {
1067c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1068c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
1069c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
1070c5aa59e8SDavid Daney #else
1071c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
1072c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
1073c5aa59e8SDavid Daney #endif
1074c5aa59e8SDavid Daney 	} s;
107554293ec3SDavid Daney };
107654293ec3SDavid Daney 
107754293ec3SDavid Daney union cvmx_ipd_port_bp_counters_pairx {
107854293ec3SDavid Daney 	uint64_t u64;
107954293ec3SDavid Daney 	struct cvmx_ipd_port_bp_counters_pairx_s {
1080c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
108154293ec3SDavid Daney 		uint64_t reserved_25_63:39;
108254293ec3SDavid Daney 		uint64_t cnt_val:25;
1083c5aa59e8SDavid Daney #else
1084c5aa59e8SDavid Daney 		uint64_t cnt_val:25;
1085c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
1086c5aa59e8SDavid Daney #endif
108754293ec3SDavid Daney 	} s;
1088c5aa59e8SDavid Daney };
1089c5aa59e8SDavid Daney 
1090c5aa59e8SDavid Daney union cvmx_ipd_port_ptr_fifo_ctl {
1091c5aa59e8SDavid Daney 	uint64_t u64;
1092c5aa59e8SDavid Daney 	struct cvmx_ipd_port_ptr_fifo_ctl_s {
1093c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1094c5aa59e8SDavid Daney 		uint64_t reserved_48_63:16;
1095c5aa59e8SDavid Daney 		uint64_t ptr:33;
1096c5aa59e8SDavid Daney 		uint64_t max_pkt:7;
1097c5aa59e8SDavid Daney 		uint64_t cena:1;
1098c5aa59e8SDavid Daney 		uint64_t raddr:7;
1099c5aa59e8SDavid Daney #else
1100c5aa59e8SDavid Daney 		uint64_t raddr:7;
1101c5aa59e8SDavid Daney 		uint64_t cena:1;
1102c5aa59e8SDavid Daney 		uint64_t max_pkt:7;
1103c5aa59e8SDavid Daney 		uint64_t ptr:33;
1104c5aa59e8SDavid Daney 		uint64_t reserved_48_63:16;
1105c5aa59e8SDavid Daney #endif
1106c5aa59e8SDavid Daney 	} s;
110754293ec3SDavid Daney };
110854293ec3SDavid Daney 
110954293ec3SDavid Daney union cvmx_ipd_port_qos_x_cnt {
111054293ec3SDavid Daney 	uint64_t u64;
111154293ec3SDavid Daney 	struct cvmx_ipd_port_qos_x_cnt_s {
1112c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
111354293ec3SDavid Daney 		uint64_t wmark:32;
111454293ec3SDavid Daney 		uint64_t cnt:32;
1115c5aa59e8SDavid Daney #else
1116c5aa59e8SDavid Daney 		uint64_t cnt:32;
1117c5aa59e8SDavid Daney 		uint64_t wmark:32;
1118c5aa59e8SDavid Daney #endif
111954293ec3SDavid Daney 	} s;
112054293ec3SDavid Daney };
112154293ec3SDavid Daney 
112254293ec3SDavid Daney union cvmx_ipd_port_qos_intx {
112354293ec3SDavid Daney 	uint64_t u64;
112454293ec3SDavid Daney 	struct cvmx_ipd_port_qos_intx_s {
1125c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
112654293ec3SDavid Daney 		uint64_t intr:64;
1127c5aa59e8SDavid Daney #else
1128c5aa59e8SDavid Daney 		uint64_t intr:64;
1129c5aa59e8SDavid Daney #endif
113054293ec3SDavid Daney 	} s;
113154293ec3SDavid Daney };
113254293ec3SDavid Daney 
113354293ec3SDavid Daney union cvmx_ipd_port_qos_int_enbx {
113454293ec3SDavid Daney 	uint64_t u64;
113554293ec3SDavid Daney 	struct cvmx_ipd_port_qos_int_enbx_s {
1136c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
113754293ec3SDavid Daney 		uint64_t enb:64;
1138c5aa59e8SDavid Daney #else
1139c5aa59e8SDavid Daney 		uint64_t enb:64;
1140c5aa59e8SDavid Daney #endif
114154293ec3SDavid Daney 	} s;
1142c5aa59e8SDavid Daney };
1143c5aa59e8SDavid Daney 
1144c5aa59e8SDavid Daney union cvmx_ipd_port_sopx {
1145c5aa59e8SDavid Daney 	uint64_t u64;
1146c5aa59e8SDavid Daney 	struct cvmx_ipd_port_sopx_s {
1147c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1148c5aa59e8SDavid Daney 		uint64_t sop:64;
1149c5aa59e8SDavid Daney #else
1150c5aa59e8SDavid Daney 		uint64_t sop:64;
1151c5aa59e8SDavid Daney #endif
1152c5aa59e8SDavid Daney 	} s;
115354293ec3SDavid Daney };
115454293ec3SDavid Daney 
115554293ec3SDavid Daney union cvmx_ipd_prc_hold_ptr_fifo_ctl {
115654293ec3SDavid Daney 	uint64_t u64;
115754293ec3SDavid Daney 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
1158c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
115954293ec3SDavid Daney 		uint64_t reserved_39_63:25;
116054293ec3SDavid Daney 		uint64_t max_pkt:3;
116154293ec3SDavid Daney 		uint64_t praddr:3;
116254293ec3SDavid Daney 		uint64_t ptr:29;
116354293ec3SDavid Daney 		uint64_t cena:1;
116454293ec3SDavid Daney 		uint64_t raddr:3;
1165c5aa59e8SDavid Daney #else
1166c5aa59e8SDavid Daney 		uint64_t raddr:3;
1167c5aa59e8SDavid Daney 		uint64_t cena:1;
1168c5aa59e8SDavid Daney 		uint64_t ptr:29;
1169c5aa59e8SDavid Daney 		uint64_t praddr:3;
1170c5aa59e8SDavid Daney 		uint64_t max_pkt:3;
1171c5aa59e8SDavid Daney 		uint64_t reserved_39_63:25;
1172c5aa59e8SDavid Daney #endif
117354293ec3SDavid Daney 	} s;
117454293ec3SDavid Daney };
117554293ec3SDavid Daney 
117654293ec3SDavid Daney union cvmx_ipd_prc_port_ptr_fifo_ctl {
117754293ec3SDavid Daney 	uint64_t u64;
117854293ec3SDavid Daney 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
1179c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
118054293ec3SDavid Daney 		uint64_t reserved_44_63:20;
118154293ec3SDavid Daney 		uint64_t max_pkt:7;
118254293ec3SDavid Daney 		uint64_t ptr:29;
118354293ec3SDavid Daney 		uint64_t cena:1;
118454293ec3SDavid Daney 		uint64_t raddr:7;
1185c5aa59e8SDavid Daney #else
1186c5aa59e8SDavid Daney 		uint64_t raddr:7;
1187c5aa59e8SDavid Daney 		uint64_t cena:1;
1188c5aa59e8SDavid Daney 		uint64_t ptr:29;
1189c5aa59e8SDavid Daney 		uint64_t max_pkt:7;
1190c5aa59e8SDavid Daney 		uint64_t reserved_44_63:20;
1191c5aa59e8SDavid Daney #endif
119254293ec3SDavid Daney 	} s;
119354293ec3SDavid Daney };
119454293ec3SDavid Daney 
119554293ec3SDavid Daney union cvmx_ipd_ptr_count {
119654293ec3SDavid Daney 	uint64_t u64;
119754293ec3SDavid Daney 	struct cvmx_ipd_ptr_count_s {
1198c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
119954293ec3SDavid Daney 		uint64_t reserved_19_63:45;
120054293ec3SDavid Daney 		uint64_t pktv_cnt:1;
120154293ec3SDavid Daney 		uint64_t wqev_cnt:1;
120254293ec3SDavid Daney 		uint64_t pfif_cnt:3;
120354293ec3SDavid Daney 		uint64_t pkt_pcnt:7;
120454293ec3SDavid Daney 		uint64_t wqe_pcnt:7;
1205c5aa59e8SDavid Daney #else
1206c5aa59e8SDavid Daney 		uint64_t wqe_pcnt:7;
1207c5aa59e8SDavid Daney 		uint64_t pkt_pcnt:7;
1208c5aa59e8SDavid Daney 		uint64_t pfif_cnt:3;
1209c5aa59e8SDavid Daney 		uint64_t wqev_cnt:1;
1210c5aa59e8SDavid Daney 		uint64_t pktv_cnt:1;
1211c5aa59e8SDavid Daney 		uint64_t reserved_19_63:45;
1212c5aa59e8SDavid Daney #endif
121354293ec3SDavid Daney 	} s;
121454293ec3SDavid Daney };
121554293ec3SDavid Daney 
121654293ec3SDavid Daney union cvmx_ipd_pwp_ptr_fifo_ctl {
121754293ec3SDavid Daney 	uint64_t u64;
121854293ec3SDavid Daney 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
1219c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
122054293ec3SDavid Daney 		uint64_t reserved_61_63:3;
122154293ec3SDavid Daney 		uint64_t max_cnts:7;
122254293ec3SDavid Daney 		uint64_t wraddr:8;
122354293ec3SDavid Daney 		uint64_t praddr:8;
122454293ec3SDavid Daney 		uint64_t ptr:29;
122554293ec3SDavid Daney 		uint64_t cena:1;
122654293ec3SDavid Daney 		uint64_t raddr:8;
1227c5aa59e8SDavid Daney #else
1228c5aa59e8SDavid Daney 		uint64_t raddr:8;
1229c5aa59e8SDavid Daney 		uint64_t cena:1;
1230c5aa59e8SDavid Daney 		uint64_t ptr:29;
1231c5aa59e8SDavid Daney 		uint64_t praddr:8;
1232c5aa59e8SDavid Daney 		uint64_t wraddr:8;
1233c5aa59e8SDavid Daney 		uint64_t max_cnts:7;
1234c5aa59e8SDavid Daney 		uint64_t reserved_61_63:3;
1235c5aa59e8SDavid Daney #endif
123654293ec3SDavid Daney 	} s;
123754293ec3SDavid Daney };
123854293ec3SDavid Daney 
123954293ec3SDavid Daney union cvmx_ipd_qosx_red_marks {
124054293ec3SDavid Daney 	uint64_t u64;
124154293ec3SDavid Daney 	struct cvmx_ipd_qosx_red_marks_s {
1242c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
124354293ec3SDavid Daney 		uint64_t drop:32;
124454293ec3SDavid Daney 		uint64_t pass:32;
1245c5aa59e8SDavid Daney #else
1246c5aa59e8SDavid Daney 		uint64_t pass:32;
1247c5aa59e8SDavid Daney 		uint64_t drop:32;
1248c5aa59e8SDavid Daney #endif
124954293ec3SDavid Daney 	} s;
125054293ec3SDavid Daney };
125154293ec3SDavid Daney 
125254293ec3SDavid Daney union cvmx_ipd_que0_free_page_cnt {
125354293ec3SDavid Daney 	uint64_t u64;
125454293ec3SDavid Daney 	struct cvmx_ipd_que0_free_page_cnt_s {
1255c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
125654293ec3SDavid Daney 		uint64_t reserved_32_63:32;
125754293ec3SDavid Daney 		uint64_t q0_pcnt:32;
1258c5aa59e8SDavid Daney #else
1259c5aa59e8SDavid Daney 		uint64_t q0_pcnt:32;
1260c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
1261c5aa59e8SDavid Daney #endif
126254293ec3SDavid Daney 	} s;
1263c5aa59e8SDavid Daney };
1264c5aa59e8SDavid Daney 
1265c5aa59e8SDavid Daney union cvmx_ipd_red_bpid_enablex {
1266c5aa59e8SDavid Daney 	uint64_t u64;
1267c5aa59e8SDavid Daney 	struct cvmx_ipd_red_bpid_enablex_s {
1268c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1269c5aa59e8SDavid Daney 		uint64_t prt_enb:64;
1270c5aa59e8SDavid Daney #else
1271c5aa59e8SDavid Daney 		uint64_t prt_enb:64;
1272c5aa59e8SDavid Daney #endif
1273c5aa59e8SDavid Daney 	} s;
1274c5aa59e8SDavid Daney };
1275c5aa59e8SDavid Daney 
1276c5aa59e8SDavid Daney union cvmx_ipd_red_delay {
1277c5aa59e8SDavid Daney 	uint64_t u64;
1278c5aa59e8SDavid Daney 	struct cvmx_ipd_red_delay_s {
1279c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1280c5aa59e8SDavid Daney 		uint64_t reserved_28_63:36;
1281c5aa59e8SDavid Daney 		uint64_t prb_dly:14;
1282c5aa59e8SDavid Daney 		uint64_t avg_dly:14;
1283c5aa59e8SDavid Daney #else
1284c5aa59e8SDavid Daney 		uint64_t avg_dly:14;
1285c5aa59e8SDavid Daney 		uint64_t prb_dly:14;
1286c5aa59e8SDavid Daney 		uint64_t reserved_28_63:36;
1287c5aa59e8SDavid Daney #endif
1288c5aa59e8SDavid Daney 	} s;
128954293ec3SDavid Daney };
129054293ec3SDavid Daney 
129154293ec3SDavid Daney union cvmx_ipd_red_port_enable {
129254293ec3SDavid Daney 	uint64_t u64;
129354293ec3SDavid Daney 	struct cvmx_ipd_red_port_enable_s {
1294c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
129554293ec3SDavid Daney 		uint64_t prb_dly:14;
129654293ec3SDavid Daney 		uint64_t avg_dly:14;
129754293ec3SDavid Daney 		uint64_t prt_enb:36;
1298c5aa59e8SDavid Daney #else
1299c5aa59e8SDavid Daney 		uint64_t prt_enb:36;
1300c5aa59e8SDavid Daney 		uint64_t avg_dly:14;
1301c5aa59e8SDavid Daney 		uint64_t prb_dly:14;
1302c5aa59e8SDavid Daney #endif
130354293ec3SDavid Daney 	} s;
130454293ec3SDavid Daney };
130554293ec3SDavid Daney 
130654293ec3SDavid Daney union cvmx_ipd_red_port_enable2 {
130754293ec3SDavid Daney 	uint64_t u64;
130854293ec3SDavid Daney 	struct cvmx_ipd_red_port_enable2_s {
1309c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1310c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
1311c5aa59e8SDavid Daney 		uint64_t prt_enb:12;
1312c5aa59e8SDavid Daney #else
1313c5aa59e8SDavid Daney 		uint64_t prt_enb:12;
1314c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
1315c5aa59e8SDavid Daney #endif
1316aa32a955SDavid Daney 	} s;
1317aa32a955SDavid Daney 	struct cvmx_ipd_red_port_enable2_cn52xx {
1318c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
131954293ec3SDavid Daney 		uint64_t reserved_4_63:60;
132054293ec3SDavid Daney 		uint64_t prt_enb:4;
1321c5aa59e8SDavid Daney #else
1322c5aa59e8SDavid Daney 		uint64_t prt_enb:4;
1323c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
1324c5aa59e8SDavid Daney #endif
1325aa32a955SDavid Daney 	} cn52xx;
1326c5aa59e8SDavid Daney 	struct cvmx_ipd_red_port_enable2_cn63xx {
1327c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1328c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
1329c5aa59e8SDavid Daney 		uint64_t prt_enb:8;
1330c5aa59e8SDavid Daney #else
1331c5aa59e8SDavid Daney 		uint64_t prt_enb:8;
1332c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
1333c5aa59e8SDavid Daney #endif
1334c5aa59e8SDavid Daney 	} cn63xx;
133554293ec3SDavid Daney };
133654293ec3SDavid Daney 
133754293ec3SDavid Daney union cvmx_ipd_red_quex_param {
133854293ec3SDavid Daney 	uint64_t u64;
133954293ec3SDavid Daney 	struct cvmx_ipd_red_quex_param_s {
1340c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
134154293ec3SDavid Daney 		uint64_t reserved_49_63:15;
134254293ec3SDavid Daney 		uint64_t use_pcnt:1;
134354293ec3SDavid Daney 		uint64_t new_con:8;
134454293ec3SDavid Daney 		uint64_t avg_con:8;
134554293ec3SDavid Daney 		uint64_t prb_con:32;
1346c5aa59e8SDavid Daney #else
1347c5aa59e8SDavid Daney 		uint64_t prb_con:32;
1348c5aa59e8SDavid Daney 		uint64_t avg_con:8;
1349c5aa59e8SDavid Daney 		uint64_t new_con:8;
1350c5aa59e8SDavid Daney 		uint64_t use_pcnt:1;
1351c5aa59e8SDavid Daney 		uint64_t reserved_49_63:15;
1352c5aa59e8SDavid Daney #endif
135354293ec3SDavid Daney 	} s;
1354c5aa59e8SDavid Daney };
1355c5aa59e8SDavid Daney 
1356c5aa59e8SDavid Daney union cvmx_ipd_req_wgt {
1357c5aa59e8SDavid Daney 	uint64_t u64;
1358c5aa59e8SDavid Daney 	struct cvmx_ipd_req_wgt_s {
1359c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1360c5aa59e8SDavid Daney 		uint64_t wgt7:8;
1361c5aa59e8SDavid Daney 		uint64_t wgt6:8;
1362c5aa59e8SDavid Daney 		uint64_t wgt5:8;
1363c5aa59e8SDavid Daney 		uint64_t wgt4:8;
1364c5aa59e8SDavid Daney 		uint64_t wgt3:8;
1365c5aa59e8SDavid Daney 		uint64_t wgt2:8;
1366c5aa59e8SDavid Daney 		uint64_t wgt1:8;
1367c5aa59e8SDavid Daney 		uint64_t wgt0:8;
1368c5aa59e8SDavid Daney #else
1369c5aa59e8SDavid Daney 		uint64_t wgt0:8;
1370c5aa59e8SDavid Daney 		uint64_t wgt1:8;
1371c5aa59e8SDavid Daney 		uint64_t wgt2:8;
1372c5aa59e8SDavid Daney 		uint64_t wgt3:8;
1373c5aa59e8SDavid Daney 		uint64_t wgt4:8;
1374c5aa59e8SDavid Daney 		uint64_t wgt5:8;
1375c5aa59e8SDavid Daney 		uint64_t wgt6:8;
1376c5aa59e8SDavid Daney 		uint64_t wgt7:8;
1377c5aa59e8SDavid Daney #endif
1378c5aa59e8SDavid Daney 	} s;
137954293ec3SDavid Daney };
138054293ec3SDavid Daney 
138154293ec3SDavid Daney union cvmx_ipd_sub_port_bp_page_cnt {
138254293ec3SDavid Daney 	uint64_t u64;
138354293ec3SDavid Daney 	struct cvmx_ipd_sub_port_bp_page_cnt_s {
1384c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
138554293ec3SDavid Daney 		uint64_t reserved_31_63:33;
138654293ec3SDavid Daney 		uint64_t port:6;
138754293ec3SDavid Daney 		uint64_t page_cnt:25;
1388c5aa59e8SDavid Daney #else
1389c5aa59e8SDavid Daney 		uint64_t page_cnt:25;
1390c5aa59e8SDavid Daney 		uint64_t port:6;
1391c5aa59e8SDavid Daney 		uint64_t reserved_31_63:33;
1392c5aa59e8SDavid Daney #endif
139354293ec3SDavid Daney 	} s;
139454293ec3SDavid Daney };
139554293ec3SDavid Daney 
139654293ec3SDavid Daney union cvmx_ipd_sub_port_fcs {
139754293ec3SDavid Daney 	uint64_t u64;
139854293ec3SDavid Daney 	struct cvmx_ipd_sub_port_fcs_s {
1399c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
140054293ec3SDavid Daney 		uint64_t reserved_40_63:24;
140154293ec3SDavid Daney 		uint64_t port_bit2:4;
140254293ec3SDavid Daney 		uint64_t reserved_32_35:4;
140354293ec3SDavid Daney 		uint64_t port_bit:32;
1404c5aa59e8SDavid Daney #else
1405c5aa59e8SDavid Daney 		uint64_t port_bit:32;
1406c5aa59e8SDavid Daney 		uint64_t reserved_32_35:4;
1407c5aa59e8SDavid Daney 		uint64_t port_bit2:4;
1408c5aa59e8SDavid Daney 		uint64_t reserved_40_63:24;
1409c5aa59e8SDavid Daney #endif
141054293ec3SDavid Daney 	} s;
141154293ec3SDavid Daney 	struct cvmx_ipd_sub_port_fcs_cn30xx {
1412c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
141354293ec3SDavid Daney 		uint64_t reserved_3_63:61;
141454293ec3SDavid Daney 		uint64_t port_bit:3;
1415c5aa59e8SDavid Daney #else
1416c5aa59e8SDavid Daney 		uint64_t port_bit:3;
1417c5aa59e8SDavid Daney 		uint64_t reserved_3_63:61;
1418c5aa59e8SDavid Daney #endif
141954293ec3SDavid Daney 	} cn30xx;
142054293ec3SDavid Daney 	struct cvmx_ipd_sub_port_fcs_cn38xx {
1421c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
142254293ec3SDavid Daney 		uint64_t reserved_32_63:32;
142354293ec3SDavid Daney 		uint64_t port_bit:32;
1424c5aa59e8SDavid Daney #else
1425c5aa59e8SDavid Daney 		uint64_t port_bit:32;
1426c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
1427c5aa59e8SDavid Daney #endif
142854293ec3SDavid Daney 	} cn38xx;
142954293ec3SDavid Daney };
143054293ec3SDavid Daney 
143154293ec3SDavid Daney union cvmx_ipd_sub_port_qos_cnt {
143254293ec3SDavid Daney 	uint64_t u64;
143354293ec3SDavid Daney 	struct cvmx_ipd_sub_port_qos_cnt_s {
1434c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
143554293ec3SDavid Daney 		uint64_t reserved_41_63:23;
143654293ec3SDavid Daney 		uint64_t port_qos:9;
143754293ec3SDavid Daney 		uint64_t cnt:32;
1438c5aa59e8SDavid Daney #else
1439c5aa59e8SDavid Daney 		uint64_t cnt:32;
1440c5aa59e8SDavid Daney 		uint64_t port_qos:9;
1441c5aa59e8SDavid Daney 		uint64_t reserved_41_63:23;
1442c5aa59e8SDavid Daney #endif
144354293ec3SDavid Daney 	} s;
144454293ec3SDavid Daney };
144554293ec3SDavid Daney 
144654293ec3SDavid Daney union cvmx_ipd_wqe_fpa_queue {
144754293ec3SDavid Daney 	uint64_t u64;
144854293ec3SDavid Daney 	struct cvmx_ipd_wqe_fpa_queue_s {
1449c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
145054293ec3SDavid Daney 		uint64_t reserved_3_63:61;
145154293ec3SDavid Daney 		uint64_t wqe_pool:3;
1452c5aa59e8SDavid Daney #else
1453c5aa59e8SDavid Daney 		uint64_t wqe_pool:3;
1454c5aa59e8SDavid Daney 		uint64_t reserved_3_63:61;
1455c5aa59e8SDavid Daney #endif
145654293ec3SDavid Daney 	} s;
145754293ec3SDavid Daney };
145854293ec3SDavid Daney 
145954293ec3SDavid Daney union cvmx_ipd_wqe_ptr_valid {
146054293ec3SDavid Daney 	uint64_t u64;
146154293ec3SDavid Daney 	struct cvmx_ipd_wqe_ptr_valid_s {
1462c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
146354293ec3SDavid Daney 		uint64_t reserved_29_63:35;
146454293ec3SDavid Daney 		uint64_t ptr:29;
1465c5aa59e8SDavid Daney #else
1466c5aa59e8SDavid Daney 		uint64_t ptr:29;
1467c5aa59e8SDavid Daney 		uint64_t reserved_29_63:35;
1468c5aa59e8SDavid Daney #endif
146954293ec3SDavid Daney 	} s;
147054293ec3SDavid Daney };
147154293ec3SDavid Daney 
147254293ec3SDavid Daney #endif
1473