2 * Copyright (c) 2003-2016 Cavium Inc.
4 * This file is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License, Version 2, as
6 * published by the Free Software Foundation.
8 * This file is distributed in the hope that it will be useful, but
9 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
10 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
11 * NONINFRINGEMENT. See the GNU General Public License for more
16 #ifndef __CVMX_CIU3_DEFS_H__
17 #define __CVMX_CIU3_DEFS_H__
19 #define CVMX_CIU3_FUSE CVMX_ADD_IO_SEG(0x00010100000001A0ull)
20 #define CVMX_CIU3_BIST CVMX_ADD_IO_SEG(0x00010100000001C0ull)
21 #define CVMX_CIU3_CONST CVMX_ADD_IO_SEG(0x0001010000000220ull)
22 #define CVMX_CIU3_CTL CVMX_ADD_IO_SEG(0x00010100000000E0ull)
23 #define CVMX_CIU3_DESTX_IO_INT(offset) (CVMX_ADD_IO_SEG(0x0001010000210000ull) + ((offset) & 7) * 8)
24 #define CVMX_CIU3_DESTX_PP_INT(offset) (CVMX_ADD_IO_SEG(0x0001010000200000ull) + ((offset) & 255) * 8)
25 #define CVMX_CIU3_GSTOP CVMX_ADD_IO_SEG(0x0001010000000140ull)
26 #define CVMX_CIU3_IDTX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001010000110000ull) + ((offset) & 255) * 8)
27 #define CVMX_CIU3_IDTX_IO(offset) (CVMX_ADD_IO_SEG(0x0001010000130000ull) + ((offset) & 255) * 8)
28 #define CVMX_CIU3_IDTX_PPX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001010000120000ull) + ((block_id) & 255) * 0x20ull)
29 #define CVMX_CIU3_INTR_RAM_ECC_CTL CVMX_ADD_IO_SEG(0x0001010000000260ull)
30 #define CVMX_CIU3_INTR_RAM_ECC_ST CVMX_ADD_IO_SEG(0x0001010000000280ull)
31 #define CVMX_CIU3_INTR_READY CVMX_ADD_IO_SEG(0x00010100000002A0ull)
32 #define CVMX_CIU3_INTR_SLOWDOWN CVMX_ADD_IO_SEG(0x0001010000000240ull)
33 #define CVMX_CIU3_ISCX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001010080000000ull) + ((offset) & 1048575) * 8)
34 #define CVMX_CIU3_ISCX_W1C(offset) (CVMX_ADD_IO_SEG(0x0001010090000000ull) + ((offset) & 1048575) * 8)
35 #define CVMX_CIU3_ISCX_W1S(offset) (CVMX_ADD_IO_SEG(0x00010100A0000000ull) + ((offset) & 1048575) * 8)
36 #define CVMX_CIU3_NMI CVMX_ADD_IO_SEG(0x0001010000000160ull)
37 #define CVMX_CIU3_SISCX(offset) (CVMX_ADD_IO_SEG(0x0001010000220000ull) + ((offset) & 255) * 8)
38 #define CVMX_CIU3_TIMX(offset) (CVMX_ADD_IO_SEG(0x0001010000010000ull) + ((offset) & 15) * 8)
40 union cvmx_ciu3_bist
{
42 struct cvmx_ciu3_bist_s
{
43 #ifdef __BIG_ENDIAN_BITFIELD
44 uint64_t reserved_9_63
: 55;
48 uint64_t reserved_9_63
: 55;
53 union cvmx_ciu3_const
{
55 struct cvmx_ciu3_const_s
{
56 #ifdef __BIG_ENDIAN_BITFIELD
57 uint64_t dests_io
: 16;
59 uint64_t dests_pp
: 16;
63 uint64_t dests_pp
: 16;
65 uint64_t dests_io
: 16;
72 struct cvmx_ciu3_ctl_s
{
73 #ifdef __BIG_ENDIAN_BITFIELD
74 uint64_t reserved_5_63
: 59;
76 uint64_t iscmem_le
: 1;
78 uint64_t cclk_dis
: 1;
80 uint64_t cclk_dis
: 1;
82 uint64_t iscmem_le
: 1;
84 uint64_t reserved_5_63
: 59;
89 union cvmx_ciu3_destx_io_int
{
91 struct cvmx_ciu3_destx_io_int_s
{
92 #ifdef __BIG_ENDIAN_BITFIELD
93 uint64_t reserved_52_63
: 12;
95 uint64_t reserved_10_31
: 22;
103 uint64_t reserved_10_31
: 22;
105 uint64_t reserved_52_63
: 12;
110 union cvmx_ciu3_destx_pp_int
{
112 struct cvmx_ciu3_destx_pp_int_s
{
113 #ifdef __BIG_ENDIAN_BITFIELD
114 uint64_t reserved_52_63
: 12;
116 uint64_t reserved_10_31
: 22;
124 uint64_t reserved_10_31
: 22;
126 uint64_t reserved_52_63
: 12;
131 union cvmx_ciu3_gstop
{
133 struct cvmx_ciu3_gstop_s
{
134 #ifdef __BIG_ENDIAN_BITFIELD
135 uint64_t reserved_1_63
: 63;
139 uint64_t reserved_1_63
: 63;
144 union cvmx_ciu3_idtx_ctl
{
146 struct cvmx_ciu3_idtx_ctl_s
{
147 #ifdef __BIG_ENDIAN_BITFIELD
148 uint64_t reserved_52_63
: 12;
150 uint64_t reserved_4_31
: 28;
158 uint64_t reserved_4_31
: 28;
160 uint64_t reserved_52_63
: 12;
165 union cvmx_ciu3_idtx_io
{
167 struct cvmx_ciu3_idtx_io_s
{
168 #ifdef __BIG_ENDIAN_BITFIELD
169 uint64_t reserved_5_63
: 59;
173 uint64_t reserved_5_63
: 59;
178 union cvmx_ciu3_idtx_ppx
{
180 struct cvmx_ciu3_idtx_ppx_s
{
181 #ifdef __BIG_ENDIAN_BITFIELD
182 uint64_t reserved_48_63
: 16;
186 uint64_t reserved_48_63
: 16;
191 union cvmx_ciu3_intr_ram_ecc_ctl
{
193 struct cvmx_ciu3_intr_ram_ecc_ctl_s
{
194 #ifdef __BIG_ENDIAN_BITFIELD
195 uint64_t reserved_3_63
: 61;
196 uint64_t flip_synd
: 2;
197 uint64_t ecc_ena
: 1;
199 uint64_t ecc_ena
: 1;
200 uint64_t flip_synd
: 2;
201 uint64_t reserved_3_63
: 61;
206 union cvmx_ciu3_intr_ram_ecc_st
{
208 struct cvmx_ciu3_intr_ram_ecc_st_s
{
209 #ifdef __BIG_ENDIAN_BITFIELD
210 uint64_t reserved_52_63
: 12;
212 uint64_t reserved_6_31
: 26;
213 uint64_t sisc_dbe
: 1;
214 uint64_t sisc_sbe
: 1;
215 uint64_t idt_dbe
: 1;
216 uint64_t idt_sbe
: 1;
217 uint64_t isc_dbe
: 1;
218 uint64_t isc_sbe
: 1;
220 uint64_t isc_sbe
: 1;
221 uint64_t isc_dbe
: 1;
222 uint64_t idt_sbe
: 1;
223 uint64_t idt_dbe
: 1;
224 uint64_t sisc_sbe
: 1;
225 uint64_t sisc_dbe
: 1;
226 uint64_t reserved_6_31
: 26;
228 uint64_t reserved_52_63
: 12;
233 union cvmx_ciu3_intr_ready
{
235 struct cvmx_ciu3_intr_ready_s
{
236 #ifdef __BIG_ENDIAN_BITFIELD
237 uint64_t reserved_46_63
: 18;
239 uint64_t reserved_1_31
: 31;
243 uint64_t reserved_1_31
: 31;
245 uint64_t reserved_46_63
: 18;
250 union cvmx_ciu3_intr_slowdown
{
252 struct cvmx_ciu3_intr_slowdown_s
{
253 #ifdef __BIG_ENDIAN_BITFIELD
254 uint64_t reserved_3_63
: 61;
258 uint64_t reserved_3_63
: 61;
263 union cvmx_ciu3_iscx_ctl
{
265 struct cvmx_ciu3_iscx_ctl_s
{
266 #ifdef __BIG_ENDIAN_BITFIELD
267 uint64_t reserved_24_63
: 40;
270 uint64_t reserved_2_14
: 13;
276 uint64_t reserved_2_14
: 13;
279 uint64_t reserved_24_63
: 40;
284 union cvmx_ciu3_iscx_w1c
{
286 struct cvmx_ciu3_iscx_w1c_s
{
287 #ifdef __BIG_ENDIAN_BITFIELD
288 uint64_t reserved_2_63
: 62;
294 uint64_t reserved_2_63
: 62;
299 union cvmx_ciu3_iscx_w1s
{
301 struct cvmx_ciu3_iscx_w1s_s
{
302 #ifdef __BIG_ENDIAN_BITFIELD
303 uint64_t reserved_2_63
: 62;
309 uint64_t reserved_2_63
: 62;
314 union cvmx_ciu3_nmi
{
316 struct cvmx_ciu3_nmi_s
{
317 #ifdef __BIG_ENDIAN_BITFIELD
318 uint64_t reserved_48_63
: 16;
322 uint64_t reserved_48_63
: 16;
327 union cvmx_ciu3_siscx
{
329 struct cvmx_ciu3_siscx_s
{
330 #ifdef __BIG_ENDIAN_BITFIELD
338 union cvmx_ciu3_timx
{
340 struct cvmx_ciu3_timx_s
{
341 #ifdef __BIG_ENDIAN_BITFIELD
342 uint64_t reserved_37_63
: 27;
343 uint64_t one_shot
: 1;
347 uint64_t one_shot
: 1;
348 uint64_t reserved_37_63
: 27;