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-2011 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_SRIOX_DEFS_H__
29 #define __CVMX_SRIOX_DEFS_H__
30 
31 #define CVMX_SRIOX_ACC_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000148ull) + ((block_id) & 3) * 0x1000000ull)
32 #define CVMX_SRIOX_ASMBLY_ID(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000200ull) + ((block_id) & 3) * 0x1000000ull)
33 #define CVMX_SRIOX_ASMBLY_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000208ull) + ((block_id) & 3) * 0x1000000ull)
34 #define CVMX_SRIOX_BELL_RESP_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000310ull) + ((block_id) & 3) * 0x1000000ull)
35 #define CVMX_SRIOX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000108ull) + ((block_id) & 3) * 0x1000000ull)
36 #define CVMX_SRIOX_IMSG_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000508ull) + ((block_id) & 3) * 0x1000000ull)
37 #define CVMX_SRIOX_IMSG_INST_HDRX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000510ull) + (((offset) & 1) + ((block_id) & 3) * 0x200000ull) * 8)
38 #define CVMX_SRIOX_IMSG_QOS_GRPX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000600ull) + (((offset) & 31) + ((block_id) & 3) * 0x200000ull) * 8)
39 #define CVMX_SRIOX_IMSG_STATUSX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000700ull) + (((offset) & 31) + ((block_id) & 3) * 0x200000ull) * 8)
40 #define CVMX_SRIOX_IMSG_VPORT_THR(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000500ull) + ((block_id) & 3) * 0x1000000ull)
41 #define CVMX_SRIOX_IMSG_VPORT_THR2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000528ull) + ((block_id) & 3) * 0x1000000ull)
42 #define CVMX_SRIOX_INT2_ENABLE(block_id) (CVMX_ADD_IO_SEG(0x00011800C80003E0ull) + ((block_id) & 3) * 0x1000000ull)
43 #define CVMX_SRIOX_INT2_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800C80003E8ull) + ((block_id) & 3) * 0x1000000ull)
44 #define CVMX_SRIOX_INT_ENABLE(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000110ull) + ((block_id) & 3) * 0x1000000ull)
45 #define CVMX_SRIOX_INT_INFO0(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000120ull) + ((block_id) & 3) * 0x1000000ull)
46 #define CVMX_SRIOX_INT_INFO1(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000128ull) + ((block_id) & 3) * 0x1000000ull)
47 #define CVMX_SRIOX_INT_INFO2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000130ull) + ((block_id) & 3) * 0x1000000ull)
48 #define CVMX_SRIOX_INT_INFO3(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000138ull) + ((block_id) & 3) * 0x1000000ull)
49 #define CVMX_SRIOX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000118ull) + ((block_id) & 3) * 0x1000000ull)
50 #define CVMX_SRIOX_IP_FEATURE(block_id) (CVMX_ADD_IO_SEG(0x00011800C80003F8ull) + ((block_id) & 3) * 0x1000000ull)
51 #define CVMX_SRIOX_MAC_BUFFERS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000390ull) + ((block_id) & 3) * 0x1000000ull)
52 #define CVMX_SRIOX_MAINT_OP(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000158ull) + ((block_id) & 3) * 0x1000000ull)
53 #define CVMX_SRIOX_MAINT_RD_DATA(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000160ull) + ((block_id) & 3) * 0x1000000ull)
54 #define CVMX_SRIOX_MCE_TX_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000240ull) + ((block_id) & 3) * 0x1000000ull)
55 #define CVMX_SRIOX_MEM_OP_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000168ull) + ((block_id) & 3) * 0x1000000ull)
56 #define CVMX_SRIOX_OMSG_CTRLX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000488ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
57 #define CVMX_SRIOX_OMSG_DONE_COUNTSX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C80004B0ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
58 #define CVMX_SRIOX_OMSG_FMP_MRX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000498ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
59 #define CVMX_SRIOX_OMSG_NMP_MRX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C80004A0ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
60 #define CVMX_SRIOX_OMSG_PORTX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000480ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
61 #define CVMX_SRIOX_OMSG_SILO_THR(block_id) (CVMX_ADD_IO_SEG(0x00011800C80004F8ull) + ((block_id) & 3) * 0x1000000ull)
62 #define CVMX_SRIOX_OMSG_SP_MRX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000490ull) + (((offset) & 1) + ((block_id) & 3) * 0x40000ull) * 64)
63 #define CVMX_SRIOX_PRIOX_IN_USE(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C80003C0ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8)
64 #define CVMX_SRIOX_RX_BELL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000308ull) + ((block_id) & 3) * 0x1000000ull)
65 #define CVMX_SRIOX_RX_BELL_SEQ(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000300ull) + ((block_id) & 3) * 0x1000000ull)
66 #define CVMX_SRIOX_RX_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000380ull) + ((block_id) & 3) * 0x1000000ull)
67 #define CVMX_SRIOX_S2M_TYPEX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000180ull) + (((offset) & 15) + ((block_id) & 3) * 0x200000ull) * 8)
68 #define CVMX_SRIOX_SEQ(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000278ull) + ((block_id) & 3) * 0x1000000ull)
69 #define CVMX_SRIOX_STATUS_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000100ull) + ((block_id) & 3) * 0x1000000ull)
70 #define CVMX_SRIOX_TAG_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000178ull) + ((block_id) & 3) * 0x1000000ull)
71 #define CVMX_SRIOX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000150ull) + ((block_id) & 3) * 0x1000000ull)
72 #define CVMX_SRIOX_TX_BELL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000280ull) + ((block_id) & 3) * 0x1000000ull)
73 #define CVMX_SRIOX_TX_BELL_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000288ull) + ((block_id) & 3) * 0x1000000ull)
74 #define CVMX_SRIOX_TX_CTRL(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000170ull) + ((block_id) & 3) * 0x1000000ull)
75 #define CVMX_SRIOX_TX_EMPHASIS(block_id) (CVMX_ADD_IO_SEG(0x00011800C80003F0ull) + ((block_id) & 3) * 0x1000000ull)
76 #define CVMX_SRIOX_TX_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000388ull) + ((block_id) & 3) * 0x1000000ull)
77 #define CVMX_SRIOX_WR_DONE_COUNTS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000340ull) + ((block_id) & 3) * 0x1000000ull)
78 
79 union cvmx_sriox_acc_ctrl {
80 	uint64_t u64;
81 	struct cvmx_sriox_acc_ctrl_s {
82 		uint64_t reserved_7_63:57;
83 		uint64_t deny_adr2:1;
84 		uint64_t deny_adr1:1;
85 		uint64_t deny_adr0:1;
86 		uint64_t reserved_3_3:1;
87 		uint64_t deny_bar2:1;
88 		uint64_t deny_bar1:1;
89 		uint64_t deny_bar0:1;
90 	} s;
91 	struct cvmx_sriox_acc_ctrl_cn63xx {
92 		uint64_t reserved_3_63:61;
93 		uint64_t deny_bar2:1;
94 		uint64_t deny_bar1:1;
95 		uint64_t deny_bar0:1;
96 	} cn63xx;
97 	struct cvmx_sriox_acc_ctrl_cn63xx cn63xxp1;
98 	struct cvmx_sriox_acc_ctrl_s cn66xx;
99 };
100 
101 union cvmx_sriox_asmbly_id {
102 	uint64_t u64;
103 	struct cvmx_sriox_asmbly_id_s {
104 		uint64_t reserved_32_63:32;
105 		uint64_t assy_id:16;
106 		uint64_t assy_ven:16;
107 	} s;
108 	struct cvmx_sriox_asmbly_id_s cn63xx;
109 	struct cvmx_sriox_asmbly_id_s cn63xxp1;
110 	struct cvmx_sriox_asmbly_id_s cn66xx;
111 };
112 
113 union cvmx_sriox_asmbly_info {
114 	uint64_t u64;
115 	struct cvmx_sriox_asmbly_info_s {
116 		uint64_t reserved_32_63:32;
117 		uint64_t assy_rev:16;
118 		uint64_t reserved_0_15:16;
119 	} s;
120 	struct cvmx_sriox_asmbly_info_s cn63xx;
121 	struct cvmx_sriox_asmbly_info_s cn63xxp1;
122 	struct cvmx_sriox_asmbly_info_s cn66xx;
123 };
124 
125 union cvmx_sriox_bell_resp_ctrl {
126 	uint64_t u64;
127 	struct cvmx_sriox_bell_resp_ctrl_s {
128 		uint64_t reserved_6_63:58;
129 		uint64_t rp1_sid:1;
130 		uint64_t rp0_sid:2;
131 		uint64_t rp1_pid:1;
132 		uint64_t rp0_pid:2;
133 	} s;
134 	struct cvmx_sriox_bell_resp_ctrl_s cn63xx;
135 	struct cvmx_sriox_bell_resp_ctrl_s cn63xxp1;
136 	struct cvmx_sriox_bell_resp_ctrl_s cn66xx;
137 };
138 
139 union cvmx_sriox_bist_status {
140 	uint64_t u64;
141 	struct cvmx_sriox_bist_status_s {
142 		uint64_t reserved_45_63:19;
143 		uint64_t lram:1;
144 		uint64_t mram:2;
145 		uint64_t cram:2;
146 		uint64_t bell:2;
147 		uint64_t otag:2;
148 		uint64_t itag:1;
149 		uint64_t ofree:1;
150 		uint64_t rtn:2;
151 		uint64_t obulk:4;
152 		uint64_t optrs:4;
153 		uint64_t oarb2:2;
154 		uint64_t rxbuf2:2;
155 		uint64_t oarb:2;
156 		uint64_t ispf:1;
157 		uint64_t ospf:1;
158 		uint64_t txbuf:2;
159 		uint64_t rxbuf:2;
160 		uint64_t imsg:5;
161 		uint64_t omsg:7;
162 	} s;
163 	struct cvmx_sriox_bist_status_cn63xx {
164 		uint64_t reserved_44_63:20;
165 		uint64_t mram:2;
166 		uint64_t cram:2;
167 		uint64_t bell:2;
168 		uint64_t otag:2;
169 		uint64_t itag:1;
170 		uint64_t ofree:1;
171 		uint64_t rtn:2;
172 		uint64_t obulk:4;
173 		uint64_t optrs:4;
174 		uint64_t oarb2:2;
175 		uint64_t rxbuf2:2;
176 		uint64_t oarb:2;
177 		uint64_t ispf:1;
178 		uint64_t ospf:1;
179 		uint64_t txbuf:2;
180 		uint64_t rxbuf:2;
181 		uint64_t imsg:5;
182 		uint64_t omsg:7;
183 	} cn63xx;
184 	struct cvmx_sriox_bist_status_cn63xxp1 {
185 		uint64_t reserved_44_63:20;
186 		uint64_t mram:2;
187 		uint64_t cram:2;
188 		uint64_t bell:2;
189 		uint64_t otag:2;
190 		uint64_t itag:1;
191 		uint64_t ofree:1;
192 		uint64_t rtn:2;
193 		uint64_t obulk:4;
194 		uint64_t optrs:4;
195 		uint64_t reserved_20_23:4;
196 		uint64_t oarb:2;
197 		uint64_t ispf:1;
198 		uint64_t ospf:1;
199 		uint64_t txbuf:2;
200 		uint64_t rxbuf:2;
201 		uint64_t imsg:5;
202 		uint64_t omsg:7;
203 	} cn63xxp1;
204 	struct cvmx_sriox_bist_status_s cn66xx;
205 };
206 
207 union cvmx_sriox_imsg_ctrl {
208 	uint64_t u64;
209 	struct cvmx_sriox_imsg_ctrl_s {
210 		uint64_t reserved_32_63:32;
211 		uint64_t to_mode:1;
212 		uint64_t reserved_30_30:1;
213 		uint64_t rsp_thr:6;
214 		uint64_t reserved_22_23:2;
215 		uint64_t rp1_sid:1;
216 		uint64_t rp0_sid:2;
217 		uint64_t rp1_pid:1;
218 		uint64_t rp0_pid:2;
219 		uint64_t reserved_15_15:1;
220 		uint64_t prt_sel:3;
221 		uint64_t lttr:4;
222 		uint64_t prio:4;
223 		uint64_t mbox:4;
224 	} s;
225 	struct cvmx_sriox_imsg_ctrl_s cn63xx;
226 	struct cvmx_sriox_imsg_ctrl_s cn63xxp1;
227 	struct cvmx_sriox_imsg_ctrl_s cn66xx;
228 };
229 
230 union cvmx_sriox_imsg_inst_hdrx {
231 	uint64_t u64;
232 	struct cvmx_sriox_imsg_inst_hdrx_s {
233 		uint64_t r:1;
234 		uint64_t reserved_58_62:5;
235 		uint64_t pm:2;
236 		uint64_t reserved_55_55:1;
237 		uint64_t sl:7;
238 		uint64_t reserved_46_47:2;
239 		uint64_t nqos:1;
240 		uint64_t ngrp:1;
241 		uint64_t ntt:1;
242 		uint64_t ntag:1;
243 		uint64_t reserved_35_41:7;
244 		uint64_t rs:1;
245 		uint64_t tt:2;
246 		uint64_t tag:32;
247 	} s;
248 	struct cvmx_sriox_imsg_inst_hdrx_s cn63xx;
249 	struct cvmx_sriox_imsg_inst_hdrx_s cn63xxp1;
250 	struct cvmx_sriox_imsg_inst_hdrx_s cn66xx;
251 };
252 
253 union cvmx_sriox_imsg_qos_grpx {
254 	uint64_t u64;
255 	struct cvmx_sriox_imsg_qos_grpx_s {
256 		uint64_t reserved_63_63:1;
257 		uint64_t qos7:3;
258 		uint64_t grp7:4;
259 		uint64_t reserved_55_55:1;
260 		uint64_t qos6:3;
261 		uint64_t grp6:4;
262 		uint64_t reserved_47_47:1;
263 		uint64_t qos5:3;
264 		uint64_t grp5:4;
265 		uint64_t reserved_39_39:1;
266 		uint64_t qos4:3;
267 		uint64_t grp4:4;
268 		uint64_t reserved_31_31:1;
269 		uint64_t qos3:3;
270 		uint64_t grp3:4;
271 		uint64_t reserved_23_23:1;
272 		uint64_t qos2:3;
273 		uint64_t grp2:4;
274 		uint64_t reserved_15_15:1;
275 		uint64_t qos1:3;
276 		uint64_t grp1:4;
277 		uint64_t reserved_7_7:1;
278 		uint64_t qos0:3;
279 		uint64_t grp0:4;
280 	} s;
281 	struct cvmx_sriox_imsg_qos_grpx_s cn63xx;
282 	struct cvmx_sriox_imsg_qos_grpx_s cn63xxp1;
283 	struct cvmx_sriox_imsg_qos_grpx_s cn66xx;
284 };
285 
286 union cvmx_sriox_imsg_statusx {
287 	uint64_t u64;
288 	struct cvmx_sriox_imsg_statusx_s {
289 		uint64_t val1:1;
290 		uint64_t err1:1;
291 		uint64_t toe1:1;
292 		uint64_t toc1:1;
293 		uint64_t prt1:1;
294 		uint64_t reserved_58_58:1;
295 		uint64_t tt1:1;
296 		uint64_t dis1:1;
297 		uint64_t seg1:4;
298 		uint64_t mbox1:2;
299 		uint64_t lttr1:2;
300 		uint64_t sid1:16;
301 		uint64_t val0:1;
302 		uint64_t err0:1;
303 		uint64_t toe0:1;
304 		uint64_t toc0:1;
305 		uint64_t prt0:1;
306 		uint64_t reserved_26_26:1;
307 		uint64_t tt0:1;
308 		uint64_t dis0:1;
309 		uint64_t seg0:4;
310 		uint64_t mbox0:2;
311 		uint64_t lttr0:2;
312 		uint64_t sid0:16;
313 	} s;
314 	struct cvmx_sriox_imsg_statusx_s cn63xx;
315 	struct cvmx_sriox_imsg_statusx_s cn63xxp1;
316 	struct cvmx_sriox_imsg_statusx_s cn66xx;
317 };
318 
319 union cvmx_sriox_imsg_vport_thr {
320 	uint64_t u64;
321 	struct cvmx_sriox_imsg_vport_thr_s {
322 		uint64_t reserved_54_63:10;
323 		uint64_t max_tot:6;
324 		uint64_t reserved_46_47:2;
325 		uint64_t max_s1:6;
326 		uint64_t reserved_38_39:2;
327 		uint64_t max_s0:6;
328 		uint64_t sp_vport:1;
329 		uint64_t reserved_20_30:11;
330 		uint64_t buf_thr:4;
331 		uint64_t reserved_14_15:2;
332 		uint64_t max_p1:6;
333 		uint64_t reserved_6_7:2;
334 		uint64_t max_p0:6;
335 	} s;
336 	struct cvmx_sriox_imsg_vport_thr_s cn63xx;
337 	struct cvmx_sriox_imsg_vport_thr_s cn63xxp1;
338 	struct cvmx_sriox_imsg_vport_thr_s cn66xx;
339 };
340 
341 union cvmx_sriox_imsg_vport_thr2 {
342 	uint64_t u64;
343 	struct cvmx_sriox_imsg_vport_thr2_s {
344 		uint64_t reserved_46_63:18;
345 		uint64_t max_s3:6;
346 		uint64_t reserved_38_39:2;
347 		uint64_t max_s2:6;
348 		uint64_t reserved_0_31:32;
349 	} s;
350 	struct cvmx_sriox_imsg_vport_thr2_s cn66xx;
351 };
352 
353 union cvmx_sriox_int2_enable {
354 	uint64_t u64;
355 	struct cvmx_sriox_int2_enable_s {
356 		uint64_t reserved_1_63:63;
357 		uint64_t pko_rst:1;
358 	} s;
359 	struct cvmx_sriox_int2_enable_s cn63xx;
360 	struct cvmx_sriox_int2_enable_s cn66xx;
361 };
362 
363 union cvmx_sriox_int2_reg {
364 	uint64_t u64;
365 	struct cvmx_sriox_int2_reg_s {
366 		uint64_t reserved_32_63:32;
367 		uint64_t int_sum:1;
368 		uint64_t reserved_1_30:30;
369 		uint64_t pko_rst:1;
370 	} s;
371 	struct cvmx_sriox_int2_reg_s cn63xx;
372 	struct cvmx_sriox_int2_reg_s cn66xx;
373 };
374 
375 union cvmx_sriox_int_enable {
376 	uint64_t u64;
377 	struct cvmx_sriox_int_enable_s {
378 		uint64_t reserved_27_63:37;
379 		uint64_t zero_pkt:1;
380 		uint64_t ttl_tout:1;
381 		uint64_t fail:1;
382 		uint64_t degrade:1;
383 		uint64_t mac_buf:1;
384 		uint64_t f_error:1;
385 		uint64_t rtry_err:1;
386 		uint64_t pko_err:1;
387 		uint64_t omsg_err:1;
388 		uint64_t omsg1:1;
389 		uint64_t omsg0:1;
390 		uint64_t link_up:1;
391 		uint64_t link_dwn:1;
392 		uint64_t phy_erb:1;
393 		uint64_t log_erb:1;
394 		uint64_t soft_rx:1;
395 		uint64_t soft_tx:1;
396 		uint64_t mce_rx:1;
397 		uint64_t mce_tx:1;
398 		uint64_t wr_done:1;
399 		uint64_t sli_err:1;
400 		uint64_t deny_wr:1;
401 		uint64_t bar_err:1;
402 		uint64_t maint_op:1;
403 		uint64_t rxbell:1;
404 		uint64_t bell_err:1;
405 		uint64_t txbell:1;
406 	} s;
407 	struct cvmx_sriox_int_enable_s cn63xx;
408 	struct cvmx_sriox_int_enable_cn63xxp1 {
409 		uint64_t reserved_22_63:42;
410 		uint64_t f_error:1;
411 		uint64_t rtry_err:1;
412 		uint64_t pko_err:1;
413 		uint64_t omsg_err:1;
414 		uint64_t omsg1:1;
415 		uint64_t omsg0:1;
416 		uint64_t link_up:1;
417 		uint64_t link_dwn:1;
418 		uint64_t phy_erb:1;
419 		uint64_t log_erb:1;
420 		uint64_t soft_rx:1;
421 		uint64_t soft_tx:1;
422 		uint64_t mce_rx:1;
423 		uint64_t mce_tx:1;
424 		uint64_t wr_done:1;
425 		uint64_t sli_err:1;
426 		uint64_t deny_wr:1;
427 		uint64_t bar_err:1;
428 		uint64_t maint_op:1;
429 		uint64_t rxbell:1;
430 		uint64_t bell_err:1;
431 		uint64_t txbell:1;
432 	} cn63xxp1;
433 	struct cvmx_sriox_int_enable_s cn66xx;
434 };
435 
436 union cvmx_sriox_int_info0 {
437 	uint64_t u64;
438 	struct cvmx_sriox_int_info0_s {
439 		uint64_t cmd:4;
440 		uint64_t type:4;
441 		uint64_t tag:8;
442 		uint64_t reserved_42_47:6;
443 		uint64_t length:10;
444 		uint64_t status:3;
445 		uint64_t reserved_16_28:13;
446 		uint64_t be0:8;
447 		uint64_t be1:8;
448 	} s;
449 	struct cvmx_sriox_int_info0_s cn63xx;
450 	struct cvmx_sriox_int_info0_s cn63xxp1;
451 	struct cvmx_sriox_int_info0_s cn66xx;
452 };
453 
454 union cvmx_sriox_int_info1 {
455 	uint64_t u64;
456 	struct cvmx_sriox_int_info1_s {
457 		uint64_t info1:64;
458 	} s;
459 	struct cvmx_sriox_int_info1_s cn63xx;
460 	struct cvmx_sriox_int_info1_s cn63xxp1;
461 	struct cvmx_sriox_int_info1_s cn66xx;
462 };
463 
464 union cvmx_sriox_int_info2 {
465 	uint64_t u64;
466 	struct cvmx_sriox_int_info2_s {
467 		uint64_t prio:2;
468 		uint64_t tt:1;
469 		uint64_t sis:1;
470 		uint64_t ssize:4;
471 		uint64_t did:16;
472 		uint64_t xmbox:4;
473 		uint64_t mbox:2;
474 		uint64_t letter:2;
475 		uint64_t rsrvd:30;
476 		uint64_t lns:1;
477 		uint64_t intr:1;
478 	} s;
479 	struct cvmx_sriox_int_info2_s cn63xx;
480 	struct cvmx_sriox_int_info2_s cn63xxp1;
481 	struct cvmx_sriox_int_info2_s cn66xx;
482 };
483 
484 union cvmx_sriox_int_info3 {
485 	uint64_t u64;
486 	struct cvmx_sriox_int_info3_s {
487 		uint64_t prio:2;
488 		uint64_t tt:2;
489 		uint64_t type:4;
490 		uint64_t other:48;
491 		uint64_t reserved_0_7:8;
492 	} s;
493 	struct cvmx_sriox_int_info3_s cn63xx;
494 	struct cvmx_sriox_int_info3_s cn63xxp1;
495 	struct cvmx_sriox_int_info3_s cn66xx;
496 };
497 
498 union cvmx_sriox_int_reg {
499 	uint64_t u64;
500 	struct cvmx_sriox_int_reg_s {
501 		uint64_t reserved_32_63:32;
502 		uint64_t int2_sum:1;
503 		uint64_t reserved_27_30:4;
504 		uint64_t zero_pkt:1;
505 		uint64_t ttl_tout:1;
506 		uint64_t fail:1;
507 		uint64_t degrad:1;
508 		uint64_t mac_buf:1;
509 		uint64_t f_error:1;
510 		uint64_t rtry_err:1;
511 		uint64_t pko_err:1;
512 		uint64_t omsg_err:1;
513 		uint64_t omsg1:1;
514 		uint64_t omsg0:1;
515 		uint64_t link_up:1;
516 		uint64_t link_dwn:1;
517 		uint64_t phy_erb:1;
518 		uint64_t log_erb:1;
519 		uint64_t soft_rx:1;
520 		uint64_t soft_tx:1;
521 		uint64_t mce_rx:1;
522 		uint64_t mce_tx:1;
523 		uint64_t wr_done:1;
524 		uint64_t sli_err:1;
525 		uint64_t deny_wr:1;
526 		uint64_t bar_err:1;
527 		uint64_t maint_op:1;
528 		uint64_t rxbell:1;
529 		uint64_t bell_err:1;
530 		uint64_t txbell:1;
531 	} s;
532 	struct cvmx_sriox_int_reg_s cn63xx;
533 	struct cvmx_sriox_int_reg_cn63xxp1 {
534 		uint64_t reserved_22_63:42;
535 		uint64_t f_error:1;
536 		uint64_t rtry_err:1;
537 		uint64_t pko_err:1;
538 		uint64_t omsg_err:1;
539 		uint64_t omsg1:1;
540 		uint64_t omsg0:1;
541 		uint64_t link_up:1;
542 		uint64_t link_dwn:1;
543 		uint64_t phy_erb:1;
544 		uint64_t log_erb:1;
545 		uint64_t soft_rx:1;
546 		uint64_t soft_tx:1;
547 		uint64_t mce_rx:1;
548 		uint64_t mce_tx:1;
549 		uint64_t wr_done:1;
550 		uint64_t sli_err:1;
551 		uint64_t deny_wr:1;
552 		uint64_t bar_err:1;
553 		uint64_t maint_op:1;
554 		uint64_t rxbell:1;
555 		uint64_t bell_err:1;
556 		uint64_t txbell:1;
557 	} cn63xxp1;
558 	struct cvmx_sriox_int_reg_s cn66xx;
559 };
560 
561 union cvmx_sriox_ip_feature {
562 	uint64_t u64;
563 	struct cvmx_sriox_ip_feature_s {
564 		uint64_t ops:32;
565 		uint64_t reserved_15_31:17;
566 		uint64_t no_vmin:1;
567 		uint64_t a66:1;
568 		uint64_t a50:1;
569 		uint64_t reserved_11_11:1;
570 		uint64_t tx_flow:1;
571 		uint64_t pt_width:2;
572 		uint64_t tx_pol:4;
573 		uint64_t rx_pol:4;
574 	} s;
575 	struct cvmx_sriox_ip_feature_cn63xx {
576 		uint64_t ops:32;
577 		uint64_t reserved_14_31:18;
578 		uint64_t a66:1;
579 		uint64_t a50:1;
580 		uint64_t reserved_11_11:1;
581 		uint64_t tx_flow:1;
582 		uint64_t pt_width:2;
583 		uint64_t tx_pol:4;
584 		uint64_t rx_pol:4;
585 	} cn63xx;
586 	struct cvmx_sriox_ip_feature_cn63xx cn63xxp1;
587 	struct cvmx_sriox_ip_feature_s cn66xx;
588 };
589 
590 union cvmx_sriox_mac_buffers {
591 	uint64_t u64;
592 	struct cvmx_sriox_mac_buffers_s {
593 		uint64_t reserved_56_63:8;
594 		uint64_t tx_enb:8;
595 		uint64_t reserved_44_47:4;
596 		uint64_t tx_inuse:4;
597 		uint64_t tx_stat:8;
598 		uint64_t reserved_24_31:8;
599 		uint64_t rx_enb:8;
600 		uint64_t reserved_12_15:4;
601 		uint64_t rx_inuse:4;
602 		uint64_t rx_stat:8;
603 	} s;
604 	struct cvmx_sriox_mac_buffers_s cn63xx;
605 	struct cvmx_sriox_mac_buffers_s cn66xx;
606 };
607 
608 union cvmx_sriox_maint_op {
609 	uint64_t u64;
610 	struct cvmx_sriox_maint_op_s {
611 		uint64_t wr_data:32;
612 		uint64_t reserved_27_31:5;
613 		uint64_t fail:1;
614 		uint64_t pending:1;
615 		uint64_t op:1;
616 		uint64_t addr:24;
617 	} s;
618 	struct cvmx_sriox_maint_op_s cn63xx;
619 	struct cvmx_sriox_maint_op_s cn63xxp1;
620 	struct cvmx_sriox_maint_op_s cn66xx;
621 };
622 
623 union cvmx_sriox_maint_rd_data {
624 	uint64_t u64;
625 	struct cvmx_sriox_maint_rd_data_s {
626 		uint64_t reserved_33_63:31;
627 		uint64_t valid:1;
628 		uint64_t rd_data:32;
629 	} s;
630 	struct cvmx_sriox_maint_rd_data_s cn63xx;
631 	struct cvmx_sriox_maint_rd_data_s cn63xxp1;
632 	struct cvmx_sriox_maint_rd_data_s cn66xx;
633 };
634 
635 union cvmx_sriox_mce_tx_ctl {
636 	uint64_t u64;
637 	struct cvmx_sriox_mce_tx_ctl_s {
638 		uint64_t reserved_1_63:63;
639 		uint64_t mce:1;
640 	} s;
641 	struct cvmx_sriox_mce_tx_ctl_s cn63xx;
642 	struct cvmx_sriox_mce_tx_ctl_s cn63xxp1;
643 	struct cvmx_sriox_mce_tx_ctl_s cn66xx;
644 };
645 
646 union cvmx_sriox_mem_op_ctrl {
647 	uint64_t u64;
648 	struct cvmx_sriox_mem_op_ctrl_s {
649 		uint64_t reserved_10_63:54;
650 		uint64_t rr_ro:1;
651 		uint64_t w_ro:1;
652 		uint64_t reserved_6_7:2;
653 		uint64_t rp1_sid:1;
654 		uint64_t rp0_sid:2;
655 		uint64_t rp1_pid:1;
656 		uint64_t rp0_pid:2;
657 	} s;
658 	struct cvmx_sriox_mem_op_ctrl_s cn63xx;
659 	struct cvmx_sriox_mem_op_ctrl_s cn63xxp1;
660 	struct cvmx_sriox_mem_op_ctrl_s cn66xx;
661 };
662 
663 union cvmx_sriox_omsg_ctrlx {
664 	uint64_t u64;
665 	struct cvmx_sriox_omsg_ctrlx_s {
666 		uint64_t testmode:1;
667 		uint64_t reserved_37_62:26;
668 		uint64_t silo_max:5;
669 		uint64_t rtry_thr:16;
670 		uint64_t rtry_en:1;
671 		uint64_t reserved_11_14:4;
672 		uint64_t idm_tt:1;
673 		uint64_t idm_sis:1;
674 		uint64_t idm_did:1;
675 		uint64_t lttr_sp:4;
676 		uint64_t lttr_mp:4;
677 	} s;
678 	struct cvmx_sriox_omsg_ctrlx_s cn63xx;
679 	struct cvmx_sriox_omsg_ctrlx_cn63xxp1 {
680 		uint64_t testmode:1;
681 		uint64_t reserved_32_62:31;
682 		uint64_t rtry_thr:16;
683 		uint64_t rtry_en:1;
684 		uint64_t reserved_11_14:4;
685 		uint64_t idm_tt:1;
686 		uint64_t idm_sis:1;
687 		uint64_t idm_did:1;
688 		uint64_t lttr_sp:4;
689 		uint64_t lttr_mp:4;
690 	} cn63xxp1;
691 	struct cvmx_sriox_omsg_ctrlx_s cn66xx;
692 };
693 
694 union cvmx_sriox_omsg_done_countsx {
695 	uint64_t u64;
696 	struct cvmx_sriox_omsg_done_countsx_s {
697 		uint64_t reserved_32_63:32;
698 		uint64_t bad:16;
699 		uint64_t good:16;
700 	} s;
701 	struct cvmx_sriox_omsg_done_countsx_s cn63xx;
702 	struct cvmx_sriox_omsg_done_countsx_s cn66xx;
703 };
704 
705 union cvmx_sriox_omsg_fmp_mrx {
706 	uint64_t u64;
707 	struct cvmx_sriox_omsg_fmp_mrx_s {
708 		uint64_t reserved_15_63:49;
709 		uint64_t ctlr_sp:1;
710 		uint64_t ctlr_fmp:1;
711 		uint64_t ctlr_nmp:1;
712 		uint64_t id_sp:1;
713 		uint64_t id_fmp:1;
714 		uint64_t id_nmp:1;
715 		uint64_t id_psd:1;
716 		uint64_t mbox_sp:1;
717 		uint64_t mbox_fmp:1;
718 		uint64_t mbox_nmp:1;
719 		uint64_t mbox_psd:1;
720 		uint64_t all_sp:1;
721 		uint64_t all_fmp:1;
722 		uint64_t all_nmp:1;
723 		uint64_t all_psd:1;
724 	} s;
725 	struct cvmx_sriox_omsg_fmp_mrx_s cn63xx;
726 	struct cvmx_sriox_omsg_fmp_mrx_s cn63xxp1;
727 	struct cvmx_sriox_omsg_fmp_mrx_s cn66xx;
728 };
729 
730 union cvmx_sriox_omsg_nmp_mrx {
731 	uint64_t u64;
732 	struct cvmx_sriox_omsg_nmp_mrx_s {
733 		uint64_t reserved_15_63:49;
734 		uint64_t ctlr_sp:1;
735 		uint64_t ctlr_fmp:1;
736 		uint64_t ctlr_nmp:1;
737 		uint64_t id_sp:1;
738 		uint64_t id_fmp:1;
739 		uint64_t id_nmp:1;
740 		uint64_t reserved_8_8:1;
741 		uint64_t mbox_sp:1;
742 		uint64_t mbox_fmp:1;
743 		uint64_t mbox_nmp:1;
744 		uint64_t reserved_4_4:1;
745 		uint64_t all_sp:1;
746 		uint64_t all_fmp:1;
747 		uint64_t all_nmp:1;
748 		uint64_t reserved_0_0:1;
749 	} s;
750 	struct cvmx_sriox_omsg_nmp_mrx_s cn63xx;
751 	struct cvmx_sriox_omsg_nmp_mrx_s cn63xxp1;
752 	struct cvmx_sriox_omsg_nmp_mrx_s cn66xx;
753 };
754 
755 union cvmx_sriox_omsg_portx {
756 	uint64_t u64;
757 	struct cvmx_sriox_omsg_portx_s {
758 		uint64_t reserved_32_63:32;
759 		uint64_t enable:1;
760 		uint64_t reserved_3_30:28;
761 		uint64_t port:3;
762 	} s;
763 	struct cvmx_sriox_omsg_portx_cn63xx {
764 		uint64_t reserved_32_63:32;
765 		uint64_t enable:1;
766 		uint64_t reserved_2_30:29;
767 		uint64_t port:2;
768 	} cn63xx;
769 	struct cvmx_sriox_omsg_portx_cn63xx cn63xxp1;
770 	struct cvmx_sriox_omsg_portx_s cn66xx;
771 };
772 
773 union cvmx_sriox_omsg_silo_thr {
774 	uint64_t u64;
775 	struct cvmx_sriox_omsg_silo_thr_s {
776 		uint64_t reserved_5_63:59;
777 		uint64_t tot_silo:5;
778 	} s;
779 	struct cvmx_sriox_omsg_silo_thr_s cn63xx;
780 	struct cvmx_sriox_omsg_silo_thr_s cn66xx;
781 };
782 
783 union cvmx_sriox_omsg_sp_mrx {
784 	uint64_t u64;
785 	struct cvmx_sriox_omsg_sp_mrx_s {
786 		uint64_t reserved_16_63:48;
787 		uint64_t xmbox_sp:1;
788 		uint64_t ctlr_sp:1;
789 		uint64_t ctlr_fmp:1;
790 		uint64_t ctlr_nmp:1;
791 		uint64_t id_sp:1;
792 		uint64_t id_fmp:1;
793 		uint64_t id_nmp:1;
794 		uint64_t id_psd:1;
795 		uint64_t mbox_sp:1;
796 		uint64_t mbox_fmp:1;
797 		uint64_t mbox_nmp:1;
798 		uint64_t mbox_psd:1;
799 		uint64_t all_sp:1;
800 		uint64_t all_fmp:1;
801 		uint64_t all_nmp:1;
802 		uint64_t all_psd:1;
803 	} s;
804 	struct cvmx_sriox_omsg_sp_mrx_s cn63xx;
805 	struct cvmx_sriox_omsg_sp_mrx_s cn63xxp1;
806 	struct cvmx_sriox_omsg_sp_mrx_s cn66xx;
807 };
808 
809 union cvmx_sriox_priox_in_use {
810 	uint64_t u64;
811 	struct cvmx_sriox_priox_in_use_s {
812 		uint64_t reserved_32_63:32;
813 		uint64_t end_cnt:16;
814 		uint64_t start_cnt:16;
815 	} s;
816 	struct cvmx_sriox_priox_in_use_s cn63xx;
817 	struct cvmx_sriox_priox_in_use_s cn66xx;
818 };
819 
820 union cvmx_sriox_rx_bell {
821 	uint64_t u64;
822 	struct cvmx_sriox_rx_bell_s {
823 		uint64_t reserved_48_63:16;
824 		uint64_t data:16;
825 		uint64_t src_id:16;
826 		uint64_t count:8;
827 		uint64_t reserved_5_7:3;
828 		uint64_t dest_id:1;
829 		uint64_t id16:1;
830 		uint64_t reserved_2_2:1;
831 		uint64_t priority:2;
832 	} s;
833 	struct cvmx_sriox_rx_bell_s cn63xx;
834 	struct cvmx_sriox_rx_bell_s cn63xxp1;
835 	struct cvmx_sriox_rx_bell_s cn66xx;
836 };
837 
838 union cvmx_sriox_rx_bell_seq {
839 	uint64_t u64;
840 	struct cvmx_sriox_rx_bell_seq_s {
841 		uint64_t reserved_40_63:24;
842 		uint64_t count:8;
843 		uint64_t seq:32;
844 	} s;
845 	struct cvmx_sriox_rx_bell_seq_s cn63xx;
846 	struct cvmx_sriox_rx_bell_seq_s cn63xxp1;
847 	struct cvmx_sriox_rx_bell_seq_s cn66xx;
848 };
849 
850 union cvmx_sriox_rx_status {
851 	uint64_t u64;
852 	struct cvmx_sriox_rx_status_s {
853 		uint64_t rtn_pr3:8;
854 		uint64_t rtn_pr2:8;
855 		uint64_t rtn_pr1:8;
856 		uint64_t reserved_28_39:12;
857 		uint64_t mbox:4;
858 		uint64_t comp:8;
859 		uint64_t reserved_13_15:3;
860 		uint64_t n_post:5;
861 		uint64_t post:8;
862 	} s;
863 	struct cvmx_sriox_rx_status_s cn63xx;
864 	struct cvmx_sriox_rx_status_s cn63xxp1;
865 	struct cvmx_sriox_rx_status_s cn66xx;
866 };
867 
868 union cvmx_sriox_s2m_typex {
869 	uint64_t u64;
870 	struct cvmx_sriox_s2m_typex_s {
871 		uint64_t reserved_19_63:45;
872 		uint64_t wr_op:3;
873 		uint64_t reserved_15_15:1;
874 		uint64_t rd_op:3;
875 		uint64_t wr_prior:2;
876 		uint64_t rd_prior:2;
877 		uint64_t reserved_6_7:2;
878 		uint64_t src_id:1;
879 		uint64_t id16:1;
880 		uint64_t reserved_2_3:2;
881 		uint64_t iaow_sel:2;
882 	} s;
883 	struct cvmx_sriox_s2m_typex_s cn63xx;
884 	struct cvmx_sriox_s2m_typex_s cn63xxp1;
885 	struct cvmx_sriox_s2m_typex_s cn66xx;
886 };
887 
888 union cvmx_sriox_seq {
889 	uint64_t u64;
890 	struct cvmx_sriox_seq_s {
891 		uint64_t reserved_32_63:32;
892 		uint64_t seq:32;
893 	} s;
894 	struct cvmx_sriox_seq_s cn63xx;
895 	struct cvmx_sriox_seq_s cn63xxp1;
896 	struct cvmx_sriox_seq_s cn66xx;
897 };
898 
899 union cvmx_sriox_status_reg {
900 	uint64_t u64;
901 	struct cvmx_sriox_status_reg_s {
902 		uint64_t reserved_2_63:62;
903 		uint64_t access:1;
904 		uint64_t srio:1;
905 	} s;
906 	struct cvmx_sriox_status_reg_s cn63xx;
907 	struct cvmx_sriox_status_reg_s cn63xxp1;
908 	struct cvmx_sriox_status_reg_s cn66xx;
909 };
910 
911 union cvmx_sriox_tag_ctrl {
912 	uint64_t u64;
913 	struct cvmx_sriox_tag_ctrl_s {
914 		uint64_t reserved_17_63:47;
915 		uint64_t o_clr:1;
916 		uint64_t reserved_13_15:3;
917 		uint64_t otag:5;
918 		uint64_t reserved_5_7:3;
919 		uint64_t itag:5;
920 	} s;
921 	struct cvmx_sriox_tag_ctrl_s cn63xx;
922 	struct cvmx_sriox_tag_ctrl_s cn63xxp1;
923 	struct cvmx_sriox_tag_ctrl_s cn66xx;
924 };
925 
926 union cvmx_sriox_tlp_credits {
927 	uint64_t u64;
928 	struct cvmx_sriox_tlp_credits_s {
929 		uint64_t reserved_28_63:36;
930 		uint64_t mbox:4;
931 		uint64_t comp:8;
932 		uint64_t reserved_13_15:3;
933 		uint64_t n_post:5;
934 		uint64_t post:8;
935 	} s;
936 	struct cvmx_sriox_tlp_credits_s cn63xx;
937 	struct cvmx_sriox_tlp_credits_s cn63xxp1;
938 	struct cvmx_sriox_tlp_credits_s cn66xx;
939 };
940 
941 union cvmx_sriox_tx_bell {
942 	uint64_t u64;
943 	struct cvmx_sriox_tx_bell_s {
944 		uint64_t reserved_48_63:16;
945 		uint64_t data:16;
946 		uint64_t dest_id:16;
947 		uint64_t reserved_9_15:7;
948 		uint64_t pending:1;
949 		uint64_t reserved_5_7:3;
950 		uint64_t src_id:1;
951 		uint64_t id16:1;
952 		uint64_t reserved_2_2:1;
953 		uint64_t priority:2;
954 	} s;
955 	struct cvmx_sriox_tx_bell_s cn63xx;
956 	struct cvmx_sriox_tx_bell_s cn63xxp1;
957 	struct cvmx_sriox_tx_bell_s cn66xx;
958 };
959 
960 union cvmx_sriox_tx_bell_info {
961 	uint64_t u64;
962 	struct cvmx_sriox_tx_bell_info_s {
963 		uint64_t reserved_48_63:16;
964 		uint64_t data:16;
965 		uint64_t dest_id:16;
966 		uint64_t reserved_8_15:8;
967 		uint64_t timeout:1;
968 		uint64_t error:1;
969 		uint64_t retry:1;
970 		uint64_t src_id:1;
971 		uint64_t id16:1;
972 		uint64_t reserved_2_2:1;
973 		uint64_t priority:2;
974 	} s;
975 	struct cvmx_sriox_tx_bell_info_s cn63xx;
976 	struct cvmx_sriox_tx_bell_info_s cn63xxp1;
977 	struct cvmx_sriox_tx_bell_info_s cn66xx;
978 };
979 
980 union cvmx_sriox_tx_ctrl {
981 	uint64_t u64;
982 	struct cvmx_sriox_tx_ctrl_s {
983 		uint64_t reserved_53_63:11;
984 		uint64_t tag_th2:5;
985 		uint64_t reserved_45_47:3;
986 		uint64_t tag_th1:5;
987 		uint64_t reserved_37_39:3;
988 		uint64_t tag_th0:5;
989 		uint64_t reserved_20_31:12;
990 		uint64_t tx_th2:4;
991 		uint64_t reserved_12_15:4;
992 		uint64_t tx_th1:4;
993 		uint64_t reserved_4_7:4;
994 		uint64_t tx_th0:4;
995 	} s;
996 	struct cvmx_sriox_tx_ctrl_s cn63xx;
997 	struct cvmx_sriox_tx_ctrl_s cn63xxp1;
998 	struct cvmx_sriox_tx_ctrl_s cn66xx;
999 };
1000 
1001 union cvmx_sriox_tx_emphasis {
1002 	uint64_t u64;
1003 	struct cvmx_sriox_tx_emphasis_s {
1004 		uint64_t reserved_4_63:60;
1005 		uint64_t emph:4;
1006 	} s;
1007 	struct cvmx_sriox_tx_emphasis_s cn63xx;
1008 	struct cvmx_sriox_tx_emphasis_s cn66xx;
1009 };
1010 
1011 union cvmx_sriox_tx_status {
1012 	uint64_t u64;
1013 	struct cvmx_sriox_tx_status_s {
1014 		uint64_t reserved_32_63:32;
1015 		uint64_t s2m_pr3:8;
1016 		uint64_t s2m_pr2:8;
1017 		uint64_t s2m_pr1:8;
1018 		uint64_t s2m_pr0:8;
1019 	} s;
1020 	struct cvmx_sriox_tx_status_s cn63xx;
1021 	struct cvmx_sriox_tx_status_s cn63xxp1;
1022 	struct cvmx_sriox_tx_status_s cn66xx;
1023 };
1024 
1025 union cvmx_sriox_wr_done_counts {
1026 	uint64_t u64;
1027 	struct cvmx_sriox_wr_done_counts_s {
1028 		uint64_t reserved_32_63:32;
1029 		uint64_t bad:16;
1030 		uint64_t good:16;
1031 	} s;
1032 	struct cvmx_sriox_wr_done_counts_s cn63xx;
1033 	struct cvmx_sriox_wr_done_counts_s cn66xx;
1034 };
1035 
1036 #endif
1037