[backfire] cleanup: remove unsupported "cobalt" target
[10.03/openwrt.git] / target / linux / octeon / patches-2.6.30 / 005-register_defs_octeon_mgmt.patch
1 The MGMT ethernet driver uses the AGL, MIXX and SMIX blocks, so we add
2 definitions for them.
3
4 Signed-off-by: David Daney <ddaney@caviumnetworks.com>
5 ---
6  arch/mips/include/asm/octeon/cvmx-agl-defs.h  | 1194 +++++++++++++++++++++++++
7  arch/mips/include/asm/octeon/cvmx-mixx-defs.h |  248 +++++
8  arch/mips/include/asm/octeon/cvmx-smix-defs.h |  178 ++++
9  3 files changed, 1620 insertions(+), 0 deletions(-)
10  create mode 100644 arch/mips/include/asm/octeon/cvmx-agl-defs.h
11  create mode 100644 arch/mips/include/asm/octeon/cvmx-mixx-defs.h
12  create mode 100644 arch/mips/include/asm/octeon/cvmx-smix-defs.h
13
14 --- /dev/null
15 +++ b/arch/mips/include/asm/octeon/cvmx-agl-defs.h
16 @@ -0,0 +1,1194 @@
17 +/***********************license start***************
18 + * Author: Cavium Networks
19 + *
20 + * Contact: support@caviumnetworks.com
21 + * This file is part of the OCTEON SDK
22 + *
23 + * Copyright (c) 2003-2008 Cavium Networks
24 + *
25 + * This file is free software; you can redistribute it and/or modify
26 + * it under the terms of the GNU General Public License, Version 2, as
27 + * published by the Free Software Foundation.
28 + *
29 + * This file is distributed in the hope that it will be useful, but
30 + * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
31 + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
32 + * NONINFRINGEMENT.  See the GNU General Public License for more
33 + * details.
34 + *
35 + * You should have received a copy of the GNU General Public License
36 + * along with this file; if not, write to the Free Software
37 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
38 + * or visit http://www.gnu.org/licenses/.
39 + *
40 + * This file may also be available under a different license from Cavium.
41 + * Contact Cavium Networks for more information
42 + ***********************license end**************************************/
43 +
44 +#ifndef __CVMX_AGL_DEFS_H__
45 +#define __CVMX_AGL_DEFS_H__
46 +
47 +#define CVMX_AGL_GMX_BAD_REG \
48 +        CVMX_ADD_IO_SEG(0x00011800E0000518ull)
49 +#define CVMX_AGL_GMX_BIST \
50 +        CVMX_ADD_IO_SEG(0x00011800E0000400ull)
51 +#define CVMX_AGL_GMX_DRV_CTL \
52 +        CVMX_ADD_IO_SEG(0x00011800E00007F0ull)
53 +#define CVMX_AGL_GMX_INF_MODE \
54 +        CVMX_ADD_IO_SEG(0x00011800E00007F8ull)
55 +#define CVMX_AGL_GMX_PRTX_CFG(offset) \
56 +        CVMX_ADD_IO_SEG(0x00011800E0000010ull + (((offset) & 1) * 2048))
57 +#define CVMX_AGL_GMX_RXX_ADR_CAM0(offset) \
58 +        CVMX_ADD_IO_SEG(0x00011800E0000180ull + (((offset) & 1) * 2048))
59 +#define CVMX_AGL_GMX_RXX_ADR_CAM1(offset) \
60 +        CVMX_ADD_IO_SEG(0x00011800E0000188ull + (((offset) & 1) * 2048))
61 +#define CVMX_AGL_GMX_RXX_ADR_CAM2(offset) \
62 +        CVMX_ADD_IO_SEG(0x00011800E0000190ull + (((offset) & 1) * 2048))
63 +#define CVMX_AGL_GMX_RXX_ADR_CAM3(offset) \
64 +        CVMX_ADD_IO_SEG(0x00011800E0000198ull + (((offset) & 1) * 2048))
65 +#define CVMX_AGL_GMX_RXX_ADR_CAM4(offset) \
66 +        CVMX_ADD_IO_SEG(0x00011800E00001A0ull + (((offset) & 1) * 2048))
67 +#define CVMX_AGL_GMX_RXX_ADR_CAM5(offset) \
68 +        CVMX_ADD_IO_SEG(0x00011800E00001A8ull + (((offset) & 1) * 2048))
69 +#define CVMX_AGL_GMX_RXX_ADR_CAM_EN(offset) \
70 +        CVMX_ADD_IO_SEG(0x00011800E0000108ull + (((offset) & 1) * 2048))
71 +#define CVMX_AGL_GMX_RXX_ADR_CTL(offset) \
72 +        CVMX_ADD_IO_SEG(0x00011800E0000100ull + (((offset) & 1) * 2048))
73 +#define CVMX_AGL_GMX_RXX_DECISION(offset) \
74 +        CVMX_ADD_IO_SEG(0x00011800E0000040ull + (((offset) & 1) * 2048))
75 +#define CVMX_AGL_GMX_RXX_FRM_CHK(offset) \
76 +        CVMX_ADD_IO_SEG(0x00011800E0000020ull + (((offset) & 1) * 2048))
77 +#define CVMX_AGL_GMX_RXX_FRM_CTL(offset) \
78 +        CVMX_ADD_IO_SEG(0x00011800E0000018ull + (((offset) & 1) * 2048))
79 +#define CVMX_AGL_GMX_RXX_FRM_MAX(offset) \
80 +        CVMX_ADD_IO_SEG(0x00011800E0000030ull + (((offset) & 1) * 2048))
81 +#define CVMX_AGL_GMX_RXX_FRM_MIN(offset) \
82 +        CVMX_ADD_IO_SEG(0x00011800E0000028ull + (((offset) & 1) * 2048))
83 +#define CVMX_AGL_GMX_RXX_IFG(offset) \
84 +        CVMX_ADD_IO_SEG(0x00011800E0000058ull + (((offset) & 1) * 2048))
85 +#define CVMX_AGL_GMX_RXX_INT_EN(offset) \
86 +        CVMX_ADD_IO_SEG(0x00011800E0000008ull + (((offset) & 1) * 2048))
87 +#define CVMX_AGL_GMX_RXX_INT_REG(offset) \
88 +        CVMX_ADD_IO_SEG(0x00011800E0000000ull + (((offset) & 1) * 2048))
89 +#define CVMX_AGL_GMX_RXX_JABBER(offset) \
90 +        CVMX_ADD_IO_SEG(0x00011800E0000038ull + (((offset) & 1) * 2048))
91 +#define CVMX_AGL_GMX_RXX_PAUSE_DROP_TIME(offset) \
92 +        CVMX_ADD_IO_SEG(0x00011800E0000068ull + (((offset) & 1) * 2048))
93 +#define CVMX_AGL_GMX_RXX_STATS_CTL(offset) \
94 +        CVMX_ADD_IO_SEG(0x00011800E0000050ull + (((offset) & 1) * 2048))
95 +#define CVMX_AGL_GMX_RXX_STATS_OCTS(offset) \
96 +        CVMX_ADD_IO_SEG(0x00011800E0000088ull + (((offset) & 1) * 2048))
97 +#define CVMX_AGL_GMX_RXX_STATS_OCTS_CTL(offset) \
98 +        CVMX_ADD_IO_SEG(0x00011800E0000098ull + (((offset) & 1) * 2048))
99 +#define CVMX_AGL_GMX_RXX_STATS_OCTS_DMAC(offset) \
100 +        CVMX_ADD_IO_SEG(0x00011800E00000A8ull + (((offset) & 1) * 2048))
101 +#define CVMX_AGL_GMX_RXX_STATS_OCTS_DRP(offset) \
102 +        CVMX_ADD_IO_SEG(0x00011800E00000B8ull + (((offset) & 1) * 2048))
103 +#define CVMX_AGL_GMX_RXX_STATS_PKTS(offset) \
104 +        CVMX_ADD_IO_SEG(0x00011800E0000080ull + (((offset) & 1) * 2048))
105 +#define CVMX_AGL_GMX_RXX_STATS_PKTS_BAD(offset) \
106 +        CVMX_ADD_IO_SEG(0x00011800E00000C0ull + (((offset) & 1) * 2048))
107 +#define CVMX_AGL_GMX_RXX_STATS_PKTS_CTL(offset) \
108 +        CVMX_ADD_IO_SEG(0x00011800E0000090ull + (((offset) & 1) * 2048))
109 +#define CVMX_AGL_GMX_RXX_STATS_PKTS_DMAC(offset) \
110 +        CVMX_ADD_IO_SEG(0x00011800E00000A0ull + (((offset) & 1) * 2048))
111 +#define CVMX_AGL_GMX_RXX_STATS_PKTS_DRP(offset) \
112 +        CVMX_ADD_IO_SEG(0x00011800E00000B0ull + (((offset) & 1) * 2048))
113 +#define CVMX_AGL_GMX_RXX_UDD_SKP(offset) \
114 +        CVMX_ADD_IO_SEG(0x00011800E0000048ull + (((offset) & 1) * 2048))
115 +#define CVMX_AGL_GMX_RX_BP_DROPX(offset) \
116 +        CVMX_ADD_IO_SEG(0x00011800E0000420ull + (((offset) & 1) * 8))
117 +#define CVMX_AGL_GMX_RX_BP_OFFX(offset) \
118 +        CVMX_ADD_IO_SEG(0x00011800E0000460ull + (((offset) & 1) * 8))
119 +#define CVMX_AGL_GMX_RX_BP_ONX(offset) \
120 +        CVMX_ADD_IO_SEG(0x00011800E0000440ull + (((offset) & 1) * 8))
121 +#define CVMX_AGL_GMX_RX_PRT_INFO \
122 +        CVMX_ADD_IO_SEG(0x00011800E00004E8ull)
123 +#define CVMX_AGL_GMX_RX_TX_STATUS \
124 +        CVMX_ADD_IO_SEG(0x00011800E00007E8ull)
125 +#define CVMX_AGL_GMX_SMACX(offset) \
126 +        CVMX_ADD_IO_SEG(0x00011800E0000230ull + (((offset) & 1) * 2048))
127 +#define CVMX_AGL_GMX_STAT_BP \
128 +        CVMX_ADD_IO_SEG(0x00011800E0000520ull)
129 +#define CVMX_AGL_GMX_TXX_APPEND(offset) \
130 +        CVMX_ADD_IO_SEG(0x00011800E0000218ull + (((offset) & 1) * 2048))
131 +#define CVMX_AGL_GMX_TXX_CTL(offset) \
132 +        CVMX_ADD_IO_SEG(0x00011800E0000270ull + (((offset) & 1) * 2048))
133 +#define CVMX_AGL_GMX_TXX_MIN_PKT(offset) \
134 +        CVMX_ADD_IO_SEG(0x00011800E0000240ull + (((offset) & 1) * 2048))
135 +#define CVMX_AGL_GMX_TXX_PAUSE_PKT_INTERVAL(offset) \
136 +        CVMX_ADD_IO_SEG(0x00011800E0000248ull + (((offset) & 1) * 2048))
137 +#define CVMX_AGL_GMX_TXX_PAUSE_PKT_TIME(offset) \
138 +        CVMX_ADD_IO_SEG(0x00011800E0000238ull + (((offset) & 1) * 2048))
139 +#define CVMX_AGL_GMX_TXX_PAUSE_TOGO(offset) \
140 +        CVMX_ADD_IO_SEG(0x00011800E0000258ull + (((offset) & 1) * 2048))
141 +#define CVMX_AGL_GMX_TXX_PAUSE_ZERO(offset) \
142 +        CVMX_ADD_IO_SEG(0x00011800E0000260ull + (((offset) & 1) * 2048))
143 +#define CVMX_AGL_GMX_TXX_SOFT_PAUSE(offset) \
144 +        CVMX_ADD_IO_SEG(0x00011800E0000250ull + (((offset) & 1) * 2048))
145 +#define CVMX_AGL_GMX_TXX_STAT0(offset) \
146 +        CVMX_ADD_IO_SEG(0x00011800E0000280ull + (((offset) & 1) * 2048))
147 +#define CVMX_AGL_GMX_TXX_STAT1(offset) \
148 +        CVMX_ADD_IO_SEG(0x00011800E0000288ull + (((offset) & 1) * 2048))
149 +#define CVMX_AGL_GMX_TXX_STAT2(offset) \
150 +        CVMX_ADD_IO_SEG(0x00011800E0000290ull + (((offset) & 1) * 2048))
151 +#define CVMX_AGL_GMX_TXX_STAT3(offset) \
152 +        CVMX_ADD_IO_SEG(0x00011800E0000298ull + (((offset) & 1) * 2048))
153 +#define CVMX_AGL_GMX_TXX_STAT4(offset) \
154 +        CVMX_ADD_IO_SEG(0x00011800E00002A0ull + (((offset) & 1) * 2048))
155 +#define CVMX_AGL_GMX_TXX_STAT5(offset) \
156 +        CVMX_ADD_IO_SEG(0x00011800E00002A8ull + (((offset) & 1) * 2048))
157 +#define CVMX_AGL_GMX_TXX_STAT6(offset) \
158 +        CVMX_ADD_IO_SEG(0x00011800E00002B0ull + (((offset) & 1) * 2048))
159 +#define CVMX_AGL_GMX_TXX_STAT7(offset) \
160 +        CVMX_ADD_IO_SEG(0x00011800E00002B8ull + (((offset) & 1) * 2048))
161 +#define CVMX_AGL_GMX_TXX_STAT8(offset) \
162 +        CVMX_ADD_IO_SEG(0x00011800E00002C0ull + (((offset) & 1) * 2048))
163 +#define CVMX_AGL_GMX_TXX_STAT9(offset) \
164 +        CVMX_ADD_IO_SEG(0x00011800E00002C8ull + (((offset) & 1) * 2048))
165 +#define CVMX_AGL_GMX_TXX_STATS_CTL(offset) \
166 +        CVMX_ADD_IO_SEG(0x00011800E0000268ull + (((offset) & 1) * 2048))
167 +#define CVMX_AGL_GMX_TXX_THRESH(offset) \
168 +        CVMX_ADD_IO_SEG(0x00011800E0000210ull + (((offset) & 1) * 2048))
169 +#define CVMX_AGL_GMX_TX_BP \
170 +        CVMX_ADD_IO_SEG(0x00011800E00004D0ull)
171 +#define CVMX_AGL_GMX_TX_COL_ATTEMPT \
172 +        CVMX_ADD_IO_SEG(0x00011800E0000498ull)
173 +#define CVMX_AGL_GMX_TX_IFG \
174 +        CVMX_ADD_IO_SEG(0x00011800E0000488ull)
175 +#define CVMX_AGL_GMX_TX_INT_EN \
176 +        CVMX_ADD_IO_SEG(0x00011800E0000508ull)
177 +#define CVMX_AGL_GMX_TX_INT_REG \
178 +        CVMX_ADD_IO_SEG(0x00011800E0000500ull)
179 +#define CVMX_AGL_GMX_TX_JAM \
180 +        CVMX_ADD_IO_SEG(0x00011800E0000490ull)
181 +#define CVMX_AGL_GMX_TX_LFSR \
182 +        CVMX_ADD_IO_SEG(0x00011800E00004F8ull)
183 +#define CVMX_AGL_GMX_TX_OVR_BP \
184 +        CVMX_ADD_IO_SEG(0x00011800E00004C8ull)
185 +#define CVMX_AGL_GMX_TX_PAUSE_PKT_DMAC \
186 +        CVMX_ADD_IO_SEG(0x00011800E00004A0ull)
187 +#define CVMX_AGL_GMX_TX_PAUSE_PKT_TYPE \
188 +        CVMX_ADD_IO_SEG(0x00011800E00004A8ull)
189 +
190 +union cvmx_agl_gmx_bad_reg {
191 +       uint64_t u64;
192 +       struct cvmx_agl_gmx_bad_reg_s {
193 +               uint64_t reserved_38_63:26;
194 +               uint64_t txpsh1:1;
195 +               uint64_t txpop1:1;
196 +               uint64_t ovrflw1:1;
197 +               uint64_t txpsh:1;
198 +               uint64_t txpop:1;
199 +               uint64_t ovrflw:1;
200 +               uint64_t reserved_27_31:5;
201 +               uint64_t statovr:1;
202 +               uint64_t reserved_23_25:3;
203 +               uint64_t loststat:1;
204 +               uint64_t reserved_4_21:18;
205 +               uint64_t out_ovr:2;
206 +               uint64_t reserved_0_1:2;
207 +       } s;
208 +       struct cvmx_agl_gmx_bad_reg_s cn52xx;
209 +       struct cvmx_agl_gmx_bad_reg_s cn52xxp1;
210 +       struct cvmx_agl_gmx_bad_reg_cn56xx {
211 +               uint64_t reserved_35_63:29;
212 +               uint64_t txpsh:1;
213 +               uint64_t txpop:1;
214 +               uint64_t ovrflw:1;
215 +               uint64_t reserved_27_31:5;
216 +               uint64_t statovr:1;
217 +               uint64_t reserved_23_25:3;
218 +               uint64_t loststat:1;
219 +               uint64_t reserved_3_21:19;
220 +               uint64_t out_ovr:1;
221 +               uint64_t reserved_0_1:2;
222 +       } cn56xx;
223 +       struct cvmx_agl_gmx_bad_reg_cn56xx cn56xxp1;
224 +};
225 +
226 +union cvmx_agl_gmx_bist {
227 +       uint64_t u64;
228 +       struct cvmx_agl_gmx_bist_s {
229 +               uint64_t reserved_10_63:54;
230 +               uint64_t status:10;
231 +       } s;
232 +       struct cvmx_agl_gmx_bist_s cn52xx;
233 +       struct cvmx_agl_gmx_bist_s cn52xxp1;
234 +       struct cvmx_agl_gmx_bist_s cn56xx;
235 +       struct cvmx_agl_gmx_bist_s cn56xxp1;
236 +};
237 +
238 +union cvmx_agl_gmx_drv_ctl {
239 +       uint64_t u64;
240 +       struct cvmx_agl_gmx_drv_ctl_s {
241 +               uint64_t reserved_49_63:15;
242 +               uint64_t byp_en1:1;
243 +               uint64_t reserved_45_47:3;
244 +               uint64_t pctl1:5;
245 +               uint64_t reserved_37_39:3;
246 +               uint64_t nctl1:5;
247 +               uint64_t reserved_17_31:15;
248 +               uint64_t byp_en:1;
249 +               uint64_t reserved_13_15:3;
250 +               uint64_t pctl:5;
251 +               uint64_t reserved_5_7:3;
252 +               uint64_t nctl:5;
253 +       } s;
254 +       struct cvmx_agl_gmx_drv_ctl_s cn52xx;
255 +       struct cvmx_agl_gmx_drv_ctl_s cn52xxp1;
256 +       struct cvmx_agl_gmx_drv_ctl_cn56xx {
257 +               uint64_t reserved_17_63:47;
258 +               uint64_t byp_en:1;
259 +               uint64_t reserved_13_15:3;
260 +               uint64_t pctl:5;
261 +               uint64_t reserved_5_7:3;
262 +               uint64_t nctl:5;
263 +       } cn56xx;
264 +       struct cvmx_agl_gmx_drv_ctl_cn56xx cn56xxp1;
265 +};
266 +
267 +union cvmx_agl_gmx_inf_mode {
268 +       uint64_t u64;
269 +       struct cvmx_agl_gmx_inf_mode_s {
270 +               uint64_t reserved_2_63:62;
271 +               uint64_t en:1;
272 +               uint64_t reserved_0_0:1;
273 +       } s;
274 +       struct cvmx_agl_gmx_inf_mode_s cn52xx;
275 +       struct cvmx_agl_gmx_inf_mode_s cn52xxp1;
276 +       struct cvmx_agl_gmx_inf_mode_s cn56xx;
277 +       struct cvmx_agl_gmx_inf_mode_s cn56xxp1;
278 +};
279 +
280 +union cvmx_agl_gmx_prtx_cfg {
281 +       uint64_t u64;
282 +       struct cvmx_agl_gmx_prtx_cfg_s {
283 +               uint64_t reserved_6_63:58;
284 +               uint64_t tx_en:1;
285 +               uint64_t rx_en:1;
286 +               uint64_t slottime:1;
287 +               uint64_t duplex:1;
288 +               uint64_t speed:1;
289 +               uint64_t en:1;
290 +       } s;
291 +       struct cvmx_agl_gmx_prtx_cfg_s cn52xx;
292 +       struct cvmx_agl_gmx_prtx_cfg_s cn52xxp1;
293 +       struct cvmx_agl_gmx_prtx_cfg_s cn56xx;
294 +       struct cvmx_agl_gmx_prtx_cfg_s cn56xxp1;
295 +};
296 +
297 +union cvmx_agl_gmx_rxx_adr_cam0 {
298 +       uint64_t u64;
299 +       struct cvmx_agl_gmx_rxx_adr_cam0_s {
300 +               uint64_t adr:64;
301 +       } s;
302 +       struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xx;
303 +       struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xxp1;
304 +       struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xx;
305 +       struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xxp1;
306 +};
307 +
308 +union cvmx_agl_gmx_rxx_adr_cam1 {
309 +       uint64_t u64;
310 +       struct cvmx_agl_gmx_rxx_adr_cam1_s {
311 +               uint64_t adr:64;
312 +       } s;
313 +       struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xx;
314 +       struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xxp1;
315 +       struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xx;
316 +       struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xxp1;
317 +};
318 +
319 +union cvmx_agl_gmx_rxx_adr_cam2 {
320 +       uint64_t u64;
321 +       struct cvmx_agl_gmx_rxx_adr_cam2_s {
322 +               uint64_t adr:64;
323 +       } s;
324 +       struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xx;
325 +       struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xxp1;
326 +       struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xx;
327 +       struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xxp1;
328 +};
329 +
330 +union cvmx_agl_gmx_rxx_adr_cam3 {
331 +       uint64_t u64;
332 +       struct cvmx_agl_gmx_rxx_adr_cam3_s {
333 +               uint64_t adr:64;
334 +       } s;
335 +       struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xx;
336 +       struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xxp1;
337 +       struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xx;
338 +       struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xxp1;
339 +};
340 +
341 +union cvmx_agl_gmx_rxx_adr_cam4 {
342 +       uint64_t u64;
343 +       struct cvmx_agl_gmx_rxx_adr_cam4_s {
344 +               uint64_t adr:64;
345 +       } s;
346 +       struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xx;
347 +       struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xxp1;
348 +       struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xx;
349 +       struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xxp1;
350 +};
351 +
352 +union cvmx_agl_gmx_rxx_adr_cam5 {
353 +       uint64_t u64;
354 +       struct cvmx_agl_gmx_rxx_adr_cam5_s {
355 +               uint64_t adr:64;
356 +       } s;
357 +       struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xx;
358 +       struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xxp1;
359 +       struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xx;
360 +       struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xxp1;
361 +};
362 +
363 +union cvmx_agl_gmx_rxx_adr_cam_en {
364 +       uint64_t u64;
365 +       struct cvmx_agl_gmx_rxx_adr_cam_en_s {
366 +               uint64_t reserved_8_63:56;
367 +               uint64_t en:8;
368 +       } s;
369 +       struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xx;
370 +       struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xxp1;
371 +       struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xx;
372 +       struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xxp1;
373 +};
374 +
375 +union cvmx_agl_gmx_rxx_adr_ctl {
376 +       uint64_t u64;
377 +       struct cvmx_agl_gmx_rxx_adr_ctl_s {
378 +               uint64_t reserved_4_63:60;
379 +               uint64_t cam_mode:1;
380 +               uint64_t mcst:2;
381 +               uint64_t bcst:1;
382 +       } s;
383 +       struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xx;
384 +       struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xxp1;
385 +       struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xx;
386 +       struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xxp1;
387 +};
388 +
389 +union cvmx_agl_gmx_rxx_decision {
390 +       uint64_t u64;
391 +       struct cvmx_agl_gmx_rxx_decision_s {
392 +               uint64_t reserved_5_63:59;
393 +               uint64_t cnt:5;
394 +       } s;
395 +       struct cvmx_agl_gmx_rxx_decision_s cn52xx;
396 +       struct cvmx_agl_gmx_rxx_decision_s cn52xxp1;
397 +       struct cvmx_agl_gmx_rxx_decision_s cn56xx;
398 +       struct cvmx_agl_gmx_rxx_decision_s cn56xxp1;
399 +};
400 +
401 +union cvmx_agl_gmx_rxx_frm_chk {
402 +       uint64_t u64;
403 +       struct cvmx_agl_gmx_rxx_frm_chk_s {
404 +               uint64_t reserved_9_63:55;
405 +               uint64_t skperr:1;
406 +               uint64_t rcverr:1;
407 +               uint64_t lenerr:1;
408 +               uint64_t alnerr:1;
409 +               uint64_t fcserr:1;
410 +               uint64_t jabber:1;
411 +               uint64_t maxerr:1;
412 +               uint64_t reserved_1_1:1;
413 +               uint64_t minerr:1;
414 +       } s;
415 +       struct cvmx_agl_gmx_rxx_frm_chk_s cn52xx;
416 +       struct cvmx_agl_gmx_rxx_frm_chk_s cn52xxp1;
417 +       struct cvmx_agl_gmx_rxx_frm_chk_s cn56xx;
418 +       struct cvmx_agl_gmx_rxx_frm_chk_s cn56xxp1;
419 +};
420 +
421 +union cvmx_agl_gmx_rxx_frm_ctl {
422 +       uint64_t u64;
423 +       struct cvmx_agl_gmx_rxx_frm_ctl_s {
424 +               uint64_t reserved_10_63:54;
425 +               uint64_t pre_align:1;
426 +               uint64_t pad_len:1;
427 +               uint64_t vlan_len:1;
428 +               uint64_t pre_free:1;
429 +               uint64_t ctl_smac:1;
430 +               uint64_t ctl_mcst:1;
431 +               uint64_t ctl_bck:1;
432 +               uint64_t ctl_drp:1;
433 +               uint64_t pre_strp:1;
434 +               uint64_t pre_chk:1;
435 +       } s;
436 +       struct cvmx_agl_gmx_rxx_frm_ctl_s cn52xx;
437 +       struct cvmx_agl_gmx_rxx_frm_ctl_s cn52xxp1;
438 +       struct cvmx_agl_gmx_rxx_frm_ctl_s cn56xx;
439 +       struct cvmx_agl_gmx_rxx_frm_ctl_s cn56xxp1;
440 +};
441 +
442 +union cvmx_agl_gmx_rxx_frm_max {
443 +       uint64_t u64;
444 +       struct cvmx_agl_gmx_rxx_frm_max_s {
445 +               uint64_t reserved_16_63:48;
446 +               uint64_t len:16;
447 +       } s;
448 +       struct cvmx_agl_gmx_rxx_frm_max_s cn52xx;
449 +       struct cvmx_agl_gmx_rxx_frm_max_s cn52xxp1;
450 +       struct cvmx_agl_gmx_rxx_frm_max_s cn56xx;
451 +       struct cvmx_agl_gmx_rxx_frm_max_s cn56xxp1;
452 +};
453 +
454 +union cvmx_agl_gmx_rxx_frm_min {
455 +       uint64_t u64;
456 +       struct cvmx_agl_gmx_rxx_frm_min_s {
457 +               uint64_t reserved_16_63:48;
458 +               uint64_t len:16;
459 +       } s;
460 +       struct cvmx_agl_gmx_rxx_frm_min_s cn52xx;
461 +       struct cvmx_agl_gmx_rxx_frm_min_s cn52xxp1;
462 +       struct cvmx_agl_gmx_rxx_frm_min_s cn56xx;
463 +       struct cvmx_agl_gmx_rxx_frm_min_s cn56xxp1;
464 +};
465 +
466 +union cvmx_agl_gmx_rxx_ifg {
467 +       uint64_t u64;
468 +       struct cvmx_agl_gmx_rxx_ifg_s {
469 +               uint64_t reserved_4_63:60;
470 +               uint64_t ifg:4;
471 +       } s;
472 +       struct cvmx_agl_gmx_rxx_ifg_s cn52xx;
473 +       struct cvmx_agl_gmx_rxx_ifg_s cn52xxp1;
474 +       struct cvmx_agl_gmx_rxx_ifg_s cn56xx;
475 +       struct cvmx_agl_gmx_rxx_ifg_s cn56xxp1;
476 +};
477 +
478 +union cvmx_agl_gmx_rxx_int_en {
479 +       uint64_t u64;
480 +       struct cvmx_agl_gmx_rxx_int_en_s {
481 +               uint64_t reserved_20_63:44;
482 +               uint64_t pause_drp:1;
483 +               uint64_t reserved_16_18:3;
484 +               uint64_t ifgerr:1;
485 +               uint64_t coldet:1;
486 +               uint64_t falerr:1;
487 +               uint64_t rsverr:1;
488 +               uint64_t pcterr:1;
489 +               uint64_t ovrerr:1;
490 +               uint64_t reserved_9_9:1;
491 +               uint64_t skperr:1;
492 +               uint64_t rcverr:1;
493 +               uint64_t lenerr:1;
494 +               uint64_t alnerr:1;
495 +               uint64_t fcserr:1;
496 +               uint64_t jabber:1;
497 +               uint64_t maxerr:1;
498 +               uint64_t reserved_1_1:1;
499 +               uint64_t minerr:1;
500 +       } s;
501 +       struct cvmx_agl_gmx_rxx_int_en_s cn52xx;
502 +       struct cvmx_agl_gmx_rxx_int_en_s cn52xxp1;
503 +       struct cvmx_agl_gmx_rxx_int_en_s cn56xx;
504 +       struct cvmx_agl_gmx_rxx_int_en_s cn56xxp1;
505 +};
506 +
507 +union cvmx_agl_gmx_rxx_int_reg {
508 +       uint64_t u64;
509 +       struct cvmx_agl_gmx_rxx_int_reg_s {
510 +               uint64_t reserved_20_63:44;
511 +               uint64_t pause_drp:1;
512 +               uint64_t reserved_16_18:3;
513 +               uint64_t ifgerr:1;
514 +               uint64_t coldet:1;
515 +               uint64_t falerr:1;
516 +               uint64_t rsverr:1;
517 +               uint64_t pcterr:1;
518 +               uint64_t ovrerr:1;
519 +               uint64_t reserved_9_9:1;
520 +               uint64_t skperr:1;
521 +               uint64_t rcverr:1;
522 +               uint64_t lenerr:1;
523 +               uint64_t alnerr:1;
524 +               uint64_t fcserr:1;
525 +               uint64_t jabber:1;
526 +               uint64_t maxerr:1;
527 +               uint64_t reserved_1_1:1;
528 +               uint64_t minerr:1;
529 +       } s;
530 +       struct cvmx_agl_gmx_rxx_int_reg_s cn52xx;
531 +       struct cvmx_agl_gmx_rxx_int_reg_s cn52xxp1;
532 +       struct cvmx_agl_gmx_rxx_int_reg_s cn56xx;
533 +       struct cvmx_agl_gmx_rxx_int_reg_s cn56xxp1;
534 +};
535 +
536 +union cvmx_agl_gmx_rxx_jabber {
537 +       uint64_t u64;
538 +       struct cvmx_agl_gmx_rxx_jabber_s {
539 +               uint64_t reserved_16_63:48;
540 +               uint64_t cnt:16;
541 +       } s;
542 +       struct cvmx_agl_gmx_rxx_jabber_s cn52xx;
543 +       struct cvmx_agl_gmx_rxx_jabber_s cn52xxp1;
544 +       struct cvmx_agl_gmx_rxx_jabber_s cn56xx;
545 +       struct cvmx_agl_gmx_rxx_jabber_s cn56xxp1;
546 +};
547 +
548 +union cvmx_agl_gmx_rxx_pause_drop_time {
549 +       uint64_t u64;
550 +       struct cvmx_agl_gmx_rxx_pause_drop_time_s {
551 +               uint64_t reserved_16_63:48;
552 +               uint64_t status:16;
553 +       } s;
554 +       struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xx;
555 +       struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xxp1;
556 +       struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xx;
557 +       struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xxp1;
558 +};
559 +
560 +union cvmx_agl_gmx_rxx_stats_ctl {
561 +       uint64_t u64;
562 +       struct cvmx_agl_gmx_rxx_stats_ctl_s {
563 +               uint64_t reserved_1_63:63;
564 +               uint64_t rd_clr:1;
565 +       } s;
566 +       struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xx;
567 +       struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xxp1;
568 +       struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xx;
569 +       struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xxp1;
570 +};
571 +
572 +union cvmx_agl_gmx_rxx_stats_octs {
573 +       uint64_t u64;
574 +       struct cvmx_agl_gmx_rxx_stats_octs_s {
575 +               uint64_t reserved_48_63:16;
576 +               uint64_t cnt:48;
577 +       } s;
578 +       struct cvmx_agl_gmx_rxx_stats_octs_s cn52xx;
579 +       struct cvmx_agl_gmx_rxx_stats_octs_s cn52xxp1;
580 +       struct cvmx_agl_gmx_rxx_stats_octs_s cn56xx;
581 +       struct cvmx_agl_gmx_rxx_stats_octs_s cn56xxp1;
582 +};
583 +
584 +union cvmx_agl_gmx_rxx_stats_octs_ctl {
585 +       uint64_t u64;
586 +       struct cvmx_agl_gmx_rxx_stats_octs_ctl_s {
587 +               uint64_t reserved_48_63:16;
588 +               uint64_t cnt:48;
589 +       } s;
590 +       struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xx;
591 +       struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xxp1;
592 +       struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xx;
593 +       struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xxp1;
594 +};
595 +
596 +union cvmx_agl_gmx_rxx_stats_octs_dmac {
597 +       uint64_t u64;
598 +       struct cvmx_agl_gmx_rxx_stats_octs_dmac_s {
599 +               uint64_t reserved_48_63:16;
600 +               uint64_t cnt:48;
601 +       } s;
602 +       struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xx;
603 +       struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xxp1;
604 +       struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xx;
605 +       struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xxp1;
606 +};
607 +
608 +union cvmx_agl_gmx_rxx_stats_octs_drp {
609 +       uint64_t u64;
610 +       struct cvmx_agl_gmx_rxx_stats_octs_drp_s {
611 +               uint64_t reserved_48_63:16;
612 +               uint64_t cnt:48;
613 +       } s;
614 +       struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xx;
615 +       struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xxp1;
616 +       struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xx;
617 +       struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xxp1;
618 +};
619 +
620 +union cvmx_agl_gmx_rxx_stats_pkts {
621 +       uint64_t u64;
622 +       struct cvmx_agl_gmx_rxx_stats_pkts_s {
623 +               uint64_t reserved_32_63:32;
624 +               uint64_t cnt:32;
625 +       } s;
626 +       struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xx;
627 +       struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xxp1;
628 +       struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xx;
629 +       struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xxp1;
630 +};
631 +
632 +union cvmx_agl_gmx_rxx_stats_pkts_bad {
633 +       uint64_t u64;
634 +       struct cvmx_agl_gmx_rxx_stats_pkts_bad_s {
635 +               uint64_t reserved_32_63:32;
636 +               uint64_t cnt:32;
637 +       } s;
638 +       struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xx;
639 +       struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xxp1;
640 +       struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xx;
641 +       struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xxp1;
642 +};
643 +
644 +union cvmx_agl_gmx_rxx_stats_pkts_ctl {
645 +       uint64_t u64;
646 +       struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s {
647 +               uint64_t reserved_32_63:32;
648 +               uint64_t cnt:32;
649 +       } s;
650 +       struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xx;
651 +       struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xxp1;
652 +       struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xx;
653 +       struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xxp1;
654 +};
655 +
656 +union cvmx_agl_gmx_rxx_stats_pkts_dmac {
657 +       uint64_t u64;
658 +       struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s {
659 +               uint64_t reserved_32_63:32;
660 +               uint64_t cnt:32;
661 +       } s;
662 +       struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xx;
663 +       struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xxp1;
664 +       struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xx;
665 +       struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xxp1;
666 +};
667 +
668 +union cvmx_agl_gmx_rxx_stats_pkts_drp {
669 +       uint64_t u64;
670 +       struct cvmx_agl_gmx_rxx_stats_pkts_drp_s {
671 +               uint64_t reserved_32_63:32;
672 +               uint64_t cnt:32;
673 +       } s;
674 +       struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xx;
675 +       struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xxp1;
676 +       struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xx;
677 +       struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xxp1;
678 +};
679 +
680 +union cvmx_agl_gmx_rxx_udd_skp {
681 +       uint64_t u64;
682 +       struct cvmx_agl_gmx_rxx_udd_skp_s {
683 +               uint64_t reserved_9_63:55;
684 +               uint64_t fcssel:1;
685 +               uint64_t reserved_7_7:1;
686 +               uint64_t len:7;
687 +       } s;
688 +       struct cvmx_agl_gmx_rxx_udd_skp_s cn52xx;
689 +       struct cvmx_agl_gmx_rxx_udd_skp_s cn52xxp1;
690 +       struct cvmx_agl_gmx_rxx_udd_skp_s cn56xx;
691 +       struct cvmx_agl_gmx_rxx_udd_skp_s cn56xxp1;
692 +};
693 +
694 +union cvmx_agl_gmx_rx_bp_dropx {
695 +       uint64_t u64;
696 +       struct cvmx_agl_gmx_rx_bp_dropx_s {
697 +               uint64_t reserved_6_63:58;
698 +               uint64_t mark:6;
699 +       } s;
700 +       struct cvmx_agl_gmx_rx_bp_dropx_s cn52xx;
701 +       struct cvmx_agl_gmx_rx_bp_dropx_s cn52xxp1;
702 +       struct cvmx_agl_gmx_rx_bp_dropx_s cn56xx;
703 +       struct cvmx_agl_gmx_rx_bp_dropx_s cn56xxp1;
704 +};
705 +
706 +union cvmx_agl_gmx_rx_bp_offx {
707 +       uint64_t u64;
708 +       struct cvmx_agl_gmx_rx_bp_offx_s {
709 +               uint64_t reserved_6_63:58;
710 +               uint64_t mark:6;
711 +       } s;
712 +       struct cvmx_agl_gmx_rx_bp_offx_s cn52xx;
713 +       struct cvmx_agl_gmx_rx_bp_offx_s cn52xxp1;
714 +       struct cvmx_agl_gmx_rx_bp_offx_s cn56xx;
715 +       struct cvmx_agl_gmx_rx_bp_offx_s cn56xxp1;
716 +};
717 +
718 +union cvmx_agl_gmx_rx_bp_onx {
719 +       uint64_t u64;
720 +       struct cvmx_agl_gmx_rx_bp_onx_s {
721 +               uint64_t reserved_9_63:55;
722 +               uint64_t mark:9;
723 +       } s;
724 +       struct cvmx_agl_gmx_rx_bp_onx_s cn52xx;
725 +       struct cvmx_agl_gmx_rx_bp_onx_s cn52xxp1;
726 +       struct cvmx_agl_gmx_rx_bp_onx_s cn56xx;
727 +       struct cvmx_agl_gmx_rx_bp_onx_s cn56xxp1;
728 +};
729 +
730 +union cvmx_agl_gmx_rx_prt_info {
731 +       uint64_t u64;
732 +       struct cvmx_agl_gmx_rx_prt_info_s {
733 +               uint64_t reserved_18_63:46;
734 +               uint64_t drop:2;
735 +               uint64_t reserved_2_15:14;
736 +               uint64_t commit:2;
737 +       } s;
738 +       struct cvmx_agl_gmx_rx_prt_info_s cn52xx;
739 +       struct cvmx_agl_gmx_rx_prt_info_s cn52xxp1;
740 +       struct cvmx_agl_gmx_rx_prt_info_cn56xx {
741 +               uint64_t reserved_17_63:47;
742 +               uint64_t drop:1;
743 +               uint64_t reserved_1_15:15;
744 +               uint64_t commit:1;
745 +       } cn56xx;
746 +       struct cvmx_agl_gmx_rx_prt_info_cn56xx cn56xxp1;
747 +};
748 +
749 +union cvmx_agl_gmx_rx_tx_status {
750 +       uint64_t u64;
751 +       struct cvmx_agl_gmx_rx_tx_status_s {
752 +               uint64_t reserved_6_63:58;
753 +               uint64_t tx:2;
754 +               uint64_t reserved_2_3:2;
755 +               uint64_t rx:2;
756 +       } s;
757 +       struct cvmx_agl_gmx_rx_tx_status_s cn52xx;
758 +       struct cvmx_agl_gmx_rx_tx_status_s cn52xxp1;
759 +       struct cvmx_agl_gmx_rx_tx_status_cn56xx {
760 +               uint64_t reserved_5_63:59;
761 +               uint64_t tx:1;
762 +               uint64_t reserved_1_3:3;
763 +               uint64_t rx:1;
764 +       } cn56xx;
765 +       struct cvmx_agl_gmx_rx_tx_status_cn56xx cn56xxp1;
766 +};
767 +
768 +union cvmx_agl_gmx_smacx {
769 +       uint64_t u64;
770 +       struct cvmx_agl_gmx_smacx_s {
771 +               uint64_t reserved_48_63:16;
772 +               uint64_t smac:48;
773 +       } s;
774 +       struct cvmx_agl_gmx_smacx_s cn52xx;
775 +       struct cvmx_agl_gmx_smacx_s cn52xxp1;
776 +       struct cvmx_agl_gmx_smacx_s cn56xx;
777 +       struct cvmx_agl_gmx_smacx_s cn56xxp1;
778 +};
779 +
780 +union cvmx_agl_gmx_stat_bp {
781 +       uint64_t u64;
782 +       struct cvmx_agl_gmx_stat_bp_s {
783 +               uint64_t reserved_17_63:47;
784 +               uint64_t bp:1;
785 +               uint64_t cnt:16;
786 +       } s;
787 +       struct cvmx_agl_gmx_stat_bp_s cn52xx;
788 +       struct cvmx_agl_gmx_stat_bp_s cn52xxp1;
789 +       struct cvmx_agl_gmx_stat_bp_s cn56xx;
790 +       struct cvmx_agl_gmx_stat_bp_s cn56xxp1;
791 +};
792 +
793 +union cvmx_agl_gmx_txx_append {
794 +       uint64_t u64;
795 +       struct cvmx_agl_gmx_txx_append_s {
796 +               uint64_t reserved_4_63:60;
797 +               uint64_t force_fcs:1;
798 +               uint64_t fcs:1;
799 +               uint64_t pad:1;
800 +               uint64_t preamble:1;
801 +       } s;
802 +       struct cvmx_agl_gmx_txx_append_s cn52xx;
803 +       struct cvmx_agl_gmx_txx_append_s cn52xxp1;
804 +       struct cvmx_agl_gmx_txx_append_s cn56xx;
805 +       struct cvmx_agl_gmx_txx_append_s cn56xxp1;
806 +};
807 +
808 +union cvmx_agl_gmx_txx_ctl {
809 +       uint64_t u64;
810 +       struct cvmx_agl_gmx_txx_ctl_s {
811 +               uint64_t reserved_2_63:62;
812 +               uint64_t xsdef_en:1;
813 +               uint64_t xscol_en:1;
814 +       } s;
815 +       struct cvmx_agl_gmx_txx_ctl_s cn52xx;
816 +       struct cvmx_agl_gmx_txx_ctl_s cn52xxp1;
817 +       struct cvmx_agl_gmx_txx_ctl_s cn56xx;
818 +       struct cvmx_agl_gmx_txx_ctl_s cn56xxp1;
819 +};
820 +
821 +union cvmx_agl_gmx_txx_min_pkt {
822 +       uint64_t u64;
823 +       struct cvmx_agl_gmx_txx_min_pkt_s {
824 +               uint64_t reserved_8_63:56;
825 +               uint64_t min_size:8;
826 +       } s;
827 +       struct cvmx_agl_gmx_txx_min_pkt_s cn52xx;
828 +       struct cvmx_agl_gmx_txx_min_pkt_s cn52xxp1;
829 +       struct cvmx_agl_gmx_txx_min_pkt_s cn56xx;
830 +       struct cvmx_agl_gmx_txx_min_pkt_s cn56xxp1;
831 +};
832 +
833 +union cvmx_agl_gmx_txx_pause_pkt_interval {
834 +       uint64_t u64;
835 +       struct cvmx_agl_gmx_txx_pause_pkt_interval_s {
836 +               uint64_t reserved_16_63:48;
837 +               uint64_t interval:16;
838 +       } s;
839 +       struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xx;
840 +       struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xxp1;
841 +       struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xx;
842 +       struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xxp1;
843 +};
844 +
845 +union cvmx_agl_gmx_txx_pause_pkt_time {
846 +       uint64_t u64;
847 +       struct cvmx_agl_gmx_txx_pause_pkt_time_s {
848 +               uint64_t reserved_16_63:48;
849 +               uint64_t time:16;
850 +       } s;
851 +       struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xx;
852 +       struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xxp1;
853 +       struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xx;
854 +       struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xxp1;
855 +};
856 +
857 +union cvmx_agl_gmx_txx_pause_togo {
858 +       uint64_t u64;
859 +       struct cvmx_agl_gmx_txx_pause_togo_s {
860 +               uint64_t reserved_16_63:48;
861 +               uint64_t time:16;
862 +       } s;
863 +       struct cvmx_agl_gmx_txx_pause_togo_s cn52xx;
864 +       struct cvmx_agl_gmx_txx_pause_togo_s cn52xxp1;
865 +       struct cvmx_agl_gmx_txx_pause_togo_s cn56xx;
866 +       struct cvmx_agl_gmx_txx_pause_togo_s cn56xxp1;
867 +};
868 +
869 +union cvmx_agl_gmx_txx_pause_zero {
870 +       uint64_t u64;
871 +       struct cvmx_agl_gmx_txx_pause_zero_s {
872 +               uint64_t reserved_1_63:63;
873 +               uint64_t send:1;
874 +       } s;
875 +       struct cvmx_agl_gmx_txx_pause_zero_s cn52xx;
876 +       struct cvmx_agl_gmx_txx_pause_zero_s cn52xxp1;
877 +       struct cvmx_agl_gmx_txx_pause_zero_s cn56xx;
878 +       struct cvmx_agl_gmx_txx_pause_zero_s cn56xxp1;
879 +};
880 +
881 +union cvmx_agl_gmx_txx_soft_pause {
882 +       uint64_t u64;
883 +       struct cvmx_agl_gmx_txx_soft_pause_s {
884 +               uint64_t reserved_16_63:48;
885 +               uint64_t time:16;
886 +       } s;
887 +       struct cvmx_agl_gmx_txx_soft_pause_s cn52xx;
888 +       struct cvmx_agl_gmx_txx_soft_pause_s cn52xxp1;
889 +       struct cvmx_agl_gmx_txx_soft_pause_s cn56xx;
890 +       struct cvmx_agl_gmx_txx_soft_pause_s cn56xxp1;
891 +};
892 +
893 +union cvmx_agl_gmx_txx_stat0 {
894 +       uint64_t u64;
895 +       struct cvmx_agl_gmx_txx_stat0_s {
896 +               uint64_t xsdef:32;
897 +               uint64_t xscol:32;
898 +       } s;
899 +       struct cvmx_agl_gmx_txx_stat0_s cn52xx;
900 +       struct cvmx_agl_gmx_txx_stat0_s cn52xxp1;
901 +       struct cvmx_agl_gmx_txx_stat0_s cn56xx;
902 +       struct cvmx_agl_gmx_txx_stat0_s cn56xxp1;
903 +};
904 +
905 +union cvmx_agl_gmx_txx_stat1 {
906 +       uint64_t u64;
907 +       struct cvmx_agl_gmx_txx_stat1_s {
908 +               uint64_t scol:32;
909 +               uint64_t mcol:32;
910 +       } s;
911 +       struct cvmx_agl_gmx_txx_stat1_s cn52xx;
912 +       struct cvmx_agl_gmx_txx_stat1_s cn52xxp1;
913 +       struct cvmx_agl_gmx_txx_stat1_s cn56xx;
914 +       struct cvmx_agl_gmx_txx_stat1_s cn56xxp1;
915 +};
916 +
917 +union cvmx_agl_gmx_txx_stat2 {
918 +       uint64_t u64;
919 +       struct cvmx_agl_gmx_txx_stat2_s {
920 +               uint64_t reserved_48_63:16;
921 +               uint64_t octs:48;
922 +       } s;
923 +       struct cvmx_agl_gmx_txx_stat2_s cn52xx;
924 +       struct cvmx_agl_gmx_txx_stat2_s cn52xxp1;
925 +       struct cvmx_agl_gmx_txx_stat2_s cn56xx;
926 +       struct cvmx_agl_gmx_txx_stat2_s cn56xxp1;
927 +};
928 +
929 +union cvmx_agl_gmx_txx_stat3 {
930 +       uint64_t u64;
931 +       struct cvmx_agl_gmx_txx_stat3_s {
932 +               uint64_t reserved_32_63:32;
933 +               uint64_t pkts:32;
934 +       } s;
935 +       struct cvmx_agl_gmx_txx_stat3_s cn52xx;
936 +       struct cvmx_agl_gmx_txx_stat3_s cn52xxp1;
937 +       struct cvmx_agl_gmx_txx_stat3_s cn56xx;
938 +       struct cvmx_agl_gmx_txx_stat3_s cn56xxp1;
939 +};
940 +
941 +union cvmx_agl_gmx_txx_stat4 {
942 +       uint64_t u64;
943 +       struct cvmx_agl_gmx_txx_stat4_s {
944 +               uint64_t hist1:32;
945 +               uint64_t hist0:32;
946 +       } s;
947 +       struct cvmx_agl_gmx_txx_stat4_s cn52xx;
948 +       struct cvmx_agl_gmx_txx_stat4_s cn52xxp1;
949 +       struct cvmx_agl_gmx_txx_stat4_s cn56xx;
950 +       struct cvmx_agl_gmx_txx_stat4_s cn56xxp1;
951 +};
952 +
953 +union cvmx_agl_gmx_txx_stat5 {
954 +       uint64_t u64;
955 +       struct cvmx_agl_gmx_txx_stat5_s {
956 +               uint64_t hist3:32;
957 +               uint64_t hist2:32;
958 +       } s;
959 +       struct cvmx_agl_gmx_txx_stat5_s cn52xx;
960 +       struct cvmx_agl_gmx_txx_stat5_s cn52xxp1;
961 +       struct cvmx_agl_gmx_txx_stat5_s cn56xx;
962 +       struct cvmx_agl_gmx_txx_stat5_s cn56xxp1;
963 +};
964 +
965 +union cvmx_agl_gmx_txx_stat6 {
966 +       uint64_t u64;
967 +       struct cvmx_agl_gmx_txx_stat6_s {
968 +               uint64_t hist5:32;
969 +               uint64_t hist4:32;
970 +       } s;
971 +       struct cvmx_agl_gmx_txx_stat6_s cn52xx;
972 +       struct cvmx_agl_gmx_txx_stat6_s cn52xxp1;
973 +       struct cvmx_agl_gmx_txx_stat6_s cn56xx;
974 +       struct cvmx_agl_gmx_txx_stat6_s cn56xxp1;
975 +};
976 +
977 +union cvmx_agl_gmx_txx_stat7 {
978 +       uint64_t u64;
979 +       struct cvmx_agl_gmx_txx_stat7_s {
980 +               uint64_t hist7:32;
981 +               uint64_t hist6:32;
982 +       } s;
983 +       struct cvmx_agl_gmx_txx_stat7_s cn52xx;
984 +       struct cvmx_agl_gmx_txx_stat7_s cn52xxp1;
985 +       struct cvmx_agl_gmx_txx_stat7_s cn56xx;
986 +       struct cvmx_agl_gmx_txx_stat7_s cn56xxp1;
987 +};
988 +
989 +union cvmx_agl_gmx_txx_stat8 {
990 +       uint64_t u64;
991 +       struct cvmx_agl_gmx_txx_stat8_s {
992 +               uint64_t mcst:32;
993 +               uint64_t bcst:32;
994 +       } s;
995 +       struct cvmx_agl_gmx_txx_stat8_s cn52xx;
996 +       struct cvmx_agl_gmx_txx_stat8_s cn52xxp1;
997 +       struct cvmx_agl_gmx_txx_stat8_s cn56xx;
998 +       struct cvmx_agl_gmx_txx_stat8_s cn56xxp1;
999 +};
1000 +
1001 +union cvmx_agl_gmx_txx_stat9 {
1002 +       uint64_t u64;
1003 +       struct cvmx_agl_gmx_txx_stat9_s {
1004 +               uint64_t undflw:32;
1005 +               uint64_t ctl:32;
1006 +       } s;
1007 +       struct cvmx_agl_gmx_txx_stat9_s cn52xx;
1008 +       struct cvmx_agl_gmx_txx_stat9_s cn52xxp1;
1009 +       struct cvmx_agl_gmx_txx_stat9_s cn56xx;
1010 +       struct cvmx_agl_gmx_txx_stat9_s cn56xxp1;
1011 +};
1012 +
1013 +union cvmx_agl_gmx_txx_stats_ctl {
1014 +       uint64_t u64;
1015 +       struct cvmx_agl_gmx_txx_stats_ctl_s {
1016 +               uint64_t reserved_1_63:63;
1017 +               uint64_t rd_clr:1;
1018 +       } s;
1019 +       struct cvmx_agl_gmx_txx_stats_ctl_s cn52xx;
1020 +       struct cvmx_agl_gmx_txx_stats_ctl_s cn52xxp1;
1021 +       struct cvmx_agl_gmx_txx_stats_ctl_s cn56xx;
1022 +       struct cvmx_agl_gmx_txx_stats_ctl_s cn56xxp1;
1023 +};
1024 +
1025 +union cvmx_agl_gmx_txx_thresh {
1026 +       uint64_t u64;
1027 +       struct cvmx_agl_gmx_txx_thresh_s {
1028 +               uint64_t reserved_6_63:58;
1029 +               uint64_t cnt:6;
1030 +       } s;
1031 +       struct cvmx_agl_gmx_txx_thresh_s cn52xx;
1032 +       struct cvmx_agl_gmx_txx_thresh_s cn52xxp1;
1033 +       struct cvmx_agl_gmx_txx_thresh_s cn56xx;
1034 +       struct cvmx_agl_gmx_txx_thresh_s cn56xxp1;
1035 +};
1036 +
1037 +union cvmx_agl_gmx_tx_bp {
1038 +       uint64_t u64;
1039 +       struct cvmx_agl_gmx_tx_bp_s {
1040 +               uint64_t reserved_2_63:62;
1041 +               uint64_t bp:2;
1042 +       } s;
1043 +       struct cvmx_agl_gmx_tx_bp_s cn52xx;
1044 +       struct cvmx_agl_gmx_tx_bp_s cn52xxp1;
1045 +       struct cvmx_agl_gmx_tx_bp_cn56xx {
1046 +               uint64_t reserved_1_63:63;
1047 +               uint64_t bp:1;
1048 +       } cn56xx;
1049 +       struct cvmx_agl_gmx_tx_bp_cn56xx cn56xxp1;
1050 +};
1051 +
1052 +union cvmx_agl_gmx_tx_col_attempt {
1053 +       uint64_t u64;
1054 +       struct cvmx_agl_gmx_tx_col_attempt_s {
1055 +               uint64_t reserved_5_63:59;
1056 +               uint64_t limit:5;
1057 +       } s;
1058 +       struct cvmx_agl_gmx_tx_col_attempt_s cn52xx;
1059 +       struct cvmx_agl_gmx_tx_col_attempt_s cn52xxp1;
1060 +       struct cvmx_agl_gmx_tx_col_attempt_s cn56xx;
1061 +       struct cvmx_agl_gmx_tx_col_attempt_s cn56xxp1;
1062 +};
1063 +
1064 +union cvmx_agl_gmx_tx_ifg {
1065 +       uint64_t u64;
1066 +       struct cvmx_agl_gmx_tx_ifg_s {
1067 +               uint64_t reserved_8_63:56;
1068 +               uint64_t ifg2:4;
1069 +               uint64_t ifg1:4;
1070 +       } s;
1071 +       struct cvmx_agl_gmx_tx_ifg_s cn52xx;
1072 +       struct cvmx_agl_gmx_tx_ifg_s cn52xxp1;
1073 +       struct cvmx_agl_gmx_tx_ifg_s cn56xx;
1074 +       struct cvmx_agl_gmx_tx_ifg_s cn56xxp1;
1075 +};
1076 +
1077 +union cvmx_agl_gmx_tx_int_en {
1078 +       uint64_t u64;
1079 +       struct cvmx_agl_gmx_tx_int_en_s {
1080 +               uint64_t reserved_18_63:46;
1081 +               uint64_t late_col:2;
1082 +               uint64_t reserved_14_15:2;
1083 +               uint64_t xsdef:2;
1084 +               uint64_t reserved_10_11:2;
1085 +               uint64_t xscol:2;
1086 +               uint64_t reserved_4_7:4;
1087 +               uint64_t undflw:2;
1088 +               uint64_t reserved_1_1:1;
1089 +               uint64_t pko_nxa:1;
1090 +       } s;
1091 +       struct cvmx_agl_gmx_tx_int_en_s cn52xx;
1092 +       struct cvmx_agl_gmx_tx_int_en_s cn52xxp1;
1093 +       struct cvmx_agl_gmx_tx_int_en_cn56xx {
1094 +               uint64_t reserved_17_63:47;
1095 +               uint64_t late_col:1;
1096 +               uint64_t reserved_13_15:3;
1097 +               uint64_t xsdef:1;
1098 +               uint64_t reserved_9_11:3;
1099 +               uint64_t xscol:1;
1100 +               uint64_t reserved_3_7:5;
1101 +               uint64_t undflw:1;
1102 +               uint64_t reserved_1_1:1;
1103 +               uint64_t pko_nxa:1;
1104 +       } cn56xx;
1105 +       struct cvmx_agl_gmx_tx_int_en_cn56xx cn56xxp1;
1106 +};
1107 +
1108 +union cvmx_agl_gmx_tx_int_reg {
1109 +       uint64_t u64;
1110 +       struct cvmx_agl_gmx_tx_int_reg_s {
1111 +               uint64_t reserved_18_63:46;
1112 +               uint64_t late_col:2;
1113 +               uint64_t reserved_14_15:2;
1114 +               uint64_t xsdef:2;
1115 +               uint64_t reserved_10_11:2;
1116 +               uint64_t xscol:2;
1117 +               uint64_t reserved_4_7:4;
1118 +               uint64_t undflw:2;
1119 +               uint64_t reserved_1_1:1;
1120 +               uint64_t pko_nxa:1;
1121 +       } s;
1122 +       struct cvmx_agl_gmx_tx_int_reg_s cn52xx;
1123 +       struct cvmx_agl_gmx_tx_int_reg_s cn52xxp1;
1124 +       struct cvmx_agl_gmx_tx_int_reg_cn56xx {
1125 +               uint64_t reserved_17_63:47;
1126 +               uint64_t late_col:1;
1127 +               uint64_t reserved_13_15:3;
1128 +               uint64_t xsdef:1;
1129 +               uint64_t reserved_9_11:3;
1130 +               uint64_t xscol:1;
1131 +               uint64_t reserved_3_7:5;
1132 +               uint64_t undflw:1;
1133 +               uint64_t reserved_1_1:1;
1134 +               uint64_t pko_nxa:1;
1135 +       } cn56xx;
1136 +       struct cvmx_agl_gmx_tx_int_reg_cn56xx cn56xxp1;
1137 +};
1138 +
1139 +union cvmx_agl_gmx_tx_jam {
1140 +       uint64_t u64;
1141 +       struct cvmx_agl_gmx_tx_jam_s {
1142 +               uint64_t reserved_8_63:56;
1143 +               uint64_t jam:8;
1144 +       } s;
1145 +       struct cvmx_agl_gmx_tx_jam_s cn52xx;
1146 +       struct cvmx_agl_gmx_tx_jam_s cn52xxp1;
1147 +       struct cvmx_agl_gmx_tx_jam_s cn56xx;
1148 +       struct cvmx_agl_gmx_tx_jam_s cn56xxp1;
1149 +};
1150 +
1151 +union cvmx_agl_gmx_tx_lfsr {
1152 +       uint64_t u64;
1153 +       struct cvmx_agl_gmx_tx_lfsr_s {
1154 +               uint64_t reserved_16_63:48;
1155 +               uint64_t lfsr:16;
1156 +       } s;
1157 +       struct cvmx_agl_gmx_tx_lfsr_s cn52xx;
1158 +       struct cvmx_agl_gmx_tx_lfsr_s cn52xxp1;
1159 +       struct cvmx_agl_gmx_tx_lfsr_s cn56xx;
1160 +       struct cvmx_agl_gmx_tx_lfsr_s cn56xxp1;
1161 +};
1162 +
1163 +union cvmx_agl_gmx_tx_ovr_bp {
1164 +       uint64_t u64;
1165 +       struct cvmx_agl_gmx_tx_ovr_bp_s {
1166 +               uint64_t reserved_10_63:54;
1167 +               uint64_t en:2;
1168 +               uint64_t reserved_6_7:2;
1169 +               uint64_t bp:2;
1170 +               uint64_t reserved_2_3:2;
1171 +               uint64_t ign_full:2;
1172 +       } s;
1173 +       struct cvmx_agl_gmx_tx_ovr_bp_s cn52xx;
1174 +       struct cvmx_agl_gmx_tx_ovr_bp_s cn52xxp1;
1175 +       struct cvmx_agl_gmx_tx_ovr_bp_cn56xx {
1176 +               uint64_t reserved_9_63:55;
1177 +               uint64_t en:1;
1178 +               uint64_t reserved_5_7:3;
1179 +               uint64_t bp:1;
1180 +               uint64_t reserved_1_3:3;
1181 +               uint64_t ign_full:1;
1182 +       } cn56xx;
1183 +       struct cvmx_agl_gmx_tx_ovr_bp_cn56xx cn56xxp1;
1184 +};
1185 +
1186 +union cvmx_agl_gmx_tx_pause_pkt_dmac {
1187 +       uint64_t u64;
1188 +       struct cvmx_agl_gmx_tx_pause_pkt_dmac_s {
1189 +               uint64_t reserved_48_63:16;
1190 +               uint64_t dmac:48;
1191 +       } s;
1192 +       struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xx;
1193 +       struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xxp1;
1194 +       struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xx;
1195 +       struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xxp1;
1196 +};
1197 +
1198 +union cvmx_agl_gmx_tx_pause_pkt_type {
1199 +       uint64_t u64;
1200 +       struct cvmx_agl_gmx_tx_pause_pkt_type_s {
1201 +               uint64_t reserved_16_63:48;
1202 +               uint64_t type:16;
1203 +       } s;
1204 +       struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xx;
1205 +       struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xxp1;
1206 +       struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xx;
1207 +       struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xxp1;
1208 +};
1209 +
1210 +#endif
1211 --- /dev/null
1212 +++ b/arch/mips/include/asm/octeon/cvmx-mixx-defs.h
1213 @@ -0,0 +1,248 @@
1214 +/***********************license start***************
1215 + * Author: Cavium Networks
1216 + *
1217 + * Contact: support@caviumnetworks.com
1218 + * This file is part of the OCTEON SDK
1219 + *
1220 + * Copyright (c) 2003-2008 Cavium Networks
1221 + *
1222 + * This file is free software; you can redistribute it and/or modify
1223 + * it under the terms of the GNU General Public License, Version 2, as
1224 + * published by the Free Software Foundation.
1225 + *
1226 + * This file is distributed in the hope that it will be useful, but
1227 + * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
1228 + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
1229 + * NONINFRINGEMENT.  See the GNU General Public License for more
1230 + * details.
1231 + *
1232 + * You should have received a copy of the GNU General Public License
1233 + * along with this file; if not, write to the Free Software
1234 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1235 + * or visit http://www.gnu.org/licenses/.
1236 + *
1237 + * This file may also be available under a different license from Cavium.
1238 + * Contact Cavium Networks for more information
1239 + ***********************license end**************************************/
1240 +
1241 +#ifndef __CVMX_MIXX_DEFS_H__
1242 +#define __CVMX_MIXX_DEFS_H__
1243 +
1244 +#define CVMX_MIXX_BIST(offset) \
1245 +        CVMX_ADD_IO_SEG(0x0001070000100078ull + (((offset) & 1) * 2048))
1246 +#define CVMX_MIXX_CTL(offset) \
1247 +        CVMX_ADD_IO_SEG(0x0001070000100020ull + (((offset) & 1) * 2048))
1248 +#define CVMX_MIXX_INTENA(offset) \
1249 +        CVMX_ADD_IO_SEG(0x0001070000100050ull + (((offset) & 1) * 2048))
1250 +#define CVMX_MIXX_IRCNT(offset) \
1251 +        CVMX_ADD_IO_SEG(0x0001070000100030ull + (((offset) & 1) * 2048))
1252 +#define CVMX_MIXX_IRHWM(offset) \
1253 +        CVMX_ADD_IO_SEG(0x0001070000100028ull + (((offset) & 1) * 2048))
1254 +#define CVMX_MIXX_IRING1(offset) \
1255 +        CVMX_ADD_IO_SEG(0x0001070000100010ull + (((offset) & 1) * 2048))
1256 +#define CVMX_MIXX_IRING2(offset) \
1257 +        CVMX_ADD_IO_SEG(0x0001070000100018ull + (((offset) & 1) * 2048))
1258 +#define CVMX_MIXX_ISR(offset) \
1259 +        CVMX_ADD_IO_SEG(0x0001070000100048ull + (((offset) & 1) * 2048))
1260 +#define CVMX_MIXX_ORCNT(offset) \
1261 +        CVMX_ADD_IO_SEG(0x0001070000100040ull + (((offset) & 1) * 2048))
1262 +#define CVMX_MIXX_ORHWM(offset) \
1263 +        CVMX_ADD_IO_SEG(0x0001070000100038ull + (((offset) & 1) * 2048))
1264 +#define CVMX_MIXX_ORING1(offset) \
1265 +        CVMX_ADD_IO_SEG(0x0001070000100000ull + (((offset) & 1) * 2048))
1266 +#define CVMX_MIXX_ORING2(offset) \
1267 +        CVMX_ADD_IO_SEG(0x0001070000100008ull + (((offset) & 1) * 2048))
1268 +#define CVMX_MIXX_REMCNT(offset) \
1269 +        CVMX_ADD_IO_SEG(0x0001070000100058ull + (((offset) & 1) * 2048))
1270 +
1271 +union cvmx_mixx_bist {
1272 +       uint64_t u64;
1273 +       struct cvmx_mixx_bist_s {
1274 +               uint64_t reserved_4_63:60;
1275 +               uint64_t mrqdat:1;
1276 +               uint64_t ipfdat:1;
1277 +               uint64_t irfdat:1;
1278 +               uint64_t orfdat:1;
1279 +       } s;
1280 +       struct cvmx_mixx_bist_s cn52xx;
1281 +       struct cvmx_mixx_bist_s cn52xxp1;
1282 +       struct cvmx_mixx_bist_s cn56xx;
1283 +       struct cvmx_mixx_bist_s cn56xxp1;
1284 +};
1285 +
1286 +union cvmx_mixx_ctl {
1287 +       uint64_t u64;
1288 +       struct cvmx_mixx_ctl_s {
1289 +               uint64_t reserved_8_63:56;
1290 +               uint64_t crc_strip:1;
1291 +               uint64_t busy:1;
1292 +               uint64_t en:1;
1293 +               uint64_t reset:1;
1294 +               uint64_t lendian:1;
1295 +               uint64_t nbtarb:1;
1296 +               uint64_t mrq_hwm:2;
1297 +       } s;
1298 +       struct cvmx_mixx_ctl_s cn52xx;
1299 +       struct cvmx_mixx_ctl_s cn52xxp1;
1300 +       struct cvmx_mixx_ctl_s cn56xx;
1301 +       struct cvmx_mixx_ctl_s cn56xxp1;
1302 +};
1303 +
1304 +union cvmx_mixx_intena {
1305 +       uint64_t u64;
1306 +       struct cvmx_mixx_intena_s {
1307 +               uint64_t reserved_7_63:57;
1308 +               uint64_t orunena:1;
1309 +               uint64_t irunena:1;
1310 +               uint64_t data_drpena:1;
1311 +               uint64_t ithena:1;
1312 +               uint64_t othena:1;
1313 +               uint64_t ivfena:1;
1314 +               uint64_t ovfena:1;
1315 +       } s;
1316 +       struct cvmx_mixx_intena_s cn52xx;
1317 +       struct cvmx_mixx_intena_s cn52xxp1;
1318 +       struct cvmx_mixx_intena_s cn56xx;
1319 +       struct cvmx_mixx_intena_s cn56xxp1;
1320 +};
1321 +
1322 +union cvmx_mixx_ircnt {
1323 +       uint64_t u64;
1324 +       struct cvmx_mixx_ircnt_s {
1325 +               uint64_t reserved_20_63:44;
1326 +               uint64_t ircnt:20;
1327 +       } s;
1328 +       struct cvmx_mixx_ircnt_s cn52xx;
1329 +       struct cvmx_mixx_ircnt_s cn52xxp1;
1330 +       struct cvmx_mixx_ircnt_s cn56xx;
1331 +       struct cvmx_mixx_ircnt_s cn56xxp1;
1332 +};
1333 +
1334 +union cvmx_mixx_irhwm {
1335 +       uint64_t u64;
1336 +       struct cvmx_mixx_irhwm_s {
1337 +               uint64_t reserved_40_63:24;
1338 +               uint64_t ibplwm:20;
1339 +               uint64_t irhwm:20;
1340 +       } s;
1341 +       struct cvmx_mixx_irhwm_s cn52xx;
1342 +       struct cvmx_mixx_irhwm_s cn52xxp1;
1343 +       struct cvmx_mixx_irhwm_s cn56xx;
1344 +       struct cvmx_mixx_irhwm_s cn56xxp1;
1345 +};
1346 +
1347 +union cvmx_mixx_iring1 {
1348 +       uint64_t u64;
1349 +       struct cvmx_mixx_iring1_s {
1350 +               uint64_t reserved_60_63:4;
1351 +               uint64_t isize:20;
1352 +               uint64_t reserved_36_39:4;
1353 +               uint64_t ibase:33;
1354 +               uint64_t reserved_0_2:3;
1355 +       } s;
1356 +       struct cvmx_mixx_iring1_s cn52xx;
1357 +       struct cvmx_mixx_iring1_s cn52xxp1;
1358 +       struct cvmx_mixx_iring1_s cn56xx;
1359 +       struct cvmx_mixx_iring1_s cn56xxp1;
1360 +};
1361 +
1362 +union cvmx_mixx_iring2 {
1363 +       uint64_t u64;
1364 +       struct cvmx_mixx_iring2_s {
1365 +               uint64_t reserved_52_63:12;
1366 +               uint64_t itlptr:20;
1367 +               uint64_t reserved_20_31:12;
1368 +               uint64_t idbell:20;
1369 +       } s;
1370 +       struct cvmx_mixx_iring2_s cn52xx;
1371 +       struct cvmx_mixx_iring2_s cn52xxp1;
1372 +       struct cvmx_mixx_iring2_s cn56xx;
1373 +       struct cvmx_mixx_iring2_s cn56xxp1;
1374 +};
1375 +
1376 +union cvmx_mixx_isr {
1377 +       uint64_t u64;
1378 +       struct cvmx_mixx_isr_s {
1379 +               uint64_t reserved_7_63:57;
1380 +               uint64_t orun:1;
1381 +               uint64_t irun:1;
1382 +               uint64_t data_drp:1;
1383 +               uint64_t irthresh:1;
1384 +               uint64_t orthresh:1;
1385 +               uint64_t idblovf:1;
1386 +               uint64_t odblovf:1;
1387 +       } s;
1388 +       struct cvmx_mixx_isr_s cn52xx;
1389 +       struct cvmx_mixx_isr_s cn52xxp1;
1390 +       struct cvmx_mixx_isr_s cn56xx;
1391 +       struct cvmx_mixx_isr_s cn56xxp1;
1392 +};
1393 +
1394 +union cvmx_mixx_orcnt {
1395 +       uint64_t u64;
1396 +       struct cvmx_mixx_orcnt_s {
1397 +               uint64_t reserved_20_63:44;
1398 +               uint64_t orcnt:20;
1399 +       } s;
1400 +       struct cvmx_mixx_orcnt_s cn52xx;
1401 +       struct cvmx_mixx_orcnt_s cn52xxp1;
1402 +       struct cvmx_mixx_orcnt_s cn56xx;
1403 +       struct cvmx_mixx_orcnt_s cn56xxp1;
1404 +};
1405 +
1406 +union cvmx_mixx_orhwm {
1407 +       uint64_t u64;
1408 +       struct cvmx_mixx_orhwm_s {
1409 +               uint64_t reserved_20_63:44;
1410 +               uint64_t orhwm:20;
1411 +       } s;
1412 +       struct cvmx_mixx_orhwm_s cn52xx;
1413 +       struct cvmx_mixx_orhwm_s cn52xxp1;
1414 +       struct cvmx_mixx_orhwm_s cn56xx;
1415 +       struct cvmx_mixx_orhwm_s cn56xxp1;
1416 +};
1417 +
1418 +union cvmx_mixx_oring1 {
1419 +       uint64_t u64;
1420 +       struct cvmx_mixx_oring1_s {
1421 +               uint64_t reserved_60_63:4;
1422 +               uint64_t osize:20;
1423 +               uint64_t reserved_36_39:4;
1424 +               uint64_t obase:33;
1425 +               uint64_t reserved_0_2:3;
1426 +       } s;
1427 +       struct cvmx_mixx_oring1_s cn52xx;
1428 +       struct cvmx_mixx_oring1_s cn52xxp1;
1429 +       struct cvmx_mixx_oring1_s cn56xx;
1430 +       struct cvmx_mixx_oring1_s cn56xxp1;
1431 +};
1432 +
1433 +union cvmx_mixx_oring2 {
1434 +       uint64_t u64;
1435 +       struct cvmx_mixx_oring2_s {
1436 +               uint64_t reserved_52_63:12;
1437 +               uint64_t otlptr:20;
1438 +               uint64_t reserved_20_31:12;
1439 +               uint64_t odbell:20;
1440 +       } s;
1441 +       struct cvmx_mixx_oring2_s cn52xx;
1442 +       struct cvmx_mixx_oring2_s cn52xxp1;
1443 +       struct cvmx_mixx_oring2_s cn56xx;
1444 +       struct cvmx_mixx_oring2_s cn56xxp1;
1445 +};
1446 +
1447 +union cvmx_mixx_remcnt {
1448 +       uint64_t u64;
1449 +       struct cvmx_mixx_remcnt_s {
1450 +               uint64_t reserved_52_63:12;
1451 +               uint64_t iremcnt:20;
1452 +               uint64_t reserved_20_31:12;
1453 +               uint64_t oremcnt:20;
1454 +       } s;
1455 +       struct cvmx_mixx_remcnt_s cn52xx;
1456 +       struct cvmx_mixx_remcnt_s cn52xxp1;
1457 +       struct cvmx_mixx_remcnt_s cn56xx;
1458 +       struct cvmx_mixx_remcnt_s cn56xxp1;
1459 +};
1460 +
1461 +#endif
1462 --- /dev/null
1463 +++ b/arch/mips/include/asm/octeon/cvmx-smix-defs.h
1464 @@ -0,0 +1,178 @@
1465 +/***********************license start***************
1466 + * Author: Cavium Networks
1467 + *
1468 + * Contact: support@caviumnetworks.com
1469 + * This file is part of the OCTEON SDK
1470 + *
1471 + * Copyright (c) 2003-2008 Cavium Networks
1472 + *
1473 + * This file is free software; you can redistribute it and/or modify
1474 + * it under the terms of the GNU General Public License, Version 2, as
1475 + * published by the Free Software Foundation.
1476 + *
1477 + * This file is distributed in the hope that it will be useful, but
1478 + * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
1479 + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
1480 + * NONINFRINGEMENT.  See the GNU General Public License for more
1481 + * details.
1482 + *
1483 + * You should have received a copy of the GNU General Public License
1484 + * along with this file; if not, write to the Free Software
1485 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1486 + * or visit http://www.gnu.org/licenses/.
1487 + *
1488 + * This file may also be available under a different license from Cavium.
1489 + * Contact Cavium Networks for more information
1490 + ***********************license end**************************************/
1491 +
1492 +#ifndef __CVMX_SMIX_DEFS_H__
1493 +#define __CVMX_SMIX_DEFS_H__
1494 +
1495 +#define CVMX_SMIX_CLK(offset) \
1496 +        CVMX_ADD_IO_SEG(0x0001180000001818ull + (((offset) & 1) * 256))
1497 +#define CVMX_SMIX_CMD(offset) \
1498 +        CVMX_ADD_IO_SEG(0x0001180000001800ull + (((offset) & 1) * 256))
1499 +#define CVMX_SMIX_EN(offset) \
1500 +        CVMX_ADD_IO_SEG(0x0001180000001820ull + (((offset) & 1) * 256))
1501 +#define CVMX_SMIX_RD_DAT(offset) \
1502 +        CVMX_ADD_IO_SEG(0x0001180000001810ull + (((offset) & 1) * 256))
1503 +#define CVMX_SMIX_WR_DAT(offset) \
1504 +        CVMX_ADD_IO_SEG(0x0001180000001808ull + (((offset) & 1) * 256))
1505 +
1506 +union cvmx_smix_clk {
1507 +       uint64_t u64;
1508 +       struct cvmx_smix_clk_s {
1509 +               uint64_t reserved_25_63:39;
1510 +               uint64_t mode:1;
1511 +               uint64_t reserved_21_23:3;
1512 +               uint64_t sample_hi:5;
1513 +               uint64_t sample_mode:1;
1514 +               uint64_t reserved_14_14:1;
1515 +               uint64_t clk_idle:1;
1516 +               uint64_t preamble:1;
1517 +               uint64_t sample:4;
1518 +               uint64_t phase:8;
1519 +       } s;
1520 +       struct cvmx_smix_clk_cn30xx {
1521 +               uint64_t reserved_21_63:43;
1522 +               uint64_t sample_hi:5;
1523 +               uint64_t reserved_14_15:2;
1524 +               uint64_t clk_idle:1;
1525 +               uint64_t preamble:1;
1526 +               uint64_t sample:4;
1527 +               uint64_t phase:8;
1528 +       } cn30xx;
1529 +       struct cvmx_smix_clk_cn30xx cn31xx;
1530 +       struct cvmx_smix_clk_cn30xx cn38xx;
1531 +       struct cvmx_smix_clk_cn30xx cn38xxp2;
1532 +       struct cvmx_smix_clk_cn50xx {
1533 +               uint64_t reserved_25_63:39;
1534 +               uint64_t mode:1;
1535 +               uint64_t reserved_21_23:3;
1536 +               uint64_t sample_hi:5;
1537 +               uint64_t reserved_14_15:2;
1538 +               uint64_t clk_idle:1;
1539 +               uint64_t preamble:1;
1540 +               uint64_t sample:4;
1541 +               uint64_t phase:8;
1542 +       } cn50xx;
1543 +       struct cvmx_smix_clk_s cn52xx;
1544 +       struct cvmx_smix_clk_cn50xx cn52xxp1;
1545 +       struct cvmx_smix_clk_s cn56xx;
1546 +       struct cvmx_smix_clk_cn50xx cn56xxp1;
1547 +       struct cvmx_smix_clk_cn30xx cn58xx;
1548 +       struct cvmx_smix_clk_cn30xx cn58xxp1;
1549 +};
1550 +
1551 +union cvmx_smix_cmd {
1552 +       uint64_t u64;
1553 +       struct cvmx_smix_cmd_s {
1554 +               uint64_t reserved_18_63:46;
1555 +               uint64_t phy_op:2;
1556 +               uint64_t reserved_13_15:3;
1557 +               uint64_t phy_adr:5;
1558 +               uint64_t reserved_5_7:3;
1559 +               uint64_t reg_adr:5;
1560 +       } s;
1561 +       struct cvmx_smix_cmd_cn30xx {
1562 +               uint64_t reserved_17_63:47;
1563 +               uint64_t phy_op:1;
1564 +               uint64_t reserved_13_15:3;
1565 +               uint64_t phy_adr:5;
1566 +               uint64_t reserved_5_7:3;
1567 +               uint64_t reg_adr:5;
1568 +       } cn30xx;
1569 +       struct cvmx_smix_cmd_cn30xx cn31xx;
1570 +       struct cvmx_smix_cmd_cn30xx cn38xx;
1571 +       struct cvmx_smix_cmd_cn30xx cn38xxp2;
1572 +       struct cvmx_smix_cmd_s cn50xx;
1573 +       struct cvmx_smix_cmd_s cn52xx;
1574 +       struct cvmx_smix_cmd_s cn52xxp1;
1575 +       struct cvmx_smix_cmd_s cn56xx;
1576 +       struct cvmx_smix_cmd_s cn56xxp1;
1577 +       struct cvmx_smix_cmd_cn30xx cn58xx;
1578 +       struct cvmx_smix_cmd_cn30xx cn58xxp1;
1579 +};
1580 +
1581 +union cvmx_smix_en {
1582 +       uint64_t u64;
1583 +       struct cvmx_smix_en_s {
1584 +               uint64_t reserved_1_63:63;
1585 +               uint64_t en:1;
1586 +       } s;
1587 +       struct cvmx_smix_en_s cn30xx;
1588 +       struct cvmx_smix_en_s cn31xx;
1589 +       struct cvmx_smix_en_s cn38xx;
1590 +       struct cvmx_smix_en_s cn38xxp2;
1591 +       struct cvmx_smix_en_s cn50xx;
1592 +       struct cvmx_smix_en_s cn52xx;
1593 +       struct cvmx_smix_en_s cn52xxp1;
1594 +       struct cvmx_smix_en_s cn56xx;
1595 +       struct cvmx_smix_en_s cn56xxp1;
1596 +       struct cvmx_smix_en_s cn58xx;
1597 +       struct cvmx_smix_en_s cn58xxp1;
1598 +};
1599 +
1600 +union cvmx_smix_rd_dat {
1601 +       uint64_t u64;
1602 +       struct cvmx_smix_rd_dat_s {
1603 +               uint64_t reserved_18_63:46;
1604 +               uint64_t pending:1;
1605 +               uint64_t val:1;
1606 +               uint64_t dat:16;
1607 +       } s;
1608 +       struct cvmx_smix_rd_dat_s cn30xx;
1609 +       struct cvmx_smix_rd_dat_s cn31xx;
1610 +       struct cvmx_smix_rd_dat_s cn38xx;
1611 +       struct cvmx_smix_rd_dat_s cn38xxp2;
1612 +       struct cvmx_smix_rd_dat_s cn50xx;
1613 +       struct cvmx_smix_rd_dat_s cn52xx;
1614 +       struct cvmx_smix_rd_dat_s cn52xxp1;
1615 +       struct cvmx_smix_rd_dat_s cn56xx;
1616 +       struct cvmx_smix_rd_dat_s cn56xxp1;
1617 +       struct cvmx_smix_rd_dat_s cn58xx;
1618 +       struct cvmx_smix_rd_dat_s cn58xxp1;
1619 +};
1620 +
1621 +union cvmx_smix_wr_dat {
1622 +       uint64_t u64;
1623 +       struct cvmx_smix_wr_dat_s {
1624 +               uint64_t reserved_18_63:46;
1625 +               uint64_t pending:1;
1626 +               uint64_t val:1;
1627 +               uint64_t dat:16;
1628 +       } s;
1629 +       struct cvmx_smix_wr_dat_s cn30xx;
1630 +       struct cvmx_smix_wr_dat_s cn31xx;
1631 +       struct cvmx_smix_wr_dat_s cn38xx;
1632 +       struct cvmx_smix_wr_dat_s cn38xxp2;
1633 +       struct cvmx_smix_wr_dat_s cn50xx;
1634 +       struct cvmx_smix_wr_dat_s cn52xx;
1635 +       struct cvmx_smix_wr_dat_s cn52xxp1;
1636 +       struct cvmx_smix_wr_dat_s cn56xx;
1637 +       struct cvmx_smix_wr_dat_s cn56xxp1;
1638 +       struct cvmx_smix_wr_dat_s cn58xx;
1639 +       struct cvmx_smix_wr_dat_s cn58xxp1;
1640 +};
1641 +
1642 +#endif