• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/mips/include/asm/octeon/
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-2008 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_L2D_DEFS_H__
29#define __CVMX_L2D_DEFS_H__
30
31#define CVMX_L2D_BST0 \
32	 CVMX_ADD_IO_SEG(0x0001180080000780ull)
33#define CVMX_L2D_BST1 \
34	 CVMX_ADD_IO_SEG(0x0001180080000788ull)
35#define CVMX_L2D_BST2 \
36	 CVMX_ADD_IO_SEG(0x0001180080000790ull)
37#define CVMX_L2D_BST3 \
38	 CVMX_ADD_IO_SEG(0x0001180080000798ull)
39#define CVMX_L2D_ERR \
40	 CVMX_ADD_IO_SEG(0x0001180080000010ull)
41#define CVMX_L2D_FADR \
42	 CVMX_ADD_IO_SEG(0x0001180080000018ull)
43#define CVMX_L2D_FSYN0 \
44	 CVMX_ADD_IO_SEG(0x0001180080000020ull)
45#define CVMX_L2D_FSYN1 \
46	 CVMX_ADD_IO_SEG(0x0001180080000028ull)
47#define CVMX_L2D_FUS0 \
48	 CVMX_ADD_IO_SEG(0x00011800800007A0ull)
49#define CVMX_L2D_FUS1 \
50	 CVMX_ADD_IO_SEG(0x00011800800007A8ull)
51#define CVMX_L2D_FUS2 \
52	 CVMX_ADD_IO_SEG(0x00011800800007B0ull)
53#define CVMX_L2D_FUS3 \
54	 CVMX_ADD_IO_SEG(0x00011800800007B8ull)
55
56union cvmx_l2d_bst0 {
57	uint64_t u64;
58	struct cvmx_l2d_bst0_s {
59		uint64_t reserved_35_63:29;
60		uint64_t ftl:1;
61		uint64_t q0stat:34;
62	} s;
63	struct cvmx_l2d_bst0_s cn30xx;
64	struct cvmx_l2d_bst0_s cn31xx;
65	struct cvmx_l2d_bst0_s cn38xx;
66	struct cvmx_l2d_bst0_s cn38xxp2;
67	struct cvmx_l2d_bst0_s cn50xx;
68	struct cvmx_l2d_bst0_s cn52xx;
69	struct cvmx_l2d_bst0_s cn52xxp1;
70	struct cvmx_l2d_bst0_s cn56xx;
71	struct cvmx_l2d_bst0_s cn56xxp1;
72	struct cvmx_l2d_bst0_s cn58xx;
73	struct cvmx_l2d_bst0_s cn58xxp1;
74};
75
76union cvmx_l2d_bst1 {
77	uint64_t u64;
78	struct cvmx_l2d_bst1_s {
79		uint64_t reserved_34_63:30;
80		uint64_t q1stat:34;
81	} s;
82	struct cvmx_l2d_bst1_s cn30xx;
83	struct cvmx_l2d_bst1_s cn31xx;
84	struct cvmx_l2d_bst1_s cn38xx;
85	struct cvmx_l2d_bst1_s cn38xxp2;
86	struct cvmx_l2d_bst1_s cn50xx;
87	struct cvmx_l2d_bst1_s cn52xx;
88	struct cvmx_l2d_bst1_s cn52xxp1;
89	struct cvmx_l2d_bst1_s cn56xx;
90	struct cvmx_l2d_bst1_s cn56xxp1;
91	struct cvmx_l2d_bst1_s cn58xx;
92	struct cvmx_l2d_bst1_s cn58xxp1;
93};
94
95union cvmx_l2d_bst2 {
96	uint64_t u64;
97	struct cvmx_l2d_bst2_s {
98		uint64_t reserved_34_63:30;
99		uint64_t q2stat:34;
100	} s;
101	struct cvmx_l2d_bst2_s cn30xx;
102	struct cvmx_l2d_bst2_s cn31xx;
103	struct cvmx_l2d_bst2_s cn38xx;
104	struct cvmx_l2d_bst2_s cn38xxp2;
105	struct cvmx_l2d_bst2_s cn50xx;
106	struct cvmx_l2d_bst2_s cn52xx;
107	struct cvmx_l2d_bst2_s cn52xxp1;
108	struct cvmx_l2d_bst2_s cn56xx;
109	struct cvmx_l2d_bst2_s cn56xxp1;
110	struct cvmx_l2d_bst2_s cn58xx;
111	struct cvmx_l2d_bst2_s cn58xxp1;
112};
113
114union cvmx_l2d_bst3 {
115	uint64_t u64;
116	struct cvmx_l2d_bst3_s {
117		uint64_t reserved_34_63:30;
118		uint64_t q3stat:34;
119	} s;
120	struct cvmx_l2d_bst3_s cn30xx;
121	struct cvmx_l2d_bst3_s cn31xx;
122	struct cvmx_l2d_bst3_s cn38xx;
123	struct cvmx_l2d_bst3_s cn38xxp2;
124	struct cvmx_l2d_bst3_s cn50xx;
125	struct cvmx_l2d_bst3_s cn52xx;
126	struct cvmx_l2d_bst3_s cn52xxp1;
127	struct cvmx_l2d_bst3_s cn56xx;
128	struct cvmx_l2d_bst3_s cn56xxp1;
129	struct cvmx_l2d_bst3_s cn58xx;
130	struct cvmx_l2d_bst3_s cn58xxp1;
131};
132
133union cvmx_l2d_err {
134	uint64_t u64;
135	struct cvmx_l2d_err_s {
136		uint64_t reserved_6_63:58;
137		uint64_t bmhclsel:1;
138		uint64_t ded_err:1;
139		uint64_t sec_err:1;
140		uint64_t ded_intena:1;
141		uint64_t sec_intena:1;
142		uint64_t ecc_ena:1;
143	} s;
144	struct cvmx_l2d_err_s cn30xx;
145	struct cvmx_l2d_err_s cn31xx;
146	struct cvmx_l2d_err_s cn38xx;
147	struct cvmx_l2d_err_s cn38xxp2;
148	struct cvmx_l2d_err_s cn50xx;
149	struct cvmx_l2d_err_s cn52xx;
150	struct cvmx_l2d_err_s cn52xxp1;
151	struct cvmx_l2d_err_s cn56xx;
152	struct cvmx_l2d_err_s cn56xxp1;
153	struct cvmx_l2d_err_s cn58xx;
154	struct cvmx_l2d_err_s cn58xxp1;
155};
156
157union cvmx_l2d_fadr {
158	uint64_t u64;
159	struct cvmx_l2d_fadr_s {
160		uint64_t reserved_19_63:45;
161		uint64_t fadru:1;
162		uint64_t fowmsk:4;
163		uint64_t fset:3;
164		uint64_t fadr:11;
165	} s;
166	struct cvmx_l2d_fadr_cn30xx {
167		uint64_t reserved_18_63:46;
168		uint64_t fowmsk:4;
169		uint64_t reserved_13_13:1;
170		uint64_t fset:2;
171		uint64_t reserved_9_10:2;
172		uint64_t fadr:9;
173	} cn30xx;
174	struct cvmx_l2d_fadr_cn31xx {
175		uint64_t reserved_18_63:46;
176		uint64_t fowmsk:4;
177		uint64_t reserved_13_13:1;
178		uint64_t fset:2;
179		uint64_t reserved_10_10:1;
180		uint64_t fadr:10;
181	} cn31xx;
182	struct cvmx_l2d_fadr_cn38xx {
183		uint64_t reserved_18_63:46;
184		uint64_t fowmsk:4;
185		uint64_t fset:3;
186		uint64_t fadr:11;
187	} cn38xx;
188	struct cvmx_l2d_fadr_cn38xx cn38xxp2;
189	struct cvmx_l2d_fadr_cn50xx {
190		uint64_t reserved_18_63:46;
191		uint64_t fowmsk:4;
192		uint64_t fset:3;
193		uint64_t reserved_8_10:3;
194		uint64_t fadr:8;
195	} cn50xx;
196	struct cvmx_l2d_fadr_cn52xx {
197		uint64_t reserved_18_63:46;
198		uint64_t fowmsk:4;
199		uint64_t fset:3;
200		uint64_t reserved_10_10:1;
201		uint64_t fadr:10;
202	} cn52xx;
203	struct cvmx_l2d_fadr_cn52xx cn52xxp1;
204	struct cvmx_l2d_fadr_s cn56xx;
205	struct cvmx_l2d_fadr_s cn56xxp1;
206	struct cvmx_l2d_fadr_s cn58xx;
207	struct cvmx_l2d_fadr_s cn58xxp1;
208};
209
210union cvmx_l2d_fsyn0 {
211	uint64_t u64;
212	struct cvmx_l2d_fsyn0_s {
213		uint64_t reserved_20_63:44;
214		uint64_t fsyn_ow1:10;
215		uint64_t fsyn_ow0:10;
216	} s;
217	struct cvmx_l2d_fsyn0_s cn30xx;
218	struct cvmx_l2d_fsyn0_s cn31xx;
219	struct cvmx_l2d_fsyn0_s cn38xx;
220	struct cvmx_l2d_fsyn0_s cn38xxp2;
221	struct cvmx_l2d_fsyn0_s cn50xx;
222	struct cvmx_l2d_fsyn0_s cn52xx;
223	struct cvmx_l2d_fsyn0_s cn52xxp1;
224	struct cvmx_l2d_fsyn0_s cn56xx;
225	struct cvmx_l2d_fsyn0_s cn56xxp1;
226	struct cvmx_l2d_fsyn0_s cn58xx;
227	struct cvmx_l2d_fsyn0_s cn58xxp1;
228};
229
230union cvmx_l2d_fsyn1 {
231	uint64_t u64;
232	struct cvmx_l2d_fsyn1_s {
233		uint64_t reserved_20_63:44;
234		uint64_t fsyn_ow3:10;
235		uint64_t fsyn_ow2:10;
236	} s;
237	struct cvmx_l2d_fsyn1_s cn30xx;
238	struct cvmx_l2d_fsyn1_s cn31xx;
239	struct cvmx_l2d_fsyn1_s cn38xx;
240	struct cvmx_l2d_fsyn1_s cn38xxp2;
241	struct cvmx_l2d_fsyn1_s cn50xx;
242	struct cvmx_l2d_fsyn1_s cn52xx;
243	struct cvmx_l2d_fsyn1_s cn52xxp1;
244	struct cvmx_l2d_fsyn1_s cn56xx;
245	struct cvmx_l2d_fsyn1_s cn56xxp1;
246	struct cvmx_l2d_fsyn1_s cn58xx;
247	struct cvmx_l2d_fsyn1_s cn58xxp1;
248};
249
250union cvmx_l2d_fus0 {
251	uint64_t u64;
252	struct cvmx_l2d_fus0_s {
253		uint64_t reserved_34_63:30;
254		uint64_t q0fus:34;
255	} s;
256	struct cvmx_l2d_fus0_s cn30xx;
257	struct cvmx_l2d_fus0_s cn31xx;
258	struct cvmx_l2d_fus0_s cn38xx;
259	struct cvmx_l2d_fus0_s cn38xxp2;
260	struct cvmx_l2d_fus0_s cn50xx;
261	struct cvmx_l2d_fus0_s cn52xx;
262	struct cvmx_l2d_fus0_s cn52xxp1;
263	struct cvmx_l2d_fus0_s cn56xx;
264	struct cvmx_l2d_fus0_s cn56xxp1;
265	struct cvmx_l2d_fus0_s cn58xx;
266	struct cvmx_l2d_fus0_s cn58xxp1;
267};
268
269union cvmx_l2d_fus1 {
270	uint64_t u64;
271	struct cvmx_l2d_fus1_s {
272		uint64_t reserved_34_63:30;
273		uint64_t q1fus:34;
274	} s;
275	struct cvmx_l2d_fus1_s cn30xx;
276	struct cvmx_l2d_fus1_s cn31xx;
277	struct cvmx_l2d_fus1_s cn38xx;
278	struct cvmx_l2d_fus1_s cn38xxp2;
279	struct cvmx_l2d_fus1_s cn50xx;
280	struct cvmx_l2d_fus1_s cn52xx;
281	struct cvmx_l2d_fus1_s cn52xxp1;
282	struct cvmx_l2d_fus1_s cn56xx;
283	struct cvmx_l2d_fus1_s cn56xxp1;
284	struct cvmx_l2d_fus1_s cn58xx;
285	struct cvmx_l2d_fus1_s cn58xxp1;
286};
287
288union cvmx_l2d_fus2 {
289	uint64_t u64;
290	struct cvmx_l2d_fus2_s {
291		uint64_t reserved_34_63:30;
292		uint64_t q2fus:34;
293	} s;
294	struct cvmx_l2d_fus2_s cn30xx;
295	struct cvmx_l2d_fus2_s cn31xx;
296	struct cvmx_l2d_fus2_s cn38xx;
297	struct cvmx_l2d_fus2_s cn38xxp2;
298	struct cvmx_l2d_fus2_s cn50xx;
299	struct cvmx_l2d_fus2_s cn52xx;
300	struct cvmx_l2d_fus2_s cn52xxp1;
301	struct cvmx_l2d_fus2_s cn56xx;
302	struct cvmx_l2d_fus2_s cn56xxp1;
303	struct cvmx_l2d_fus2_s cn58xx;
304	struct cvmx_l2d_fus2_s cn58xxp1;
305};
306
307union cvmx_l2d_fus3 {
308	uint64_t u64;
309	struct cvmx_l2d_fus3_s {
310		uint64_t reserved_40_63:24;
311		uint64_t ema_ctl:3;
312		uint64_t reserved_34_36:3;
313		uint64_t q3fus:34;
314	} s;
315	struct cvmx_l2d_fus3_cn30xx {
316		uint64_t reserved_35_63:29;
317		uint64_t crip_64k:1;
318		uint64_t q3fus:34;
319	} cn30xx;
320	struct cvmx_l2d_fus3_cn31xx {
321		uint64_t reserved_35_63:29;
322		uint64_t crip_128k:1;
323		uint64_t q3fus:34;
324	} cn31xx;
325	struct cvmx_l2d_fus3_cn38xx {
326		uint64_t reserved_36_63:28;
327		uint64_t crip_256k:1;
328		uint64_t crip_512k:1;
329		uint64_t q3fus:34;
330	} cn38xx;
331	struct cvmx_l2d_fus3_cn38xx cn38xxp2;
332	struct cvmx_l2d_fus3_cn50xx {
333		uint64_t reserved_40_63:24;
334		uint64_t ema_ctl:3;
335		uint64_t reserved_36_36:1;
336		uint64_t crip_32k:1;
337		uint64_t crip_64k:1;
338		uint64_t q3fus:34;
339	} cn50xx;
340	struct cvmx_l2d_fus3_cn52xx {
341		uint64_t reserved_40_63:24;
342		uint64_t ema_ctl:3;
343		uint64_t reserved_36_36:1;
344		uint64_t crip_128k:1;
345		uint64_t crip_256k:1;
346		uint64_t q3fus:34;
347	} cn52xx;
348	struct cvmx_l2d_fus3_cn52xx cn52xxp1;
349	struct cvmx_l2d_fus3_cn56xx {
350		uint64_t reserved_40_63:24;
351		uint64_t ema_ctl:3;
352		uint64_t reserved_36_36:1;
353		uint64_t crip_512k:1;
354		uint64_t crip_1024k:1;
355		uint64_t q3fus:34;
356	} cn56xx;
357	struct cvmx_l2d_fus3_cn56xx cn56xxp1;
358	struct cvmx_l2d_fus3_cn58xx {
359		uint64_t reserved_39_63:25;
360		uint64_t ema_ctl:2;
361		uint64_t reserved_36_36:1;
362		uint64_t crip_512k:1;
363		uint64_t crip_1024k:1;
364		uint64_t q3fus:34;
365	} cn58xx;
366	struct cvmx_l2d_fus3_cn58xx cn58xxp1;
367};
368
369#endif
370