Merge git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6 into test
[pandora-kernel.git] / arch / mips / include / asm / octeon / cvmx-npi-defs.h
1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: support@caviumnetworks.com
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (c) 2003-2010 Cavium Networks
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT.  See the GNU General Public License for more
17  * details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this file; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22  * or visit http://www.gnu.org/licenses/.
23  *
24  * This file may also be available under a different license from Cavium.
25  * Contact Cavium Networks for more information
26  ***********************license end**************************************/
27
28 #ifndef __CVMX_NPI_DEFS_H__
29 #define __CVMX_NPI_DEFS_H__
30
31 #define CVMX_NPI_BASE_ADDR_INPUT0 CVMX_NPI_BASE_ADDR_INPUTX(0)
32 #define CVMX_NPI_BASE_ADDR_INPUT1 CVMX_NPI_BASE_ADDR_INPUTX(1)
33 #define CVMX_NPI_BASE_ADDR_INPUT2 CVMX_NPI_BASE_ADDR_INPUTX(2)
34 #define CVMX_NPI_BASE_ADDR_INPUT3 CVMX_NPI_BASE_ADDR_INPUTX(3)
35 #define CVMX_NPI_BASE_ADDR_INPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000070ull) + ((offset) & 3) * 16)
36 #define CVMX_NPI_BASE_ADDR_OUTPUT0 CVMX_NPI_BASE_ADDR_OUTPUTX(0)
37 #define CVMX_NPI_BASE_ADDR_OUTPUT1 CVMX_NPI_BASE_ADDR_OUTPUTX(1)
38 #define CVMX_NPI_BASE_ADDR_OUTPUT2 CVMX_NPI_BASE_ADDR_OUTPUTX(2)
39 #define CVMX_NPI_BASE_ADDR_OUTPUT3 CVMX_NPI_BASE_ADDR_OUTPUTX(3)
40 #define CVMX_NPI_BASE_ADDR_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F00000000B8ull) + ((offset) & 3) * 8)
41 #define CVMX_NPI_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011F00000003F8ull))
42 #define CVMX_NPI_BUFF_SIZE_OUTPUT0 CVMX_NPI_BUFF_SIZE_OUTPUTX(0)
43 #define CVMX_NPI_BUFF_SIZE_OUTPUT1 CVMX_NPI_BUFF_SIZE_OUTPUTX(1)
44 #define CVMX_NPI_BUFF_SIZE_OUTPUT2 CVMX_NPI_BUFF_SIZE_OUTPUTX(2)
45 #define CVMX_NPI_BUFF_SIZE_OUTPUT3 CVMX_NPI_BUFF_SIZE_OUTPUTX(3)
46 #define CVMX_NPI_BUFF_SIZE_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F00000000E0ull) + ((offset) & 3) * 8)
47 #define CVMX_NPI_COMP_CTL (CVMX_ADD_IO_SEG(0x00011F0000000218ull))
48 #define CVMX_NPI_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011F0000000010ull))
49 #define CVMX_NPI_DBG_SELECT (CVMX_ADD_IO_SEG(0x00011F0000000008ull))
50 #define CVMX_NPI_DMA_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000128ull))
51 #define CVMX_NPI_DMA_HIGHP_COUNTS (CVMX_ADD_IO_SEG(0x00011F0000000148ull))
52 #define CVMX_NPI_DMA_HIGHP_NADDR (CVMX_ADD_IO_SEG(0x00011F0000000158ull))
53 #define CVMX_NPI_DMA_LOWP_COUNTS (CVMX_ADD_IO_SEG(0x00011F0000000140ull))
54 #define CVMX_NPI_DMA_LOWP_NADDR (CVMX_ADD_IO_SEG(0x00011F0000000150ull))
55 #define CVMX_NPI_HIGHP_DBELL (CVMX_ADD_IO_SEG(0x00011F0000000120ull))
56 #define CVMX_NPI_HIGHP_IBUFF_SADDR (CVMX_ADD_IO_SEG(0x00011F0000000110ull))
57 #define CVMX_NPI_INPUT_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000138ull))
58 #define CVMX_NPI_INT_ENB (CVMX_ADD_IO_SEG(0x00011F0000000020ull))
59 #define CVMX_NPI_INT_SUM (CVMX_ADD_IO_SEG(0x00011F0000000018ull))
60 #define CVMX_NPI_LOWP_DBELL (CVMX_ADD_IO_SEG(0x00011F0000000118ull))
61 #define CVMX_NPI_LOWP_IBUFF_SADDR (CVMX_ADD_IO_SEG(0x00011F0000000108ull))
62 #define CVMX_NPI_MEM_ACCESS_SUBID3 CVMX_NPI_MEM_ACCESS_SUBIDX(3)
63 #define CVMX_NPI_MEM_ACCESS_SUBID4 CVMX_NPI_MEM_ACCESS_SUBIDX(4)
64 #define CVMX_NPI_MEM_ACCESS_SUBID5 CVMX_NPI_MEM_ACCESS_SUBIDX(5)
65 #define CVMX_NPI_MEM_ACCESS_SUBID6 CVMX_NPI_MEM_ACCESS_SUBIDX(6)
66 #define CVMX_NPI_MEM_ACCESS_SUBIDX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000028ull) + ((offset) & 7) * 8 - 8*3)
67 #define CVMX_NPI_MSI_RCV (0x0000000000000190ull)
68 #define CVMX_NPI_NPI_MSI_RCV (CVMX_ADD_IO_SEG(0x00011F0000001190ull))
69 #define CVMX_NPI_NUM_DESC_OUTPUT0 CVMX_NPI_NUM_DESC_OUTPUTX(0)
70 #define CVMX_NPI_NUM_DESC_OUTPUT1 CVMX_NPI_NUM_DESC_OUTPUTX(1)
71 #define CVMX_NPI_NUM_DESC_OUTPUT2 CVMX_NPI_NUM_DESC_OUTPUTX(2)
72 #define CVMX_NPI_NUM_DESC_OUTPUT3 CVMX_NPI_NUM_DESC_OUTPUTX(3)
73 #define CVMX_NPI_NUM_DESC_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000050ull) + ((offset) & 3) * 8)
74 #define CVMX_NPI_OUTPUT_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000100ull))
75 #define CVMX_NPI_P0_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(0)
76 #define CVMX_NPI_P0_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(0)
77 #define CVMX_NPI_P0_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(0)
78 #define CVMX_NPI_P0_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(0)
79 #define CVMX_NPI_P1_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(1)
80 #define CVMX_NPI_P1_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(1)
81 #define CVMX_NPI_P1_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(1)
82 #define CVMX_NPI_P1_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(1)
83 #define CVMX_NPI_P2_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(2)
84 #define CVMX_NPI_P2_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(2)
85 #define CVMX_NPI_P2_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(2)
86 #define CVMX_NPI_P2_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(2)
87 #define CVMX_NPI_P3_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(3)
88 #define CVMX_NPI_P3_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(3)
89 #define CVMX_NPI_P3_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(3)
90 #define CVMX_NPI_P3_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(3)
91 #define CVMX_NPI_PCI_BAR1_INDEXX(offset) (CVMX_ADD_IO_SEG(0x00011F0000001100ull) + ((offset) & 31) * 4)
92 #define CVMX_NPI_PCI_BIST_REG (CVMX_ADD_IO_SEG(0x00011F00000011C0ull))
93 #define CVMX_NPI_PCI_BURST_SIZE (CVMX_ADD_IO_SEG(0x00011F00000000D8ull))
94 #define CVMX_NPI_PCI_CFG00 (CVMX_ADD_IO_SEG(0x00011F0000001800ull))
95 #define CVMX_NPI_PCI_CFG01 (CVMX_ADD_IO_SEG(0x00011F0000001804ull))
96 #define CVMX_NPI_PCI_CFG02 (CVMX_ADD_IO_SEG(0x00011F0000001808ull))
97 #define CVMX_NPI_PCI_CFG03 (CVMX_ADD_IO_SEG(0x00011F000000180Cull))
98 #define CVMX_NPI_PCI_CFG04 (CVMX_ADD_IO_SEG(0x00011F0000001810ull))
99 #define CVMX_NPI_PCI_CFG05 (CVMX_ADD_IO_SEG(0x00011F0000001814ull))
100 #define CVMX_NPI_PCI_CFG06 (CVMX_ADD_IO_SEG(0x00011F0000001818ull))
101 #define CVMX_NPI_PCI_CFG07 (CVMX_ADD_IO_SEG(0x00011F000000181Cull))
102 #define CVMX_NPI_PCI_CFG08 (CVMX_ADD_IO_SEG(0x00011F0000001820ull))
103 #define CVMX_NPI_PCI_CFG09 (CVMX_ADD_IO_SEG(0x00011F0000001824ull))
104 #define CVMX_NPI_PCI_CFG10 (CVMX_ADD_IO_SEG(0x00011F0000001828ull))
105 #define CVMX_NPI_PCI_CFG11 (CVMX_ADD_IO_SEG(0x00011F000000182Cull))
106 #define CVMX_NPI_PCI_CFG12 (CVMX_ADD_IO_SEG(0x00011F0000001830ull))
107 #define CVMX_NPI_PCI_CFG13 (CVMX_ADD_IO_SEG(0x00011F0000001834ull))
108 #define CVMX_NPI_PCI_CFG15 (CVMX_ADD_IO_SEG(0x00011F000000183Cull))
109 #define CVMX_NPI_PCI_CFG16 (CVMX_ADD_IO_SEG(0x00011F0000001840ull))
110 #define CVMX_NPI_PCI_CFG17 (CVMX_ADD_IO_SEG(0x00011F0000001844ull))
111 #define CVMX_NPI_PCI_CFG18 (CVMX_ADD_IO_SEG(0x00011F0000001848ull))
112 #define CVMX_NPI_PCI_CFG19 (CVMX_ADD_IO_SEG(0x00011F000000184Cull))
113 #define CVMX_NPI_PCI_CFG20 (CVMX_ADD_IO_SEG(0x00011F0000001850ull))
114 #define CVMX_NPI_PCI_CFG21 (CVMX_ADD_IO_SEG(0x00011F0000001854ull))
115 #define CVMX_NPI_PCI_CFG22 (CVMX_ADD_IO_SEG(0x00011F0000001858ull))
116 #define CVMX_NPI_PCI_CFG56 (CVMX_ADD_IO_SEG(0x00011F00000018E0ull))
117 #define CVMX_NPI_PCI_CFG57 (CVMX_ADD_IO_SEG(0x00011F00000018E4ull))
118 #define CVMX_NPI_PCI_CFG58 (CVMX_ADD_IO_SEG(0x00011F00000018E8ull))
119 #define CVMX_NPI_PCI_CFG59 (CVMX_ADD_IO_SEG(0x00011F00000018ECull))
120 #define CVMX_NPI_PCI_CFG60 (CVMX_ADD_IO_SEG(0x00011F00000018F0ull))
121 #define CVMX_NPI_PCI_CFG61 (CVMX_ADD_IO_SEG(0x00011F00000018F4ull))
122 #define CVMX_NPI_PCI_CFG62 (CVMX_ADD_IO_SEG(0x00011F00000018F8ull))
123 #define CVMX_NPI_PCI_CFG63 (CVMX_ADD_IO_SEG(0x00011F00000018FCull))
124 #define CVMX_NPI_PCI_CNT_REG (CVMX_ADD_IO_SEG(0x00011F00000011B8ull))
125 #define CVMX_NPI_PCI_CTL_STATUS_2 (CVMX_ADD_IO_SEG(0x00011F000000118Cull))
126 #define CVMX_NPI_PCI_INT_ARB_CFG (CVMX_ADD_IO_SEG(0x00011F0000000130ull))
127 #define CVMX_NPI_PCI_INT_ENB2 (CVMX_ADD_IO_SEG(0x00011F00000011A0ull))
128 #define CVMX_NPI_PCI_INT_SUM2 (CVMX_ADD_IO_SEG(0x00011F0000001198ull))
129 #define CVMX_NPI_PCI_READ_CMD (CVMX_ADD_IO_SEG(0x00011F0000000048ull))
130 #define CVMX_NPI_PCI_READ_CMD_6 (CVMX_ADD_IO_SEG(0x00011F0000001180ull))
131 #define CVMX_NPI_PCI_READ_CMD_C (CVMX_ADD_IO_SEG(0x00011F0000001184ull))
132 #define CVMX_NPI_PCI_READ_CMD_E (CVMX_ADD_IO_SEG(0x00011F0000001188ull))
133 #define CVMX_NPI_PCI_SCM_REG (CVMX_ADD_IO_SEG(0x00011F00000011A8ull))
134 #define CVMX_NPI_PCI_TSR_REG (CVMX_ADD_IO_SEG(0x00011F00000011B0ull))
135 #define CVMX_NPI_PORT32_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F00000001F8ull))
136 #define CVMX_NPI_PORT33_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000200ull))
137 #define CVMX_NPI_PORT34_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000208ull))
138 #define CVMX_NPI_PORT35_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000210ull))
139 #define CVMX_NPI_PORT_BP_CONTROL (CVMX_ADD_IO_SEG(0x00011F00000001F0ull))
140 #define CVMX_NPI_PX_DBPAIR_ADDR(offset) (CVMX_ADD_IO_SEG(0x00011F0000000180ull) + ((offset) & 3) * 8)
141 #define CVMX_NPI_PX_INSTR_ADDR(offset) (CVMX_ADD_IO_SEG(0x00011F00000001C0ull) + ((offset) & 3) * 8)
142 #define CVMX_NPI_PX_INSTR_CNTS(offset) (CVMX_ADD_IO_SEG(0x00011F00000001A0ull) + ((offset) & 3) * 8)
143 #define CVMX_NPI_PX_PAIR_CNTS(offset) (CVMX_ADD_IO_SEG(0x00011F0000000160ull) + ((offset) & 3) * 8)
144 #define CVMX_NPI_RSL_INT_BLOCKS (CVMX_ADD_IO_SEG(0x00011F0000000000ull))
145 #define CVMX_NPI_SIZE_INPUT0 CVMX_NPI_SIZE_INPUTX(0)
146 #define CVMX_NPI_SIZE_INPUT1 CVMX_NPI_SIZE_INPUTX(1)
147 #define CVMX_NPI_SIZE_INPUT2 CVMX_NPI_SIZE_INPUTX(2)
148 #define CVMX_NPI_SIZE_INPUT3 CVMX_NPI_SIZE_INPUTX(3)
149 #define CVMX_NPI_SIZE_INPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000078ull) + ((offset) & 3) * 16)
150 #define CVMX_NPI_WIN_READ_TO (CVMX_ADD_IO_SEG(0x00011F00000001E0ull))
151
152 union cvmx_npi_base_addr_inputx {
153         uint64_t u64;
154         struct cvmx_npi_base_addr_inputx_s {
155                 uint64_t baddr:61;
156                 uint64_t reserved_0_2:3;
157         } s;
158         struct cvmx_npi_base_addr_inputx_s cn30xx;
159         struct cvmx_npi_base_addr_inputx_s cn31xx;
160         struct cvmx_npi_base_addr_inputx_s cn38xx;
161         struct cvmx_npi_base_addr_inputx_s cn38xxp2;
162         struct cvmx_npi_base_addr_inputx_s cn50xx;
163         struct cvmx_npi_base_addr_inputx_s cn58xx;
164         struct cvmx_npi_base_addr_inputx_s cn58xxp1;
165 };
166
167 union cvmx_npi_base_addr_outputx {
168         uint64_t u64;
169         struct cvmx_npi_base_addr_outputx_s {
170                 uint64_t baddr:61;
171                 uint64_t reserved_0_2:3;
172         } s;
173         struct cvmx_npi_base_addr_outputx_s cn30xx;
174         struct cvmx_npi_base_addr_outputx_s cn31xx;
175         struct cvmx_npi_base_addr_outputx_s cn38xx;
176         struct cvmx_npi_base_addr_outputx_s cn38xxp2;
177         struct cvmx_npi_base_addr_outputx_s cn50xx;
178         struct cvmx_npi_base_addr_outputx_s cn58xx;
179         struct cvmx_npi_base_addr_outputx_s cn58xxp1;
180 };
181
182 union cvmx_npi_bist_status {
183         uint64_t u64;
184         struct cvmx_npi_bist_status_s {
185                 uint64_t reserved_20_63:44;
186                 uint64_t csr_bs:1;
187                 uint64_t dif_bs:1;
188                 uint64_t rdp_bs:1;
189                 uint64_t pcnc_bs:1;
190                 uint64_t pcn_bs:1;
191                 uint64_t rdn_bs:1;
192                 uint64_t pcac_bs:1;
193                 uint64_t pcad_bs:1;
194                 uint64_t rdnl_bs:1;
195                 uint64_t pgf_bs:1;
196                 uint64_t pig_bs:1;
197                 uint64_t pof0_bs:1;
198                 uint64_t pof1_bs:1;
199                 uint64_t pof2_bs:1;
200                 uint64_t pof3_bs:1;
201                 uint64_t pos_bs:1;
202                 uint64_t nus_bs:1;
203                 uint64_t dob_bs:1;
204                 uint64_t pdf_bs:1;
205                 uint64_t dpi_bs:1;
206         } s;
207         struct cvmx_npi_bist_status_cn30xx {
208                 uint64_t reserved_20_63:44;
209                 uint64_t csr_bs:1;
210                 uint64_t dif_bs:1;
211                 uint64_t rdp_bs:1;
212                 uint64_t pcnc_bs:1;
213                 uint64_t pcn_bs:1;
214                 uint64_t rdn_bs:1;
215                 uint64_t pcac_bs:1;
216                 uint64_t pcad_bs:1;
217                 uint64_t rdnl_bs:1;
218                 uint64_t pgf_bs:1;
219                 uint64_t pig_bs:1;
220                 uint64_t pof0_bs:1;
221                 uint64_t reserved_5_7:3;
222                 uint64_t pos_bs:1;
223                 uint64_t nus_bs:1;
224                 uint64_t dob_bs:1;
225                 uint64_t pdf_bs:1;
226                 uint64_t dpi_bs:1;
227         } cn30xx;
228         struct cvmx_npi_bist_status_s cn31xx;
229         struct cvmx_npi_bist_status_s cn38xx;
230         struct cvmx_npi_bist_status_s cn38xxp2;
231         struct cvmx_npi_bist_status_cn50xx {
232                 uint64_t reserved_20_63:44;
233                 uint64_t csr_bs:1;
234                 uint64_t dif_bs:1;
235                 uint64_t rdp_bs:1;
236                 uint64_t pcnc_bs:1;
237                 uint64_t pcn_bs:1;
238                 uint64_t rdn_bs:1;
239                 uint64_t pcac_bs:1;
240                 uint64_t pcad_bs:1;
241                 uint64_t rdnl_bs:1;
242                 uint64_t pgf_bs:1;
243                 uint64_t pig_bs:1;
244                 uint64_t pof0_bs:1;
245                 uint64_t pof1_bs:1;
246                 uint64_t reserved_5_6:2;
247                 uint64_t pos_bs:1;
248                 uint64_t nus_bs:1;
249                 uint64_t dob_bs:1;
250                 uint64_t pdf_bs:1;
251                 uint64_t dpi_bs:1;
252         } cn50xx;
253         struct cvmx_npi_bist_status_s cn58xx;
254         struct cvmx_npi_bist_status_s cn58xxp1;
255 };
256
257 union cvmx_npi_buff_size_outputx {
258         uint64_t u64;
259         struct cvmx_npi_buff_size_outputx_s {
260                 uint64_t reserved_23_63:41;
261                 uint64_t isize:7;
262                 uint64_t bsize:16;
263         } s;
264         struct cvmx_npi_buff_size_outputx_s cn30xx;
265         struct cvmx_npi_buff_size_outputx_s cn31xx;
266         struct cvmx_npi_buff_size_outputx_s cn38xx;
267         struct cvmx_npi_buff_size_outputx_s cn38xxp2;
268         struct cvmx_npi_buff_size_outputx_s cn50xx;
269         struct cvmx_npi_buff_size_outputx_s cn58xx;
270         struct cvmx_npi_buff_size_outputx_s cn58xxp1;
271 };
272
273 union cvmx_npi_comp_ctl {
274         uint64_t u64;
275         struct cvmx_npi_comp_ctl_s {
276                 uint64_t reserved_10_63:54;
277                 uint64_t pctl:5;
278                 uint64_t nctl:5;
279         } s;
280         struct cvmx_npi_comp_ctl_s cn50xx;
281         struct cvmx_npi_comp_ctl_s cn58xx;
282         struct cvmx_npi_comp_ctl_s cn58xxp1;
283 };
284
285 union cvmx_npi_ctl_status {
286         uint64_t u64;
287         struct cvmx_npi_ctl_status_s {
288                 uint64_t reserved_63_63:1;
289                 uint64_t chip_rev:8;
290                 uint64_t dis_pniw:1;
291                 uint64_t out3_enb:1;
292                 uint64_t out2_enb:1;
293                 uint64_t out1_enb:1;
294                 uint64_t out0_enb:1;
295                 uint64_t ins3_enb:1;
296                 uint64_t ins2_enb:1;
297                 uint64_t ins1_enb:1;
298                 uint64_t ins0_enb:1;
299                 uint64_t ins3_64b:1;
300                 uint64_t ins2_64b:1;
301                 uint64_t ins1_64b:1;
302                 uint64_t ins0_64b:1;
303                 uint64_t pci_wdis:1;
304                 uint64_t wait_com:1;
305                 uint64_t reserved_37_39:3;
306                 uint64_t max_word:5;
307                 uint64_t reserved_10_31:22;
308                 uint64_t timer:10;
309         } s;
310         struct cvmx_npi_ctl_status_cn30xx {
311                 uint64_t reserved_63_63:1;
312                 uint64_t chip_rev:8;
313                 uint64_t dis_pniw:1;
314                 uint64_t reserved_51_53:3;
315                 uint64_t out0_enb:1;
316                 uint64_t reserved_47_49:3;
317                 uint64_t ins0_enb:1;
318                 uint64_t reserved_43_45:3;
319                 uint64_t ins0_64b:1;
320                 uint64_t pci_wdis:1;
321                 uint64_t wait_com:1;
322                 uint64_t reserved_37_39:3;
323                 uint64_t max_word:5;
324                 uint64_t reserved_10_31:22;
325                 uint64_t timer:10;
326         } cn30xx;
327         struct cvmx_npi_ctl_status_cn31xx {
328                 uint64_t reserved_63_63:1;
329                 uint64_t chip_rev:8;
330                 uint64_t dis_pniw:1;
331                 uint64_t reserved_52_53:2;
332                 uint64_t out1_enb:1;
333                 uint64_t out0_enb:1;
334                 uint64_t reserved_48_49:2;
335                 uint64_t ins1_enb:1;
336                 uint64_t ins0_enb:1;
337                 uint64_t reserved_44_45:2;
338                 uint64_t ins1_64b:1;
339                 uint64_t ins0_64b:1;
340                 uint64_t pci_wdis:1;
341                 uint64_t wait_com:1;
342                 uint64_t reserved_37_39:3;
343                 uint64_t max_word:5;
344                 uint64_t reserved_10_31:22;
345                 uint64_t timer:10;
346         } cn31xx;
347         struct cvmx_npi_ctl_status_s cn38xx;
348         struct cvmx_npi_ctl_status_s cn38xxp2;
349         struct cvmx_npi_ctl_status_cn31xx cn50xx;
350         struct cvmx_npi_ctl_status_s cn58xx;
351         struct cvmx_npi_ctl_status_s cn58xxp1;
352 };
353
354 union cvmx_npi_dbg_select {
355         uint64_t u64;
356         struct cvmx_npi_dbg_select_s {
357                 uint64_t reserved_16_63:48;
358                 uint64_t dbg_sel:16;
359         } s;
360         struct cvmx_npi_dbg_select_s cn30xx;
361         struct cvmx_npi_dbg_select_s cn31xx;
362         struct cvmx_npi_dbg_select_s cn38xx;
363         struct cvmx_npi_dbg_select_s cn38xxp2;
364         struct cvmx_npi_dbg_select_s cn50xx;
365         struct cvmx_npi_dbg_select_s cn58xx;
366         struct cvmx_npi_dbg_select_s cn58xxp1;
367 };
368
369 union cvmx_npi_dma_control {
370         uint64_t u64;
371         struct cvmx_npi_dma_control_s {
372                 uint64_t reserved_36_63:28;
373                 uint64_t b0_lend:1;
374                 uint64_t dwb_denb:1;
375                 uint64_t dwb_ichk:9;
376                 uint64_t fpa_que:3;
377                 uint64_t o_add1:1;
378                 uint64_t o_ro:1;
379                 uint64_t o_ns:1;
380                 uint64_t o_es:2;
381                 uint64_t o_mode:1;
382                 uint64_t hp_enb:1;
383                 uint64_t lp_enb:1;
384                 uint64_t csize:14;
385         } s;
386         struct cvmx_npi_dma_control_s cn30xx;
387         struct cvmx_npi_dma_control_s cn31xx;
388         struct cvmx_npi_dma_control_s cn38xx;
389         struct cvmx_npi_dma_control_s cn38xxp2;
390         struct cvmx_npi_dma_control_s cn50xx;
391         struct cvmx_npi_dma_control_s cn58xx;
392         struct cvmx_npi_dma_control_s cn58xxp1;
393 };
394
395 union cvmx_npi_dma_highp_counts {
396         uint64_t u64;
397         struct cvmx_npi_dma_highp_counts_s {
398                 uint64_t reserved_39_63:25;
399                 uint64_t fcnt:7;
400                 uint64_t dbell:32;
401         } s;
402         struct cvmx_npi_dma_highp_counts_s cn30xx;
403         struct cvmx_npi_dma_highp_counts_s cn31xx;
404         struct cvmx_npi_dma_highp_counts_s cn38xx;
405         struct cvmx_npi_dma_highp_counts_s cn38xxp2;
406         struct cvmx_npi_dma_highp_counts_s cn50xx;
407         struct cvmx_npi_dma_highp_counts_s cn58xx;
408         struct cvmx_npi_dma_highp_counts_s cn58xxp1;
409 };
410
411 union cvmx_npi_dma_highp_naddr {
412         uint64_t u64;
413         struct cvmx_npi_dma_highp_naddr_s {
414                 uint64_t reserved_40_63:24;
415                 uint64_t state:4;
416                 uint64_t addr:36;
417         } s;
418         struct cvmx_npi_dma_highp_naddr_s cn30xx;
419         struct cvmx_npi_dma_highp_naddr_s cn31xx;
420         struct cvmx_npi_dma_highp_naddr_s cn38xx;
421         struct cvmx_npi_dma_highp_naddr_s cn38xxp2;
422         struct cvmx_npi_dma_highp_naddr_s cn50xx;
423         struct cvmx_npi_dma_highp_naddr_s cn58xx;
424         struct cvmx_npi_dma_highp_naddr_s cn58xxp1;
425 };
426
427 union cvmx_npi_dma_lowp_counts {
428         uint64_t u64;
429         struct cvmx_npi_dma_lowp_counts_s {
430                 uint64_t reserved_39_63:25;
431                 uint64_t fcnt:7;
432                 uint64_t dbell:32;
433         } s;
434         struct cvmx_npi_dma_lowp_counts_s cn30xx;
435         struct cvmx_npi_dma_lowp_counts_s cn31xx;
436         struct cvmx_npi_dma_lowp_counts_s cn38xx;
437         struct cvmx_npi_dma_lowp_counts_s cn38xxp2;
438         struct cvmx_npi_dma_lowp_counts_s cn50xx;
439         struct cvmx_npi_dma_lowp_counts_s cn58xx;
440         struct cvmx_npi_dma_lowp_counts_s cn58xxp1;
441 };
442
443 union cvmx_npi_dma_lowp_naddr {
444         uint64_t u64;
445         struct cvmx_npi_dma_lowp_naddr_s {
446                 uint64_t reserved_40_63:24;
447                 uint64_t state:4;
448                 uint64_t addr:36;
449         } s;
450         struct cvmx_npi_dma_lowp_naddr_s cn30xx;
451         struct cvmx_npi_dma_lowp_naddr_s cn31xx;
452         struct cvmx_npi_dma_lowp_naddr_s cn38xx;
453         struct cvmx_npi_dma_lowp_naddr_s cn38xxp2;
454         struct cvmx_npi_dma_lowp_naddr_s cn50xx;
455         struct cvmx_npi_dma_lowp_naddr_s cn58xx;
456         struct cvmx_npi_dma_lowp_naddr_s cn58xxp1;
457 };
458
459 union cvmx_npi_highp_dbell {
460         uint64_t u64;
461         struct cvmx_npi_highp_dbell_s {
462                 uint64_t reserved_16_63:48;
463                 uint64_t dbell:16;
464         } s;
465         struct cvmx_npi_highp_dbell_s cn30xx;
466         struct cvmx_npi_highp_dbell_s cn31xx;
467         struct cvmx_npi_highp_dbell_s cn38xx;
468         struct cvmx_npi_highp_dbell_s cn38xxp2;
469         struct cvmx_npi_highp_dbell_s cn50xx;
470         struct cvmx_npi_highp_dbell_s cn58xx;
471         struct cvmx_npi_highp_dbell_s cn58xxp1;
472 };
473
474 union cvmx_npi_highp_ibuff_saddr {
475         uint64_t u64;
476         struct cvmx_npi_highp_ibuff_saddr_s {
477                 uint64_t reserved_36_63:28;
478                 uint64_t saddr:36;
479         } s;
480         struct cvmx_npi_highp_ibuff_saddr_s cn30xx;
481         struct cvmx_npi_highp_ibuff_saddr_s cn31xx;
482         struct cvmx_npi_highp_ibuff_saddr_s cn38xx;
483         struct cvmx_npi_highp_ibuff_saddr_s cn38xxp2;
484         struct cvmx_npi_highp_ibuff_saddr_s cn50xx;
485         struct cvmx_npi_highp_ibuff_saddr_s cn58xx;
486         struct cvmx_npi_highp_ibuff_saddr_s cn58xxp1;
487 };
488
489 union cvmx_npi_input_control {
490         uint64_t u64;
491         struct cvmx_npi_input_control_s {
492                 uint64_t reserved_23_63:41;
493                 uint64_t pkt_rr:1;
494                 uint64_t pbp_dhi:13;
495                 uint64_t d_nsr:1;
496                 uint64_t d_esr:2;
497                 uint64_t d_ror:1;
498                 uint64_t use_csr:1;
499                 uint64_t nsr:1;
500                 uint64_t esr:2;
501                 uint64_t ror:1;
502         } s;
503         struct cvmx_npi_input_control_cn30xx {
504                 uint64_t reserved_22_63:42;
505                 uint64_t pbp_dhi:13;
506                 uint64_t d_nsr:1;
507                 uint64_t d_esr:2;
508                 uint64_t d_ror:1;
509                 uint64_t use_csr:1;
510                 uint64_t nsr:1;
511                 uint64_t esr:2;
512                 uint64_t ror:1;
513         } cn30xx;
514         struct cvmx_npi_input_control_cn30xx cn31xx;
515         struct cvmx_npi_input_control_s cn38xx;
516         struct cvmx_npi_input_control_cn30xx cn38xxp2;
517         struct cvmx_npi_input_control_s cn50xx;
518         struct cvmx_npi_input_control_s cn58xx;
519         struct cvmx_npi_input_control_s cn58xxp1;
520 };
521
522 union cvmx_npi_int_enb {
523         uint64_t u64;
524         struct cvmx_npi_int_enb_s {
525                 uint64_t reserved_62_63:2;
526                 uint64_t q1_a_f:1;
527                 uint64_t q1_s_e:1;
528                 uint64_t pdf_p_f:1;
529                 uint64_t pdf_p_e:1;
530                 uint64_t pcf_p_f:1;
531                 uint64_t pcf_p_e:1;
532                 uint64_t rdx_s_e:1;
533                 uint64_t rwx_s_e:1;
534                 uint64_t pnc_a_f:1;
535                 uint64_t pnc_s_e:1;
536                 uint64_t com_a_f:1;
537                 uint64_t com_s_e:1;
538                 uint64_t q3_a_f:1;
539                 uint64_t q3_s_e:1;
540                 uint64_t q2_a_f:1;
541                 uint64_t q2_s_e:1;
542                 uint64_t pcr_a_f:1;
543                 uint64_t pcr_s_e:1;
544                 uint64_t fcr_a_f:1;
545                 uint64_t fcr_s_e:1;
546                 uint64_t iobdma:1;
547                 uint64_t p_dperr:1;
548                 uint64_t win_rto:1;
549                 uint64_t i3_pperr:1;
550                 uint64_t i2_pperr:1;
551                 uint64_t i1_pperr:1;
552                 uint64_t i0_pperr:1;
553                 uint64_t p3_ptout:1;
554                 uint64_t p2_ptout:1;
555                 uint64_t p1_ptout:1;
556                 uint64_t p0_ptout:1;
557                 uint64_t p3_pperr:1;
558                 uint64_t p2_pperr:1;
559                 uint64_t p1_pperr:1;
560                 uint64_t p0_pperr:1;
561                 uint64_t g3_rtout:1;
562                 uint64_t g2_rtout:1;
563                 uint64_t g1_rtout:1;
564                 uint64_t g0_rtout:1;
565                 uint64_t p3_perr:1;
566                 uint64_t p2_perr:1;
567                 uint64_t p1_perr:1;
568                 uint64_t p0_perr:1;
569                 uint64_t p3_rtout:1;
570                 uint64_t p2_rtout:1;
571                 uint64_t p1_rtout:1;
572                 uint64_t p0_rtout:1;
573                 uint64_t i3_overf:1;
574                 uint64_t i2_overf:1;
575                 uint64_t i1_overf:1;
576                 uint64_t i0_overf:1;
577                 uint64_t i3_rtout:1;
578                 uint64_t i2_rtout:1;
579                 uint64_t i1_rtout:1;
580                 uint64_t i0_rtout:1;
581                 uint64_t po3_2sml:1;
582                 uint64_t po2_2sml:1;
583                 uint64_t po1_2sml:1;
584                 uint64_t po0_2sml:1;
585                 uint64_t pci_rsl:1;
586                 uint64_t rml_wto:1;
587                 uint64_t rml_rto:1;
588         } s;
589         struct cvmx_npi_int_enb_cn30xx {
590                 uint64_t reserved_62_63:2;
591                 uint64_t q1_a_f:1;
592                 uint64_t q1_s_e:1;
593                 uint64_t pdf_p_f:1;
594                 uint64_t pdf_p_e:1;
595                 uint64_t pcf_p_f:1;
596                 uint64_t pcf_p_e:1;
597                 uint64_t rdx_s_e:1;
598                 uint64_t rwx_s_e:1;
599                 uint64_t pnc_a_f:1;
600                 uint64_t pnc_s_e:1;
601                 uint64_t com_a_f:1;
602                 uint64_t com_s_e:1;
603                 uint64_t q3_a_f:1;
604                 uint64_t q3_s_e:1;
605                 uint64_t q2_a_f:1;
606                 uint64_t q2_s_e:1;
607                 uint64_t pcr_a_f:1;
608                 uint64_t pcr_s_e:1;
609                 uint64_t fcr_a_f:1;
610                 uint64_t fcr_s_e:1;
611                 uint64_t iobdma:1;
612                 uint64_t p_dperr:1;
613                 uint64_t win_rto:1;
614                 uint64_t reserved_36_38:3;
615                 uint64_t i0_pperr:1;
616                 uint64_t reserved_32_34:3;
617                 uint64_t p0_ptout:1;
618                 uint64_t reserved_28_30:3;
619                 uint64_t p0_pperr:1;
620                 uint64_t reserved_24_26:3;
621                 uint64_t g0_rtout:1;
622                 uint64_t reserved_20_22:3;
623                 uint64_t p0_perr:1;
624                 uint64_t reserved_16_18:3;
625                 uint64_t p0_rtout:1;
626                 uint64_t reserved_12_14:3;
627                 uint64_t i0_overf:1;
628                 uint64_t reserved_8_10:3;
629                 uint64_t i0_rtout:1;
630                 uint64_t reserved_4_6:3;
631                 uint64_t po0_2sml:1;
632                 uint64_t pci_rsl:1;
633                 uint64_t rml_wto:1;
634                 uint64_t rml_rto:1;
635         } cn30xx;
636         struct cvmx_npi_int_enb_cn31xx {
637                 uint64_t reserved_62_63:2;
638                 uint64_t q1_a_f:1;
639                 uint64_t q1_s_e:1;
640                 uint64_t pdf_p_f:1;
641                 uint64_t pdf_p_e:1;
642                 uint64_t pcf_p_f:1;
643                 uint64_t pcf_p_e:1;
644                 uint64_t rdx_s_e:1;
645                 uint64_t rwx_s_e:1;
646                 uint64_t pnc_a_f:1;
647                 uint64_t pnc_s_e:1;
648                 uint64_t com_a_f:1;
649                 uint64_t com_s_e:1;
650                 uint64_t q3_a_f:1;
651                 uint64_t q3_s_e:1;
652                 uint64_t q2_a_f:1;
653                 uint64_t q2_s_e:1;
654                 uint64_t pcr_a_f:1;
655                 uint64_t pcr_s_e:1;
656                 uint64_t fcr_a_f:1;
657                 uint64_t fcr_s_e:1;
658                 uint64_t iobdma:1;
659                 uint64_t p_dperr:1;
660                 uint64_t win_rto:1;
661                 uint64_t reserved_37_38:2;
662                 uint64_t i1_pperr:1;
663                 uint64_t i0_pperr:1;
664                 uint64_t reserved_33_34:2;
665                 uint64_t p1_ptout:1;
666                 uint64_t p0_ptout:1;
667                 uint64_t reserved_29_30:2;
668                 uint64_t p1_pperr:1;
669                 uint64_t p0_pperr:1;
670                 uint64_t reserved_25_26:2;
671                 uint64_t g1_rtout:1;
672                 uint64_t g0_rtout:1;
673                 uint64_t reserved_21_22:2;
674                 uint64_t p1_perr:1;
675                 uint64_t p0_perr:1;
676                 uint64_t reserved_17_18:2;
677                 uint64_t p1_rtout:1;
678                 uint64_t p0_rtout:1;
679                 uint64_t reserved_13_14:2;
680                 uint64_t i1_overf:1;
681                 uint64_t i0_overf:1;
682                 uint64_t reserved_9_10:2;
683                 uint64_t i1_rtout:1;
684                 uint64_t i0_rtout:1;
685                 uint64_t reserved_5_6:2;
686                 uint64_t po1_2sml:1;
687                 uint64_t po0_2sml:1;
688                 uint64_t pci_rsl:1;
689                 uint64_t rml_wto:1;
690                 uint64_t rml_rto:1;
691         } cn31xx;
692         struct cvmx_npi_int_enb_s cn38xx;
693         struct cvmx_npi_int_enb_cn38xxp2 {
694                 uint64_t reserved_42_63:22;
695                 uint64_t iobdma:1;
696                 uint64_t p_dperr:1;
697                 uint64_t win_rto:1;
698                 uint64_t i3_pperr:1;
699                 uint64_t i2_pperr:1;
700                 uint64_t i1_pperr:1;
701                 uint64_t i0_pperr:1;
702                 uint64_t p3_ptout:1;
703                 uint64_t p2_ptout:1;
704                 uint64_t p1_ptout:1;
705                 uint64_t p0_ptout:1;
706                 uint64_t p3_pperr:1;
707                 uint64_t p2_pperr:1;
708                 uint64_t p1_pperr:1;
709                 uint64_t p0_pperr:1;
710                 uint64_t g3_rtout:1;
711                 uint64_t g2_rtout:1;
712                 uint64_t g1_rtout:1;
713                 uint64_t g0_rtout:1;
714                 uint64_t p3_perr:1;
715                 uint64_t p2_perr:1;
716                 uint64_t p1_perr:1;
717                 uint64_t p0_perr:1;
718                 uint64_t p3_rtout:1;
719                 uint64_t p2_rtout:1;
720                 uint64_t p1_rtout:1;
721                 uint64_t p0_rtout:1;
722                 uint64_t i3_overf:1;
723                 uint64_t i2_overf:1;
724                 uint64_t i1_overf:1;
725                 uint64_t i0_overf:1;
726                 uint64_t i3_rtout:1;
727                 uint64_t i2_rtout:1;
728                 uint64_t i1_rtout:1;
729                 uint64_t i0_rtout:1;
730                 uint64_t po3_2sml:1;
731                 uint64_t po2_2sml:1;
732                 uint64_t po1_2sml:1;
733                 uint64_t po0_2sml:1;
734                 uint64_t pci_rsl:1;
735                 uint64_t rml_wto:1;
736                 uint64_t rml_rto:1;
737         } cn38xxp2;
738         struct cvmx_npi_int_enb_cn31xx cn50xx;
739         struct cvmx_npi_int_enb_s cn58xx;
740         struct cvmx_npi_int_enb_s cn58xxp1;
741 };
742
743 union cvmx_npi_int_sum {
744         uint64_t u64;
745         struct cvmx_npi_int_sum_s {
746                 uint64_t reserved_62_63:2;
747                 uint64_t q1_a_f:1;
748                 uint64_t q1_s_e:1;
749                 uint64_t pdf_p_f:1;
750                 uint64_t pdf_p_e:1;
751                 uint64_t pcf_p_f:1;
752                 uint64_t pcf_p_e:1;
753                 uint64_t rdx_s_e:1;
754                 uint64_t rwx_s_e:1;
755                 uint64_t pnc_a_f:1;
756                 uint64_t pnc_s_e:1;
757                 uint64_t com_a_f:1;
758                 uint64_t com_s_e:1;
759                 uint64_t q3_a_f:1;
760                 uint64_t q3_s_e:1;
761                 uint64_t q2_a_f:1;
762                 uint64_t q2_s_e:1;
763                 uint64_t pcr_a_f:1;
764                 uint64_t pcr_s_e:1;
765                 uint64_t fcr_a_f:1;
766                 uint64_t fcr_s_e:1;
767                 uint64_t iobdma:1;
768                 uint64_t p_dperr:1;
769                 uint64_t win_rto:1;
770                 uint64_t i3_pperr:1;
771                 uint64_t i2_pperr:1;
772                 uint64_t i1_pperr:1;
773                 uint64_t i0_pperr:1;
774                 uint64_t p3_ptout:1;
775                 uint64_t p2_ptout:1;
776                 uint64_t p1_ptout:1;
777                 uint64_t p0_ptout:1;
778                 uint64_t p3_pperr:1;
779                 uint64_t p2_pperr:1;
780                 uint64_t p1_pperr:1;
781                 uint64_t p0_pperr:1;
782                 uint64_t g3_rtout:1;
783                 uint64_t g2_rtout:1;
784                 uint64_t g1_rtout:1;
785                 uint64_t g0_rtout:1;
786                 uint64_t p3_perr:1;
787                 uint64_t p2_perr:1;
788                 uint64_t p1_perr:1;
789                 uint64_t p0_perr:1;
790                 uint64_t p3_rtout:1;
791                 uint64_t p2_rtout:1;
792                 uint64_t p1_rtout:1;
793                 uint64_t p0_rtout:1;
794                 uint64_t i3_overf:1;
795                 uint64_t i2_overf:1;
796                 uint64_t i1_overf:1;
797                 uint64_t i0_overf:1;
798                 uint64_t i3_rtout:1;
799                 uint64_t i2_rtout:1;
800                 uint64_t i1_rtout:1;
801                 uint64_t i0_rtout:1;
802                 uint64_t po3_2sml:1;
803                 uint64_t po2_2sml:1;
804                 uint64_t po1_2sml:1;
805                 uint64_t po0_2sml:1;
806                 uint64_t pci_rsl:1;
807                 uint64_t rml_wto:1;
808                 uint64_t rml_rto:1;
809         } s;
810         struct cvmx_npi_int_sum_cn30xx {
811                 uint64_t reserved_62_63:2;
812                 uint64_t q1_a_f:1;
813                 uint64_t q1_s_e:1;
814                 uint64_t pdf_p_f:1;
815                 uint64_t pdf_p_e:1;
816                 uint64_t pcf_p_f:1;
817                 uint64_t pcf_p_e:1;
818                 uint64_t rdx_s_e:1;
819                 uint64_t rwx_s_e:1;
820                 uint64_t pnc_a_f:1;
821                 uint64_t pnc_s_e:1;
822                 uint64_t com_a_f:1;
823                 uint64_t com_s_e:1;
824                 uint64_t q3_a_f:1;
825                 uint64_t q3_s_e:1;
826                 uint64_t q2_a_f:1;
827                 uint64_t q2_s_e:1;
828                 uint64_t pcr_a_f:1;
829                 uint64_t pcr_s_e:1;
830                 uint64_t fcr_a_f:1;
831                 uint64_t fcr_s_e:1;
832                 uint64_t iobdma:1;
833                 uint64_t p_dperr:1;
834                 uint64_t win_rto:1;
835                 uint64_t reserved_36_38:3;
836                 uint64_t i0_pperr:1;
837                 uint64_t reserved_32_34:3;
838                 uint64_t p0_ptout:1;
839                 uint64_t reserved_28_30:3;
840                 uint64_t p0_pperr:1;
841                 uint64_t reserved_24_26:3;
842                 uint64_t g0_rtout:1;
843                 uint64_t reserved_20_22:3;
844                 uint64_t p0_perr:1;
845                 uint64_t reserved_16_18:3;
846                 uint64_t p0_rtout:1;
847                 uint64_t reserved_12_14:3;
848                 uint64_t i0_overf:1;
849                 uint64_t reserved_8_10:3;
850                 uint64_t i0_rtout:1;
851                 uint64_t reserved_4_6:3;
852                 uint64_t po0_2sml:1;
853                 uint64_t pci_rsl:1;
854                 uint64_t rml_wto:1;
855                 uint64_t rml_rto:1;
856         } cn30xx;
857         struct cvmx_npi_int_sum_cn31xx {
858                 uint64_t reserved_62_63:2;
859                 uint64_t q1_a_f:1;
860                 uint64_t q1_s_e:1;
861                 uint64_t pdf_p_f:1;
862                 uint64_t pdf_p_e:1;
863                 uint64_t pcf_p_f:1;
864                 uint64_t pcf_p_e:1;
865                 uint64_t rdx_s_e:1;
866                 uint64_t rwx_s_e:1;
867                 uint64_t pnc_a_f:1;
868                 uint64_t pnc_s_e:1;
869                 uint64_t com_a_f:1;
870                 uint64_t com_s_e:1;
871                 uint64_t q3_a_f:1;
872                 uint64_t q3_s_e:1;
873                 uint64_t q2_a_f:1;
874                 uint64_t q2_s_e:1;
875                 uint64_t pcr_a_f:1;
876                 uint64_t pcr_s_e:1;
877                 uint64_t fcr_a_f:1;
878                 uint64_t fcr_s_e:1;
879                 uint64_t iobdma:1;
880                 uint64_t p_dperr:1;
881                 uint64_t win_rto:1;
882                 uint64_t reserved_37_38:2;
883                 uint64_t i1_pperr:1;
884                 uint64_t i0_pperr:1;
885                 uint64_t reserved_33_34:2;
886                 uint64_t p1_ptout:1;
887                 uint64_t p0_ptout:1;
888                 uint64_t reserved_29_30:2;
889                 uint64_t p1_pperr:1;
890                 uint64_t p0_pperr:1;
891                 uint64_t reserved_25_26:2;
892                 uint64_t g1_rtout:1;
893                 uint64_t g0_rtout:1;
894                 uint64_t reserved_21_22:2;
895                 uint64_t p1_perr:1;
896                 uint64_t p0_perr:1;
897                 uint64_t reserved_17_18:2;
898                 uint64_t p1_rtout:1;
899                 uint64_t p0_rtout:1;
900                 uint64_t reserved_13_14:2;
901                 uint64_t i1_overf:1;
902                 uint64_t i0_overf:1;
903                 uint64_t reserved_9_10:2;
904                 uint64_t i1_rtout:1;
905                 uint64_t i0_rtout:1;
906                 uint64_t reserved_5_6:2;
907                 uint64_t po1_2sml:1;
908                 uint64_t po0_2sml:1;
909                 uint64_t pci_rsl:1;
910                 uint64_t rml_wto:1;
911                 uint64_t rml_rto:1;
912         } cn31xx;
913         struct cvmx_npi_int_sum_s cn38xx;
914         struct cvmx_npi_int_sum_cn38xxp2 {
915                 uint64_t reserved_42_63:22;
916                 uint64_t iobdma:1;
917                 uint64_t p_dperr:1;
918                 uint64_t win_rto:1;
919                 uint64_t i3_pperr:1;
920                 uint64_t i2_pperr:1;
921                 uint64_t i1_pperr:1;
922                 uint64_t i0_pperr:1;
923                 uint64_t p3_ptout:1;
924                 uint64_t p2_ptout:1;
925                 uint64_t p1_ptout:1;
926                 uint64_t p0_ptout:1;
927                 uint64_t p3_pperr:1;
928                 uint64_t p2_pperr:1;
929                 uint64_t p1_pperr:1;
930                 uint64_t p0_pperr:1;
931                 uint64_t g3_rtout:1;
932                 uint64_t g2_rtout:1;
933                 uint64_t g1_rtout:1;
934                 uint64_t g0_rtout:1;
935                 uint64_t p3_perr:1;
936                 uint64_t p2_perr:1;
937                 uint64_t p1_perr:1;
938                 uint64_t p0_perr:1;
939                 uint64_t p3_rtout:1;
940                 uint64_t p2_rtout:1;
941                 uint64_t p1_rtout:1;
942                 uint64_t p0_rtout:1;
943                 uint64_t i3_overf:1;
944                 uint64_t i2_overf:1;
945                 uint64_t i1_overf:1;
946                 uint64_t i0_overf:1;
947                 uint64_t i3_rtout:1;
948                 uint64_t i2_rtout:1;
949                 uint64_t i1_rtout:1;
950                 uint64_t i0_rtout:1;
951                 uint64_t po3_2sml:1;
952                 uint64_t po2_2sml:1;
953                 uint64_t po1_2sml:1;
954                 uint64_t po0_2sml:1;
955                 uint64_t pci_rsl:1;
956                 uint64_t rml_wto:1;
957                 uint64_t rml_rto:1;
958         } cn38xxp2;
959         struct cvmx_npi_int_sum_cn31xx cn50xx;
960         struct cvmx_npi_int_sum_s cn58xx;
961         struct cvmx_npi_int_sum_s cn58xxp1;
962 };
963
964 union cvmx_npi_lowp_dbell {
965         uint64_t u64;
966         struct cvmx_npi_lowp_dbell_s {
967                 uint64_t reserved_16_63:48;
968                 uint64_t dbell:16;
969         } s;
970         struct cvmx_npi_lowp_dbell_s cn30xx;
971         struct cvmx_npi_lowp_dbell_s cn31xx;
972         struct cvmx_npi_lowp_dbell_s cn38xx;
973         struct cvmx_npi_lowp_dbell_s cn38xxp2;
974         struct cvmx_npi_lowp_dbell_s cn50xx;
975         struct cvmx_npi_lowp_dbell_s cn58xx;
976         struct cvmx_npi_lowp_dbell_s cn58xxp1;
977 };
978
979 union cvmx_npi_lowp_ibuff_saddr {
980         uint64_t u64;
981         struct cvmx_npi_lowp_ibuff_saddr_s {
982                 uint64_t reserved_36_63:28;
983                 uint64_t saddr:36;
984         } s;
985         struct cvmx_npi_lowp_ibuff_saddr_s cn30xx;
986         struct cvmx_npi_lowp_ibuff_saddr_s cn31xx;
987         struct cvmx_npi_lowp_ibuff_saddr_s cn38xx;
988         struct cvmx_npi_lowp_ibuff_saddr_s cn38xxp2;
989         struct cvmx_npi_lowp_ibuff_saddr_s cn50xx;
990         struct cvmx_npi_lowp_ibuff_saddr_s cn58xx;
991         struct cvmx_npi_lowp_ibuff_saddr_s cn58xxp1;
992 };
993
994 union cvmx_npi_mem_access_subidx {
995         uint64_t u64;
996         struct cvmx_npi_mem_access_subidx_s {
997                 uint64_t reserved_38_63:26;
998                 uint64_t shortl:1;
999                 uint64_t nmerge:1;
1000                 uint64_t esr:2;
1001                 uint64_t esw:2;
1002                 uint64_t nsr:1;
1003                 uint64_t nsw:1;
1004                 uint64_t ror:1;
1005                 uint64_t row:1;
1006                 uint64_t ba:28;
1007         } s;
1008         struct cvmx_npi_mem_access_subidx_s cn30xx;
1009         struct cvmx_npi_mem_access_subidx_cn31xx {
1010                 uint64_t reserved_36_63:28;
1011                 uint64_t esr:2;
1012                 uint64_t esw:2;
1013                 uint64_t nsr:1;
1014                 uint64_t nsw:1;
1015                 uint64_t ror:1;
1016                 uint64_t row:1;
1017                 uint64_t ba:28;
1018         } cn31xx;
1019         struct cvmx_npi_mem_access_subidx_s cn38xx;
1020         struct cvmx_npi_mem_access_subidx_cn31xx cn38xxp2;
1021         struct cvmx_npi_mem_access_subidx_s cn50xx;
1022         struct cvmx_npi_mem_access_subidx_s cn58xx;
1023         struct cvmx_npi_mem_access_subidx_s cn58xxp1;
1024 };
1025
1026 union cvmx_npi_msi_rcv {
1027         uint64_t u64;
1028         struct cvmx_npi_msi_rcv_s {
1029                 uint64_t int_vec:64;
1030         } s;
1031         struct cvmx_npi_msi_rcv_s cn30xx;
1032         struct cvmx_npi_msi_rcv_s cn31xx;
1033         struct cvmx_npi_msi_rcv_s cn38xx;
1034         struct cvmx_npi_msi_rcv_s cn38xxp2;
1035         struct cvmx_npi_msi_rcv_s cn50xx;
1036         struct cvmx_npi_msi_rcv_s cn58xx;
1037         struct cvmx_npi_msi_rcv_s cn58xxp1;
1038 };
1039
1040 union cvmx_npi_num_desc_outputx {
1041         uint64_t u64;
1042         struct cvmx_npi_num_desc_outputx_s {
1043                 uint64_t reserved_32_63:32;
1044                 uint64_t size:32;
1045         } s;
1046         struct cvmx_npi_num_desc_outputx_s cn30xx;
1047         struct cvmx_npi_num_desc_outputx_s cn31xx;
1048         struct cvmx_npi_num_desc_outputx_s cn38xx;
1049         struct cvmx_npi_num_desc_outputx_s cn38xxp2;
1050         struct cvmx_npi_num_desc_outputx_s cn50xx;
1051         struct cvmx_npi_num_desc_outputx_s cn58xx;
1052         struct cvmx_npi_num_desc_outputx_s cn58xxp1;
1053 };
1054
1055 union cvmx_npi_output_control {
1056         uint64_t u64;
1057         struct cvmx_npi_output_control_s {
1058                 uint64_t reserved_49_63:15;
1059                 uint64_t pkt_rr:1;
1060                 uint64_t p3_bmode:1;
1061                 uint64_t p2_bmode:1;
1062                 uint64_t p1_bmode:1;
1063                 uint64_t p0_bmode:1;
1064                 uint64_t o3_es:2;
1065                 uint64_t o3_ns:1;
1066                 uint64_t o3_ro:1;
1067                 uint64_t o2_es:2;
1068                 uint64_t o2_ns:1;
1069                 uint64_t o2_ro:1;
1070                 uint64_t o1_es:2;
1071                 uint64_t o1_ns:1;
1072                 uint64_t o1_ro:1;
1073                 uint64_t o0_es:2;
1074                 uint64_t o0_ns:1;
1075                 uint64_t o0_ro:1;
1076                 uint64_t o3_csrm:1;
1077                 uint64_t o2_csrm:1;
1078                 uint64_t o1_csrm:1;
1079                 uint64_t o0_csrm:1;
1080                 uint64_t reserved_20_23:4;
1081                 uint64_t iptr_o3:1;
1082                 uint64_t iptr_o2:1;
1083                 uint64_t iptr_o1:1;
1084                 uint64_t iptr_o0:1;
1085                 uint64_t esr_sl3:2;
1086                 uint64_t nsr_sl3:1;
1087                 uint64_t ror_sl3:1;
1088                 uint64_t esr_sl2:2;
1089                 uint64_t nsr_sl2:1;
1090                 uint64_t ror_sl2:1;
1091                 uint64_t esr_sl1:2;
1092                 uint64_t nsr_sl1:1;
1093                 uint64_t ror_sl1:1;
1094                 uint64_t esr_sl0:2;
1095                 uint64_t nsr_sl0:1;
1096                 uint64_t ror_sl0:1;
1097         } s;
1098         struct cvmx_npi_output_control_cn30xx {
1099                 uint64_t reserved_45_63:19;
1100                 uint64_t p0_bmode:1;
1101                 uint64_t reserved_32_43:12;
1102                 uint64_t o0_es:2;
1103                 uint64_t o0_ns:1;
1104                 uint64_t o0_ro:1;
1105                 uint64_t reserved_25_27:3;
1106                 uint64_t o0_csrm:1;
1107                 uint64_t reserved_17_23:7;
1108                 uint64_t iptr_o0:1;
1109                 uint64_t reserved_4_15:12;
1110                 uint64_t esr_sl0:2;
1111                 uint64_t nsr_sl0:1;
1112                 uint64_t ror_sl0:1;
1113         } cn30xx;
1114         struct cvmx_npi_output_control_cn31xx {
1115                 uint64_t reserved_46_63:18;
1116                 uint64_t p1_bmode:1;
1117                 uint64_t p0_bmode:1;
1118                 uint64_t reserved_36_43:8;
1119                 uint64_t o1_es:2;
1120                 uint64_t o1_ns:1;
1121                 uint64_t o1_ro:1;
1122                 uint64_t o0_es:2;
1123                 uint64_t o0_ns:1;
1124                 uint64_t o0_ro:1;
1125                 uint64_t reserved_26_27:2;
1126                 uint64_t o1_csrm:1;
1127                 uint64_t o0_csrm:1;
1128                 uint64_t reserved_18_23:6;
1129                 uint64_t iptr_o1:1;
1130                 uint64_t iptr_o0:1;
1131                 uint64_t reserved_8_15:8;
1132                 uint64_t esr_sl1:2;
1133                 uint64_t nsr_sl1:1;
1134                 uint64_t ror_sl1:1;
1135                 uint64_t esr_sl0:2;
1136                 uint64_t nsr_sl0:1;
1137                 uint64_t ror_sl0:1;
1138         } cn31xx;
1139         struct cvmx_npi_output_control_s cn38xx;
1140         struct cvmx_npi_output_control_cn38xxp2 {
1141                 uint64_t reserved_48_63:16;
1142                 uint64_t p3_bmode:1;
1143                 uint64_t p2_bmode:1;
1144                 uint64_t p1_bmode:1;
1145                 uint64_t p0_bmode:1;
1146                 uint64_t o3_es:2;
1147                 uint64_t o3_ns:1;
1148                 uint64_t o3_ro:1;
1149                 uint64_t o2_es:2;
1150                 uint64_t o2_ns:1;
1151                 uint64_t o2_ro:1;
1152                 uint64_t o1_es:2;
1153                 uint64_t o1_ns:1;
1154                 uint64_t o1_ro:1;
1155                 uint64_t o0_es:2;
1156                 uint64_t o0_ns:1;
1157                 uint64_t o0_ro:1;
1158                 uint64_t o3_csrm:1;
1159                 uint64_t o2_csrm:1;
1160                 uint64_t o1_csrm:1;
1161                 uint64_t o0_csrm:1;
1162                 uint64_t reserved_20_23:4;
1163                 uint64_t iptr_o3:1;
1164                 uint64_t iptr_o2:1;
1165                 uint64_t iptr_o1:1;
1166                 uint64_t iptr_o0:1;
1167                 uint64_t esr_sl3:2;
1168                 uint64_t nsr_sl3:1;
1169                 uint64_t ror_sl3:1;
1170                 uint64_t esr_sl2:2;
1171                 uint64_t nsr_sl2:1;
1172                 uint64_t ror_sl2:1;
1173                 uint64_t esr_sl1:2;
1174                 uint64_t nsr_sl1:1;
1175                 uint64_t ror_sl1:1;
1176                 uint64_t esr_sl0:2;
1177                 uint64_t nsr_sl0:1;
1178                 uint64_t ror_sl0:1;
1179         } cn38xxp2;
1180         struct cvmx_npi_output_control_cn50xx {
1181                 uint64_t reserved_49_63:15;
1182                 uint64_t pkt_rr:1;
1183                 uint64_t reserved_46_47:2;
1184                 uint64_t p1_bmode:1;
1185                 uint64_t p0_bmode:1;
1186                 uint64_t reserved_36_43:8;
1187                 uint64_t o1_es:2;
1188                 uint64_t o1_ns:1;
1189                 uint64_t o1_ro:1;
1190                 uint64_t o0_es:2;
1191                 uint64_t o0_ns:1;
1192                 uint64_t o0_ro:1;
1193                 uint64_t reserved_26_27:2;
1194                 uint64_t o1_csrm:1;
1195                 uint64_t o0_csrm:1;
1196                 uint64_t reserved_18_23:6;
1197                 uint64_t iptr_o1:1;
1198                 uint64_t iptr_o0:1;
1199                 uint64_t reserved_8_15:8;
1200                 uint64_t esr_sl1:2;
1201                 uint64_t nsr_sl1:1;
1202                 uint64_t ror_sl1:1;
1203                 uint64_t esr_sl0:2;
1204                 uint64_t nsr_sl0:1;
1205                 uint64_t ror_sl0:1;
1206         } cn50xx;
1207         struct cvmx_npi_output_control_s cn58xx;
1208         struct cvmx_npi_output_control_s cn58xxp1;
1209 };
1210
1211 union cvmx_npi_px_dbpair_addr {
1212         uint64_t u64;
1213         struct cvmx_npi_px_dbpair_addr_s {
1214                 uint64_t reserved_63_63:1;
1215                 uint64_t state:2;
1216                 uint64_t naddr:61;
1217         } s;
1218         struct cvmx_npi_px_dbpair_addr_s cn30xx;
1219         struct cvmx_npi_px_dbpair_addr_s cn31xx;
1220         struct cvmx_npi_px_dbpair_addr_s cn38xx;
1221         struct cvmx_npi_px_dbpair_addr_s cn38xxp2;
1222         struct cvmx_npi_px_dbpair_addr_s cn50xx;
1223         struct cvmx_npi_px_dbpair_addr_s cn58xx;
1224         struct cvmx_npi_px_dbpair_addr_s cn58xxp1;
1225 };
1226
1227 union cvmx_npi_px_instr_addr {
1228         uint64_t u64;
1229         struct cvmx_npi_px_instr_addr_s {
1230                 uint64_t state:3;
1231                 uint64_t naddr:61;
1232         } s;
1233         struct cvmx_npi_px_instr_addr_s cn30xx;
1234         struct cvmx_npi_px_instr_addr_s cn31xx;
1235         struct cvmx_npi_px_instr_addr_s cn38xx;
1236         struct cvmx_npi_px_instr_addr_s cn38xxp2;
1237         struct cvmx_npi_px_instr_addr_s cn50xx;
1238         struct cvmx_npi_px_instr_addr_s cn58xx;
1239         struct cvmx_npi_px_instr_addr_s cn58xxp1;
1240 };
1241
1242 union cvmx_npi_px_instr_cnts {
1243         uint64_t u64;
1244         struct cvmx_npi_px_instr_cnts_s {
1245                 uint64_t reserved_38_63:26;
1246                 uint64_t fcnt:6;
1247                 uint64_t avail:32;
1248         } s;
1249         struct cvmx_npi_px_instr_cnts_s cn30xx;
1250         struct cvmx_npi_px_instr_cnts_s cn31xx;
1251         struct cvmx_npi_px_instr_cnts_s cn38xx;
1252         struct cvmx_npi_px_instr_cnts_s cn38xxp2;
1253         struct cvmx_npi_px_instr_cnts_s cn50xx;
1254         struct cvmx_npi_px_instr_cnts_s cn58xx;
1255         struct cvmx_npi_px_instr_cnts_s cn58xxp1;
1256 };
1257
1258 union cvmx_npi_px_pair_cnts {
1259         uint64_t u64;
1260         struct cvmx_npi_px_pair_cnts_s {
1261                 uint64_t reserved_37_63:27;
1262                 uint64_t fcnt:5;
1263                 uint64_t avail:32;
1264         } s;
1265         struct cvmx_npi_px_pair_cnts_s cn30xx;
1266         struct cvmx_npi_px_pair_cnts_s cn31xx;
1267         struct cvmx_npi_px_pair_cnts_s cn38xx;
1268         struct cvmx_npi_px_pair_cnts_s cn38xxp2;
1269         struct cvmx_npi_px_pair_cnts_s cn50xx;
1270         struct cvmx_npi_px_pair_cnts_s cn58xx;
1271         struct cvmx_npi_px_pair_cnts_s cn58xxp1;
1272 };
1273
1274 union cvmx_npi_pci_burst_size {
1275         uint64_t u64;
1276         struct cvmx_npi_pci_burst_size_s {
1277                 uint64_t reserved_14_63:50;
1278                 uint64_t wr_brst:7;
1279                 uint64_t rd_brst:7;
1280         } s;
1281         struct cvmx_npi_pci_burst_size_s cn30xx;
1282         struct cvmx_npi_pci_burst_size_s cn31xx;
1283         struct cvmx_npi_pci_burst_size_s cn38xx;
1284         struct cvmx_npi_pci_burst_size_s cn38xxp2;
1285         struct cvmx_npi_pci_burst_size_s cn50xx;
1286         struct cvmx_npi_pci_burst_size_s cn58xx;
1287         struct cvmx_npi_pci_burst_size_s cn58xxp1;
1288 };
1289
1290 union cvmx_npi_pci_int_arb_cfg {
1291         uint64_t u64;
1292         struct cvmx_npi_pci_int_arb_cfg_s {
1293                 uint64_t reserved_13_63:51;
1294                 uint64_t hostmode:1;
1295                 uint64_t pci_ovr:4;
1296                 uint64_t reserved_5_7:3;
1297                 uint64_t en:1;
1298                 uint64_t park_mod:1;
1299                 uint64_t park_dev:3;
1300         } s;
1301         struct cvmx_npi_pci_int_arb_cfg_cn30xx {
1302                 uint64_t reserved_5_63:59;
1303                 uint64_t en:1;
1304                 uint64_t park_mod:1;
1305                 uint64_t park_dev:3;
1306         } cn30xx;
1307         struct cvmx_npi_pci_int_arb_cfg_cn30xx cn31xx;
1308         struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xx;
1309         struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xxp2;
1310         struct cvmx_npi_pci_int_arb_cfg_s cn50xx;
1311         struct cvmx_npi_pci_int_arb_cfg_s cn58xx;
1312         struct cvmx_npi_pci_int_arb_cfg_s cn58xxp1;
1313 };
1314
1315 union cvmx_npi_pci_read_cmd {
1316         uint64_t u64;
1317         struct cvmx_npi_pci_read_cmd_s {
1318                 uint64_t reserved_11_63:53;
1319                 uint64_t cmd_size:11;
1320         } s;
1321         struct cvmx_npi_pci_read_cmd_s cn30xx;
1322         struct cvmx_npi_pci_read_cmd_s cn31xx;
1323         struct cvmx_npi_pci_read_cmd_s cn38xx;
1324         struct cvmx_npi_pci_read_cmd_s cn38xxp2;
1325         struct cvmx_npi_pci_read_cmd_s cn50xx;
1326         struct cvmx_npi_pci_read_cmd_s cn58xx;
1327         struct cvmx_npi_pci_read_cmd_s cn58xxp1;
1328 };
1329
1330 union cvmx_npi_port32_instr_hdr {
1331         uint64_t u64;
1332         struct cvmx_npi_port32_instr_hdr_s {
1333                 uint64_t reserved_44_63:20;
1334                 uint64_t pbp:1;
1335                 uint64_t rsv_f:5;
1336                 uint64_t rparmode:2;
1337                 uint64_t rsv_e:1;
1338                 uint64_t rskp_len:7;
1339                 uint64_t rsv_d:6;
1340                 uint64_t use_ihdr:1;
1341                 uint64_t rsv_c:5;
1342                 uint64_t par_mode:2;
1343                 uint64_t rsv_b:1;
1344                 uint64_t skp_len:7;
1345                 uint64_t rsv_a:6;
1346         } s;
1347         struct cvmx_npi_port32_instr_hdr_s cn30xx;
1348         struct cvmx_npi_port32_instr_hdr_s cn31xx;
1349         struct cvmx_npi_port32_instr_hdr_s cn38xx;
1350         struct cvmx_npi_port32_instr_hdr_s cn38xxp2;
1351         struct cvmx_npi_port32_instr_hdr_s cn50xx;
1352         struct cvmx_npi_port32_instr_hdr_s cn58xx;
1353         struct cvmx_npi_port32_instr_hdr_s cn58xxp1;
1354 };
1355
1356 union cvmx_npi_port33_instr_hdr {
1357         uint64_t u64;
1358         struct cvmx_npi_port33_instr_hdr_s {
1359                 uint64_t reserved_44_63:20;
1360                 uint64_t pbp:1;
1361                 uint64_t rsv_f:5;
1362                 uint64_t rparmode:2;
1363                 uint64_t rsv_e:1;
1364                 uint64_t rskp_len:7;
1365                 uint64_t rsv_d:6;
1366                 uint64_t use_ihdr:1;
1367                 uint64_t rsv_c:5;
1368                 uint64_t par_mode:2;
1369                 uint64_t rsv_b:1;
1370                 uint64_t skp_len:7;
1371                 uint64_t rsv_a:6;
1372         } s;
1373         struct cvmx_npi_port33_instr_hdr_s cn31xx;
1374         struct cvmx_npi_port33_instr_hdr_s cn38xx;
1375         struct cvmx_npi_port33_instr_hdr_s cn38xxp2;
1376         struct cvmx_npi_port33_instr_hdr_s cn50xx;
1377         struct cvmx_npi_port33_instr_hdr_s cn58xx;
1378         struct cvmx_npi_port33_instr_hdr_s cn58xxp1;
1379 };
1380
1381 union cvmx_npi_port34_instr_hdr {
1382         uint64_t u64;
1383         struct cvmx_npi_port34_instr_hdr_s {
1384                 uint64_t reserved_44_63:20;
1385                 uint64_t pbp:1;
1386                 uint64_t rsv_f:5;
1387                 uint64_t rparmode:2;
1388                 uint64_t rsv_e:1;
1389                 uint64_t rskp_len:7;
1390                 uint64_t rsv_d:6;
1391                 uint64_t use_ihdr:1;
1392                 uint64_t rsv_c:5;
1393                 uint64_t par_mode:2;
1394                 uint64_t rsv_b:1;
1395                 uint64_t skp_len:7;
1396                 uint64_t rsv_a:6;
1397         } s;
1398         struct cvmx_npi_port34_instr_hdr_s cn38xx;
1399         struct cvmx_npi_port34_instr_hdr_s cn38xxp2;
1400         struct cvmx_npi_port34_instr_hdr_s cn58xx;
1401         struct cvmx_npi_port34_instr_hdr_s cn58xxp1;
1402 };
1403
1404 union cvmx_npi_port35_instr_hdr {
1405         uint64_t u64;
1406         struct cvmx_npi_port35_instr_hdr_s {
1407                 uint64_t reserved_44_63:20;
1408                 uint64_t pbp:1;
1409                 uint64_t rsv_f:5;
1410                 uint64_t rparmode:2;
1411                 uint64_t rsv_e:1;
1412                 uint64_t rskp_len:7;
1413                 uint64_t rsv_d:6;
1414                 uint64_t use_ihdr:1;
1415                 uint64_t rsv_c:5;
1416                 uint64_t par_mode:2;
1417                 uint64_t rsv_b:1;
1418                 uint64_t skp_len:7;
1419                 uint64_t rsv_a:6;
1420         } s;
1421         struct cvmx_npi_port35_instr_hdr_s cn38xx;
1422         struct cvmx_npi_port35_instr_hdr_s cn38xxp2;
1423         struct cvmx_npi_port35_instr_hdr_s cn58xx;
1424         struct cvmx_npi_port35_instr_hdr_s cn58xxp1;
1425 };
1426
1427 union cvmx_npi_port_bp_control {
1428         uint64_t u64;
1429         struct cvmx_npi_port_bp_control_s {
1430                 uint64_t reserved_8_63:56;
1431                 uint64_t bp_on:4;
1432                 uint64_t enb:4;
1433         } s;
1434         struct cvmx_npi_port_bp_control_s cn30xx;
1435         struct cvmx_npi_port_bp_control_s cn31xx;
1436         struct cvmx_npi_port_bp_control_s cn38xx;
1437         struct cvmx_npi_port_bp_control_s cn38xxp2;
1438         struct cvmx_npi_port_bp_control_s cn50xx;
1439         struct cvmx_npi_port_bp_control_s cn58xx;
1440         struct cvmx_npi_port_bp_control_s cn58xxp1;
1441 };
1442
1443 union cvmx_npi_rsl_int_blocks {
1444         uint64_t u64;
1445         struct cvmx_npi_rsl_int_blocks_s {
1446                 uint64_t reserved_32_63:32;
1447                 uint64_t rint_31:1;
1448                 uint64_t iob:1;
1449                 uint64_t reserved_28_29:2;
1450                 uint64_t rint_27:1;
1451                 uint64_t rint_26:1;
1452                 uint64_t rint_25:1;
1453                 uint64_t rint_24:1;
1454                 uint64_t asx1:1;
1455                 uint64_t asx0:1;
1456                 uint64_t rint_21:1;
1457                 uint64_t pip:1;
1458                 uint64_t spx1:1;
1459                 uint64_t spx0:1;
1460                 uint64_t lmc:1;
1461                 uint64_t l2c:1;
1462                 uint64_t rint_15:1;
1463                 uint64_t reserved_13_14:2;
1464                 uint64_t pow:1;
1465                 uint64_t tim:1;
1466                 uint64_t pko:1;
1467                 uint64_t ipd:1;
1468                 uint64_t rint_8:1;
1469                 uint64_t zip:1;
1470                 uint64_t dfa:1;
1471                 uint64_t fpa:1;
1472                 uint64_t key:1;
1473                 uint64_t npi:1;
1474                 uint64_t gmx1:1;
1475                 uint64_t gmx0:1;
1476                 uint64_t mio:1;
1477         } s;
1478         struct cvmx_npi_rsl_int_blocks_cn30xx {
1479                 uint64_t reserved_32_63:32;
1480                 uint64_t rint_31:1;
1481                 uint64_t iob:1;
1482                 uint64_t rint_29:1;
1483                 uint64_t rint_28:1;
1484                 uint64_t rint_27:1;
1485                 uint64_t rint_26:1;
1486                 uint64_t rint_25:1;
1487                 uint64_t rint_24:1;
1488                 uint64_t asx1:1;
1489                 uint64_t asx0:1;
1490                 uint64_t rint_21:1;
1491                 uint64_t pip:1;
1492                 uint64_t spx1:1;
1493                 uint64_t spx0:1;
1494                 uint64_t lmc:1;
1495                 uint64_t l2c:1;
1496                 uint64_t rint_15:1;
1497                 uint64_t rint_14:1;
1498                 uint64_t usb:1;
1499                 uint64_t pow:1;
1500                 uint64_t tim:1;
1501                 uint64_t pko:1;
1502                 uint64_t ipd:1;
1503                 uint64_t rint_8:1;
1504                 uint64_t zip:1;
1505                 uint64_t dfa:1;
1506                 uint64_t fpa:1;
1507                 uint64_t key:1;
1508                 uint64_t npi:1;
1509                 uint64_t gmx1:1;
1510                 uint64_t gmx0:1;
1511                 uint64_t mio:1;
1512         } cn30xx;
1513         struct cvmx_npi_rsl_int_blocks_cn30xx cn31xx;
1514         struct cvmx_npi_rsl_int_blocks_cn38xx {
1515                 uint64_t reserved_32_63:32;
1516                 uint64_t rint_31:1;
1517                 uint64_t iob:1;
1518                 uint64_t rint_29:1;
1519                 uint64_t rint_28:1;
1520                 uint64_t rint_27:1;
1521                 uint64_t rint_26:1;
1522                 uint64_t rint_25:1;
1523                 uint64_t rint_24:1;
1524                 uint64_t asx1:1;
1525                 uint64_t asx0:1;
1526                 uint64_t rint_21:1;
1527                 uint64_t pip:1;
1528                 uint64_t spx1:1;
1529                 uint64_t spx0:1;
1530                 uint64_t lmc:1;
1531                 uint64_t l2c:1;
1532                 uint64_t rint_15:1;
1533                 uint64_t rint_14:1;
1534                 uint64_t rint_13:1;
1535                 uint64_t pow:1;
1536                 uint64_t tim:1;
1537                 uint64_t pko:1;
1538                 uint64_t ipd:1;
1539                 uint64_t rint_8:1;
1540                 uint64_t zip:1;
1541                 uint64_t dfa:1;
1542                 uint64_t fpa:1;
1543                 uint64_t key:1;
1544                 uint64_t npi:1;
1545                 uint64_t gmx1:1;
1546                 uint64_t gmx0:1;
1547                 uint64_t mio:1;
1548         } cn38xx;
1549         struct cvmx_npi_rsl_int_blocks_cn38xx cn38xxp2;
1550         struct cvmx_npi_rsl_int_blocks_cn50xx {
1551                 uint64_t reserved_31_63:33;
1552                 uint64_t iob:1;
1553                 uint64_t lmc1:1;
1554                 uint64_t agl:1;
1555                 uint64_t reserved_24_27:4;
1556                 uint64_t asx1:1;
1557                 uint64_t asx0:1;
1558                 uint64_t reserved_21_21:1;
1559                 uint64_t pip:1;
1560                 uint64_t spx1:1;
1561                 uint64_t spx0:1;
1562                 uint64_t lmc:1;
1563                 uint64_t l2c:1;
1564                 uint64_t reserved_15_15:1;
1565                 uint64_t rad:1;
1566                 uint64_t usb:1;
1567                 uint64_t pow:1;
1568                 uint64_t tim:1;
1569                 uint64_t pko:1;
1570                 uint64_t ipd:1;
1571                 uint64_t reserved_8_8:1;
1572                 uint64_t zip:1;
1573                 uint64_t dfa:1;
1574                 uint64_t fpa:1;
1575                 uint64_t key:1;
1576                 uint64_t npi:1;
1577                 uint64_t gmx1:1;
1578                 uint64_t gmx0:1;
1579                 uint64_t mio:1;
1580         } cn50xx;
1581         struct cvmx_npi_rsl_int_blocks_cn38xx cn58xx;
1582         struct cvmx_npi_rsl_int_blocks_cn38xx cn58xxp1;
1583 };
1584
1585 union cvmx_npi_size_inputx {
1586         uint64_t u64;
1587         struct cvmx_npi_size_inputx_s {
1588                 uint64_t reserved_32_63:32;
1589                 uint64_t size:32;
1590         } s;
1591         struct cvmx_npi_size_inputx_s cn30xx;
1592         struct cvmx_npi_size_inputx_s cn31xx;
1593         struct cvmx_npi_size_inputx_s cn38xx;
1594         struct cvmx_npi_size_inputx_s cn38xxp2;
1595         struct cvmx_npi_size_inputx_s cn50xx;
1596         struct cvmx_npi_size_inputx_s cn58xx;
1597         struct cvmx_npi_size_inputx_s cn58xxp1;
1598 };
1599
1600 union cvmx_npi_win_read_to {
1601         uint64_t u64;
1602         struct cvmx_npi_win_read_to_s {
1603                 uint64_t reserved_32_63:32;
1604                 uint64_t time:32;
1605         } s;
1606         struct cvmx_npi_win_read_to_s cn30xx;
1607         struct cvmx_npi_win_read_to_s cn31xx;
1608         struct cvmx_npi_win_read_to_s cn38xx;
1609         struct cvmx_npi_win_read_to_s cn38xxp2;
1610         struct cvmx_npi_win_read_to_s cn50xx;
1611         struct cvmx_npi_win_read_to_s cn58xx;
1612         struct cvmx_npi_win_read_to_s cn58xxp1;
1613 };
1614
1615 #endif