1 /***********************license start***************
2 * Author: Cavium Networks
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
7 * Copyright (c) 2003-2008 Cavium Networks
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.
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
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/.
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
28 #ifndef __CVMX_FPA_DEFS_H__
29 #define __CVMX_FPA_DEFS_H__
31 #define CVMX_FPA_BIST_STATUS \
32 CVMX_ADD_IO_SEG(0x00011800280000E8ull)
33 #define CVMX_FPA_CTL_STATUS \
34 CVMX_ADD_IO_SEG(0x0001180028000050ull)
35 #define CVMX_FPA_FPF0_MARKS \
36 CVMX_ADD_IO_SEG(0x0001180028000000ull)
37 #define CVMX_FPA_FPF0_SIZE \
38 CVMX_ADD_IO_SEG(0x0001180028000058ull)
39 #define CVMX_FPA_FPF1_MARKS \
40 CVMX_ADD_IO_SEG(0x0001180028000008ull)
41 #define CVMX_FPA_FPF2_MARKS \
42 CVMX_ADD_IO_SEG(0x0001180028000010ull)
43 #define CVMX_FPA_FPF3_MARKS \
44 CVMX_ADD_IO_SEG(0x0001180028000018ull)
45 #define CVMX_FPA_FPF4_MARKS \
46 CVMX_ADD_IO_SEG(0x0001180028000020ull)
47 #define CVMX_FPA_FPF5_MARKS \
48 CVMX_ADD_IO_SEG(0x0001180028000028ull)
49 #define CVMX_FPA_FPF6_MARKS \
50 CVMX_ADD_IO_SEG(0x0001180028000030ull)
51 #define CVMX_FPA_FPF7_MARKS \
52 CVMX_ADD_IO_SEG(0x0001180028000038ull)
53 #define CVMX_FPA_FPFX_MARKS(offset) \
54 CVMX_ADD_IO_SEG(0x0001180028000008ull + (((offset) & 7) * 8) - 8 * 1)
55 #define CVMX_FPA_FPFX_SIZE(offset) \
56 CVMX_ADD_IO_SEG(0x0001180028000060ull + (((offset) & 7) * 8) - 8 * 1)
57 #define CVMX_FPA_INT_ENB \
58 CVMX_ADD_IO_SEG(0x0001180028000048ull)
59 #define CVMX_FPA_INT_SUM \
60 CVMX_ADD_IO_SEG(0x0001180028000040ull)
61 #define CVMX_FPA_QUE0_PAGE_INDEX \
62 CVMX_ADD_IO_SEG(0x00011800280000F0ull)
63 #define CVMX_FPA_QUE1_PAGE_INDEX \
64 CVMX_ADD_IO_SEG(0x00011800280000F8ull)
65 #define CVMX_FPA_QUE2_PAGE_INDEX \
66 CVMX_ADD_IO_SEG(0x0001180028000100ull)
67 #define CVMX_FPA_QUE3_PAGE_INDEX \
68 CVMX_ADD_IO_SEG(0x0001180028000108ull)
69 #define CVMX_FPA_QUE4_PAGE_INDEX \
70 CVMX_ADD_IO_SEG(0x0001180028000110ull)
71 #define CVMX_FPA_QUE5_PAGE_INDEX \
72 CVMX_ADD_IO_SEG(0x0001180028000118ull)
73 #define CVMX_FPA_QUE6_PAGE_INDEX \
74 CVMX_ADD_IO_SEG(0x0001180028000120ull)
75 #define CVMX_FPA_QUE7_PAGE_INDEX \
76 CVMX_ADD_IO_SEG(0x0001180028000128ull)
77 #define CVMX_FPA_QUEX_AVAILABLE(offset) \
78 CVMX_ADD_IO_SEG(0x0001180028000098ull + (((offset) & 7) * 8))
79 #define CVMX_FPA_QUEX_PAGE_INDEX(offset) \
80 CVMX_ADD_IO_SEG(0x00011800280000F0ull + (((offset) & 7) * 8))
81 #define CVMX_FPA_QUE_ACT \
82 CVMX_ADD_IO_SEG(0x0001180028000138ull)
83 #define CVMX_FPA_QUE_EXP \
84 CVMX_ADD_IO_SEG(0x0001180028000130ull)
85 #define CVMX_FPA_WART_CTL \
86 CVMX_ADD_IO_SEG(0x00011800280000D8ull)
87 #define CVMX_FPA_WART_STATUS \
88 CVMX_ADD_IO_SEG(0x00011800280000E0ull)
90 union cvmx_fpa_bist_status
{
92 struct cvmx_fpa_bist_status_s
{
93 uint64_t reserved_5_63
:59;
100 struct cvmx_fpa_bist_status_s cn30xx
;
101 struct cvmx_fpa_bist_status_s cn31xx
;
102 struct cvmx_fpa_bist_status_s cn38xx
;
103 struct cvmx_fpa_bist_status_s cn38xxp2
;
104 struct cvmx_fpa_bist_status_s cn50xx
;
105 struct cvmx_fpa_bist_status_s cn52xx
;
106 struct cvmx_fpa_bist_status_s cn52xxp1
;
107 struct cvmx_fpa_bist_status_s cn56xx
;
108 struct cvmx_fpa_bist_status_s cn56xxp1
;
109 struct cvmx_fpa_bist_status_s cn58xx
;
110 struct cvmx_fpa_bist_status_s cn58xxp1
;
113 union cvmx_fpa_ctl_status
{
115 struct cvmx_fpa_ctl_status_s
{
116 uint64_t reserved_18_63
:46;
124 struct cvmx_fpa_ctl_status_s cn30xx
;
125 struct cvmx_fpa_ctl_status_s cn31xx
;
126 struct cvmx_fpa_ctl_status_s cn38xx
;
127 struct cvmx_fpa_ctl_status_s cn38xxp2
;
128 struct cvmx_fpa_ctl_status_s cn50xx
;
129 struct cvmx_fpa_ctl_status_s cn52xx
;
130 struct cvmx_fpa_ctl_status_s cn52xxp1
;
131 struct cvmx_fpa_ctl_status_s cn56xx
;
132 struct cvmx_fpa_ctl_status_s cn56xxp1
;
133 struct cvmx_fpa_ctl_status_s cn58xx
;
134 struct cvmx_fpa_ctl_status_s cn58xxp1
;
137 union cvmx_fpa_fpfx_marks
{
139 struct cvmx_fpa_fpfx_marks_s
{
140 uint64_t reserved_22_63
:42;
144 struct cvmx_fpa_fpfx_marks_s cn38xx
;
145 struct cvmx_fpa_fpfx_marks_s cn38xxp2
;
146 struct cvmx_fpa_fpfx_marks_s cn56xx
;
147 struct cvmx_fpa_fpfx_marks_s cn56xxp1
;
148 struct cvmx_fpa_fpfx_marks_s cn58xx
;
149 struct cvmx_fpa_fpfx_marks_s cn58xxp1
;
152 union cvmx_fpa_fpfx_size
{
154 struct cvmx_fpa_fpfx_size_s
{
155 uint64_t reserved_11_63
:53;
158 struct cvmx_fpa_fpfx_size_s cn38xx
;
159 struct cvmx_fpa_fpfx_size_s cn38xxp2
;
160 struct cvmx_fpa_fpfx_size_s cn56xx
;
161 struct cvmx_fpa_fpfx_size_s cn56xxp1
;
162 struct cvmx_fpa_fpfx_size_s cn58xx
;
163 struct cvmx_fpa_fpfx_size_s cn58xxp1
;
166 union cvmx_fpa_fpf0_marks
{
168 struct cvmx_fpa_fpf0_marks_s
{
169 uint64_t reserved_24_63
:40;
173 struct cvmx_fpa_fpf0_marks_s cn38xx
;
174 struct cvmx_fpa_fpf0_marks_s cn38xxp2
;
175 struct cvmx_fpa_fpf0_marks_s cn56xx
;
176 struct cvmx_fpa_fpf0_marks_s cn56xxp1
;
177 struct cvmx_fpa_fpf0_marks_s cn58xx
;
178 struct cvmx_fpa_fpf0_marks_s cn58xxp1
;
181 union cvmx_fpa_fpf0_size
{
183 struct cvmx_fpa_fpf0_size_s
{
184 uint64_t reserved_12_63
:52;
187 struct cvmx_fpa_fpf0_size_s cn38xx
;
188 struct cvmx_fpa_fpf0_size_s cn38xxp2
;
189 struct cvmx_fpa_fpf0_size_s cn56xx
;
190 struct cvmx_fpa_fpf0_size_s cn56xxp1
;
191 struct cvmx_fpa_fpf0_size_s cn58xx
;
192 struct cvmx_fpa_fpf0_size_s cn58xxp1
;
195 union cvmx_fpa_int_enb
{
197 struct cvmx_fpa_int_enb_s
{
198 uint64_t reserved_28_63
:36;
228 struct cvmx_fpa_int_enb_s cn30xx
;
229 struct cvmx_fpa_int_enb_s cn31xx
;
230 struct cvmx_fpa_int_enb_s cn38xx
;
231 struct cvmx_fpa_int_enb_s cn38xxp2
;
232 struct cvmx_fpa_int_enb_s cn50xx
;
233 struct cvmx_fpa_int_enb_s cn52xx
;
234 struct cvmx_fpa_int_enb_s cn52xxp1
;
235 struct cvmx_fpa_int_enb_s cn56xx
;
236 struct cvmx_fpa_int_enb_s cn56xxp1
;
237 struct cvmx_fpa_int_enb_s cn58xx
;
238 struct cvmx_fpa_int_enb_s cn58xxp1
;
241 union cvmx_fpa_int_sum
{
243 struct cvmx_fpa_int_sum_s
{
244 uint64_t reserved_28_63
:36;
274 struct cvmx_fpa_int_sum_s cn30xx
;
275 struct cvmx_fpa_int_sum_s cn31xx
;
276 struct cvmx_fpa_int_sum_s cn38xx
;
277 struct cvmx_fpa_int_sum_s cn38xxp2
;
278 struct cvmx_fpa_int_sum_s cn50xx
;
279 struct cvmx_fpa_int_sum_s cn52xx
;
280 struct cvmx_fpa_int_sum_s cn52xxp1
;
281 struct cvmx_fpa_int_sum_s cn56xx
;
282 struct cvmx_fpa_int_sum_s cn56xxp1
;
283 struct cvmx_fpa_int_sum_s cn58xx
;
284 struct cvmx_fpa_int_sum_s cn58xxp1
;
287 union cvmx_fpa_quex_available
{
289 struct cvmx_fpa_quex_available_s
{
290 uint64_t reserved_29_63
:35;
293 struct cvmx_fpa_quex_available_s cn30xx
;
294 struct cvmx_fpa_quex_available_s cn31xx
;
295 struct cvmx_fpa_quex_available_s cn38xx
;
296 struct cvmx_fpa_quex_available_s cn38xxp2
;
297 struct cvmx_fpa_quex_available_s cn50xx
;
298 struct cvmx_fpa_quex_available_s cn52xx
;
299 struct cvmx_fpa_quex_available_s cn52xxp1
;
300 struct cvmx_fpa_quex_available_s cn56xx
;
301 struct cvmx_fpa_quex_available_s cn56xxp1
;
302 struct cvmx_fpa_quex_available_s cn58xx
;
303 struct cvmx_fpa_quex_available_s cn58xxp1
;
306 union cvmx_fpa_quex_page_index
{
308 struct cvmx_fpa_quex_page_index_s
{
309 uint64_t reserved_25_63
:39;
312 struct cvmx_fpa_quex_page_index_s cn30xx
;
313 struct cvmx_fpa_quex_page_index_s cn31xx
;
314 struct cvmx_fpa_quex_page_index_s cn38xx
;
315 struct cvmx_fpa_quex_page_index_s cn38xxp2
;
316 struct cvmx_fpa_quex_page_index_s cn50xx
;
317 struct cvmx_fpa_quex_page_index_s cn52xx
;
318 struct cvmx_fpa_quex_page_index_s cn52xxp1
;
319 struct cvmx_fpa_quex_page_index_s cn56xx
;
320 struct cvmx_fpa_quex_page_index_s cn56xxp1
;
321 struct cvmx_fpa_quex_page_index_s cn58xx
;
322 struct cvmx_fpa_quex_page_index_s cn58xxp1
;
325 union cvmx_fpa_que_act
{
327 struct cvmx_fpa_que_act_s
{
328 uint64_t reserved_29_63
:35;
330 uint64_t act_indx
:26;
332 struct cvmx_fpa_que_act_s cn30xx
;
333 struct cvmx_fpa_que_act_s cn31xx
;
334 struct cvmx_fpa_que_act_s cn38xx
;
335 struct cvmx_fpa_que_act_s cn38xxp2
;
336 struct cvmx_fpa_que_act_s cn50xx
;
337 struct cvmx_fpa_que_act_s cn52xx
;
338 struct cvmx_fpa_que_act_s cn52xxp1
;
339 struct cvmx_fpa_que_act_s cn56xx
;
340 struct cvmx_fpa_que_act_s cn56xxp1
;
341 struct cvmx_fpa_que_act_s cn58xx
;
342 struct cvmx_fpa_que_act_s cn58xxp1
;
345 union cvmx_fpa_que_exp
{
347 struct cvmx_fpa_que_exp_s
{
348 uint64_t reserved_29_63
:35;
350 uint64_t exp_indx
:26;
352 struct cvmx_fpa_que_exp_s cn30xx
;
353 struct cvmx_fpa_que_exp_s cn31xx
;
354 struct cvmx_fpa_que_exp_s cn38xx
;
355 struct cvmx_fpa_que_exp_s cn38xxp2
;
356 struct cvmx_fpa_que_exp_s cn50xx
;
357 struct cvmx_fpa_que_exp_s cn52xx
;
358 struct cvmx_fpa_que_exp_s cn52xxp1
;
359 struct cvmx_fpa_que_exp_s cn56xx
;
360 struct cvmx_fpa_que_exp_s cn56xxp1
;
361 struct cvmx_fpa_que_exp_s cn58xx
;
362 struct cvmx_fpa_que_exp_s cn58xxp1
;
365 union cvmx_fpa_wart_ctl
{
367 struct cvmx_fpa_wart_ctl_s
{
368 uint64_t reserved_16_63
:48;
371 struct cvmx_fpa_wart_ctl_s cn30xx
;
372 struct cvmx_fpa_wart_ctl_s cn31xx
;
373 struct cvmx_fpa_wart_ctl_s cn38xx
;
374 struct cvmx_fpa_wart_ctl_s cn38xxp2
;
375 struct cvmx_fpa_wart_ctl_s cn50xx
;
376 struct cvmx_fpa_wart_ctl_s cn52xx
;
377 struct cvmx_fpa_wart_ctl_s cn52xxp1
;
378 struct cvmx_fpa_wart_ctl_s cn56xx
;
379 struct cvmx_fpa_wart_ctl_s cn56xxp1
;
380 struct cvmx_fpa_wart_ctl_s cn58xx
;
381 struct cvmx_fpa_wart_ctl_s cn58xxp1
;
384 union cvmx_fpa_wart_status
{
386 struct cvmx_fpa_wart_status_s
{
387 uint64_t reserved_32_63
:32;
390 struct cvmx_fpa_wart_status_s cn30xx
;
391 struct cvmx_fpa_wart_status_s cn31xx
;
392 struct cvmx_fpa_wart_status_s cn38xx
;
393 struct cvmx_fpa_wart_status_s cn38xxp2
;
394 struct cvmx_fpa_wart_status_s cn50xx
;
395 struct cvmx_fpa_wart_status_s cn52xx
;
396 struct cvmx_fpa_wart_status_s cn52xxp1
;
397 struct cvmx_fpa_wart_status_s cn56xx
;
398 struct cvmx_fpa_wart_status_s cn56xxp1
;
399 struct cvmx_fpa_wart_status_s cn58xx
;
400 struct cvmx_fpa_wart_status_s cn58xxp1
;