1ac6d9b3aSChandrakala Chavva /***********************license start***************
2ac6d9b3aSChandrakala Chavva  * Author: Cavium Inc.
3ac6d9b3aSChandrakala Chavva  *
4ac6d9b3aSChandrakala Chavva  * Contact: support@cavium.com
5ac6d9b3aSChandrakala Chavva  * This file is part of the OCTEON SDK
6ac6d9b3aSChandrakala Chavva  *
7ac6d9b3aSChandrakala Chavva  * Copyright (c) 2003-2014 Cavium Inc.
8ac6d9b3aSChandrakala Chavva  *
9ac6d9b3aSChandrakala Chavva  * This file is free software; you can redistribute it and/or modify
10ac6d9b3aSChandrakala Chavva  * it under the terms of the GNU General Public License, Version 2, as
11ac6d9b3aSChandrakala Chavva  * published by the Free Software Foundation.
12ac6d9b3aSChandrakala Chavva  *
13ac6d9b3aSChandrakala Chavva  * This file is distributed in the hope that it will be useful, but
14ac6d9b3aSChandrakala Chavva  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15ac6d9b3aSChandrakala Chavva  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16ac6d9b3aSChandrakala Chavva  * NONINFRINGEMENT.  See the GNU General Public License for more
17ac6d9b3aSChandrakala Chavva  * details.
18ac6d9b3aSChandrakala Chavva  *
19ac6d9b3aSChandrakala Chavva  * You should have received a copy of the GNU General Public License
20ac6d9b3aSChandrakala Chavva  * along with this file; if not, write to the Free Software
21ac6d9b3aSChandrakala Chavva  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22ac6d9b3aSChandrakala Chavva  * or visit http://www.gnu.org/licenses/.
23ac6d9b3aSChandrakala Chavva  *
24ac6d9b3aSChandrakala Chavva  * This file may also be available under a different license from Cavium.
25ac6d9b3aSChandrakala Chavva  * Contact Cavium Inc. for more information
26ac6d9b3aSChandrakala Chavva  ***********************license end**************************************/
27ac6d9b3aSChandrakala Chavva 
28ac6d9b3aSChandrakala Chavva #ifndef __CVMX_RST_DEFS_H__
29ac6d9b3aSChandrakala Chavva #define __CVMX_RST_DEFS_H__
30ac6d9b3aSChandrakala Chavva 
31ac6d9b3aSChandrakala Chavva #define CVMX_RST_BOOT (CVMX_ADD_IO_SEG(0x0001180006001600ull))
32ac6d9b3aSChandrakala Chavva #define CVMX_RST_CFG (CVMX_ADD_IO_SEG(0x0001180006001610ull))
33ac6d9b3aSChandrakala Chavva #define CVMX_RST_CKILL (CVMX_ADD_IO_SEG(0x0001180006001638ull))
34ac6d9b3aSChandrakala Chavva #define CVMX_RST_CTLX(offset) (CVMX_ADD_IO_SEG(0x0001180006001640ull) + ((offset) & 3) * 8)
35ac6d9b3aSChandrakala Chavva #define CVMX_RST_DELAY (CVMX_ADD_IO_SEG(0x0001180006001608ull))
36ac6d9b3aSChandrakala Chavva #define CVMX_RST_ECO (CVMX_ADD_IO_SEG(0x00011800060017B8ull))
37ac6d9b3aSChandrakala Chavva #define CVMX_RST_INT (CVMX_ADD_IO_SEG(0x0001180006001628ull))
38ac6d9b3aSChandrakala Chavva #define CVMX_RST_OCX (CVMX_ADD_IO_SEG(0x0001180006001618ull))
39ac6d9b3aSChandrakala Chavva #define CVMX_RST_POWER_DBG (CVMX_ADD_IO_SEG(0x0001180006001708ull))
40ac6d9b3aSChandrakala Chavva #define CVMX_RST_PP_POWER (CVMX_ADD_IO_SEG(0x0001180006001700ull))
41ac6d9b3aSChandrakala Chavva #define CVMX_RST_SOFT_PRSTX(offset) (CVMX_ADD_IO_SEG(0x00011800060016C0ull) + ((offset) & 3) * 8)
42ac6d9b3aSChandrakala Chavva #define CVMX_RST_SOFT_RST (CVMX_ADD_IO_SEG(0x0001180006001680ull))
43ac6d9b3aSChandrakala Chavva 
44ac6d9b3aSChandrakala Chavva union cvmx_rst_boot {
45ac6d9b3aSChandrakala Chavva 	uint64_t u64;
46ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_boot_s {
47ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
48ac6d9b3aSChandrakala Chavva 		uint64_t chipkill:1;
49ac6d9b3aSChandrakala Chavva 		uint64_t jtcsrdis:1;
50ac6d9b3aSChandrakala Chavva 		uint64_t ejtagdis:1;
51ac6d9b3aSChandrakala Chavva 		uint64_t romen:1;
52ac6d9b3aSChandrakala Chavva 		uint64_t ckill_ppdis:1;
53ac6d9b3aSChandrakala Chavva 		uint64_t jt_tstmode:1;
54ac6d9b3aSChandrakala Chavva 		uint64_t vrm_err:1;
55ac6d9b3aSChandrakala Chavva 		uint64_t reserved_37_56:20;
56ac6d9b3aSChandrakala Chavva 		uint64_t c_mul:7;
57ac6d9b3aSChandrakala Chavva 		uint64_t pnr_mul:6;
58ac6d9b3aSChandrakala Chavva 		uint64_t reserved_21_23:3;
59ac6d9b3aSChandrakala Chavva 		uint64_t lboot_oci:3;
60ac6d9b3aSChandrakala Chavva 		uint64_t lboot_ext:6;
61ac6d9b3aSChandrakala Chavva 		uint64_t lboot:10;
62ac6d9b3aSChandrakala Chavva 		uint64_t rboot:1;
63ac6d9b3aSChandrakala Chavva 		uint64_t rboot_pin:1;
64ac6d9b3aSChandrakala Chavva #else
65ac6d9b3aSChandrakala Chavva 		uint64_t rboot_pin:1;
66ac6d9b3aSChandrakala Chavva 		uint64_t rboot:1;
67ac6d9b3aSChandrakala Chavva 		uint64_t lboot:10;
68ac6d9b3aSChandrakala Chavva 		uint64_t lboot_ext:6;
69ac6d9b3aSChandrakala Chavva 		uint64_t lboot_oci:3;
70ac6d9b3aSChandrakala Chavva 		uint64_t reserved_21_23:3;
71ac6d9b3aSChandrakala Chavva 		uint64_t pnr_mul:6;
72ac6d9b3aSChandrakala Chavva 		uint64_t c_mul:7;
73ac6d9b3aSChandrakala Chavva 		uint64_t reserved_37_56:20;
74ac6d9b3aSChandrakala Chavva 		uint64_t vrm_err:1;
75ac6d9b3aSChandrakala Chavva 		uint64_t jt_tstmode:1;
76ac6d9b3aSChandrakala Chavva 		uint64_t ckill_ppdis:1;
77ac6d9b3aSChandrakala Chavva 		uint64_t romen:1;
78ac6d9b3aSChandrakala Chavva 		uint64_t ejtagdis:1;
79ac6d9b3aSChandrakala Chavva 		uint64_t jtcsrdis:1;
80ac6d9b3aSChandrakala Chavva 		uint64_t chipkill:1;
81ac6d9b3aSChandrakala Chavva #endif
82ac6d9b3aSChandrakala Chavva 	} s;
83ac6d9b3aSChandrakala Chavva };
84ac6d9b3aSChandrakala Chavva 
85ac6d9b3aSChandrakala Chavva union cvmx_rst_cfg {
86ac6d9b3aSChandrakala Chavva 	uint64_t u64;
87ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_cfg_s {
88ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
89ac6d9b3aSChandrakala Chavva 		uint64_t bist_delay:58;
90ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_5:3;
91ac6d9b3aSChandrakala Chavva 		uint64_t cntl_clr_bist:1;
92ac6d9b3aSChandrakala Chavva 		uint64_t warm_clr_bist:1;
93ac6d9b3aSChandrakala Chavva 		uint64_t soft_clr_bist:1;
94ac6d9b3aSChandrakala Chavva #else
95ac6d9b3aSChandrakala Chavva 		uint64_t soft_clr_bist:1;
96ac6d9b3aSChandrakala Chavva 		uint64_t warm_clr_bist:1;
97ac6d9b3aSChandrakala Chavva 		uint64_t cntl_clr_bist:1;
98ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_5:3;
99ac6d9b3aSChandrakala Chavva 		uint64_t bist_delay:58;
100ac6d9b3aSChandrakala Chavva #endif
101ac6d9b3aSChandrakala Chavva 	} s;
102ac6d9b3aSChandrakala Chavva };
103ac6d9b3aSChandrakala Chavva 
104ac6d9b3aSChandrakala Chavva union cvmx_rst_ckill {
105ac6d9b3aSChandrakala Chavva 	uint64_t u64;
106ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_ckill_s {
107ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
108ac6d9b3aSChandrakala Chavva 		uint64_t reserved_47_63:17;
109ac6d9b3aSChandrakala Chavva 		uint64_t timer:47;
110ac6d9b3aSChandrakala Chavva #else
111ac6d9b3aSChandrakala Chavva 		uint64_t timer:47;
112ac6d9b3aSChandrakala Chavva 		uint64_t reserved_47_63:17;
113ac6d9b3aSChandrakala Chavva #endif
114ac6d9b3aSChandrakala Chavva 	} s;
115ac6d9b3aSChandrakala Chavva };
116ac6d9b3aSChandrakala Chavva 
117ac6d9b3aSChandrakala Chavva union cvmx_rst_ctlx {
118ac6d9b3aSChandrakala Chavva 	uint64_t u64;
119ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_ctlx_s {
120ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
121ac6d9b3aSChandrakala Chavva 		uint64_t reserved_10_63:54;
122ac6d9b3aSChandrakala Chavva 		uint64_t prst_link:1;
123ac6d9b3aSChandrakala Chavva 		uint64_t rst_done:1;
124ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:1;
125ac6d9b3aSChandrakala Chavva 		uint64_t host_mode:1;
126ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_5:2;
127ac6d9b3aSChandrakala Chavva 		uint64_t rst_drv:1;
128ac6d9b3aSChandrakala Chavva 		uint64_t rst_rcv:1;
129ac6d9b3aSChandrakala Chavva 		uint64_t rst_chip:1;
130ac6d9b3aSChandrakala Chavva 		uint64_t rst_val:1;
131ac6d9b3aSChandrakala Chavva #else
132ac6d9b3aSChandrakala Chavva 		uint64_t rst_val:1;
133ac6d9b3aSChandrakala Chavva 		uint64_t rst_chip:1;
134ac6d9b3aSChandrakala Chavva 		uint64_t rst_rcv:1;
135ac6d9b3aSChandrakala Chavva 		uint64_t rst_drv:1;
136ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_5:2;
137ac6d9b3aSChandrakala Chavva 		uint64_t host_mode:1;
138ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:1;
139ac6d9b3aSChandrakala Chavva 		uint64_t rst_done:1;
140ac6d9b3aSChandrakala Chavva 		uint64_t prst_link:1;
141ac6d9b3aSChandrakala Chavva 		uint64_t reserved_10_63:54;
142ac6d9b3aSChandrakala Chavva #endif
143ac6d9b3aSChandrakala Chavva 	} s;
144ac6d9b3aSChandrakala Chavva };
145ac6d9b3aSChandrakala Chavva 
146ac6d9b3aSChandrakala Chavva union cvmx_rst_delay {
147ac6d9b3aSChandrakala Chavva 	uint64_t u64;
148ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_delay_s {
149ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
150ac6d9b3aSChandrakala Chavva 		uint64_t reserved_32_63:32;
151ac6d9b3aSChandrakala Chavva 		uint64_t warm_rst_dly:16;
152ac6d9b3aSChandrakala Chavva 		uint64_t soft_rst_dly:16;
153ac6d9b3aSChandrakala Chavva #else
154ac6d9b3aSChandrakala Chavva 		uint64_t soft_rst_dly:16;
155ac6d9b3aSChandrakala Chavva 		uint64_t warm_rst_dly:16;
156ac6d9b3aSChandrakala Chavva 		uint64_t reserved_32_63:32;
157ac6d9b3aSChandrakala Chavva #endif
158ac6d9b3aSChandrakala Chavva 	} s;
159ac6d9b3aSChandrakala Chavva };
160ac6d9b3aSChandrakala Chavva 
161ac6d9b3aSChandrakala Chavva union cvmx_rst_eco {
162ac6d9b3aSChandrakala Chavva 	uint64_t u64;
163ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_eco_s {
164ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
165ac6d9b3aSChandrakala Chavva 		uint64_t reserved_32_63:32;
166ac6d9b3aSChandrakala Chavva 		uint64_t eco_rw:32;
167ac6d9b3aSChandrakala Chavva #else
168ac6d9b3aSChandrakala Chavva 		uint64_t eco_rw:32;
169ac6d9b3aSChandrakala Chavva 		uint64_t reserved_32_63:32;
170ac6d9b3aSChandrakala Chavva #endif
171ac6d9b3aSChandrakala Chavva 	} s;
172ac6d9b3aSChandrakala Chavva };
173ac6d9b3aSChandrakala Chavva 
174ac6d9b3aSChandrakala Chavva union cvmx_rst_int {
175ac6d9b3aSChandrakala Chavva 	uint64_t u64;
176ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_int_s {
177ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
178ac6d9b3aSChandrakala Chavva 		uint64_t reserved_12_63:52;
179ac6d9b3aSChandrakala Chavva 		uint64_t perst:4;
180ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_7:4;
181ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:4;
182ac6d9b3aSChandrakala Chavva #else
183ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:4;
184ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_7:4;
185ac6d9b3aSChandrakala Chavva 		uint64_t perst:4;
186ac6d9b3aSChandrakala Chavva 		uint64_t reserved_12_63:52;
187ac6d9b3aSChandrakala Chavva #endif
188ac6d9b3aSChandrakala Chavva 	} s;
189ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_int_cn70xx {
190ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
191ac6d9b3aSChandrakala Chavva 		uint64_t reserved_11_63:53;
192ac6d9b3aSChandrakala Chavva 		uint64_t perst:3;
193ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_7:5;
194ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:3;
195ac6d9b3aSChandrakala Chavva #else
196ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:3;
197ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_7:5;
198ac6d9b3aSChandrakala Chavva 		uint64_t perst:3;
199ac6d9b3aSChandrakala Chavva 		uint64_t reserved_11_63:53;
200ac6d9b3aSChandrakala Chavva #endif
201ac6d9b3aSChandrakala Chavva 	} cn70xx;
202ac6d9b3aSChandrakala Chavva };
203ac6d9b3aSChandrakala Chavva 
204ac6d9b3aSChandrakala Chavva union cvmx_rst_ocx {
205ac6d9b3aSChandrakala Chavva 	uint64_t u64;
206ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_ocx_s {
207ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
208ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_63:61;
209ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:3;
210ac6d9b3aSChandrakala Chavva #else
211ac6d9b3aSChandrakala Chavva 		uint64_t rst_link:3;
212ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_63:61;
213ac6d9b3aSChandrakala Chavva #endif
214ac6d9b3aSChandrakala Chavva 	} s;
215ac6d9b3aSChandrakala Chavva };
216ac6d9b3aSChandrakala Chavva 
217ac6d9b3aSChandrakala Chavva union cvmx_rst_power_dbg {
218ac6d9b3aSChandrakala Chavva 	uint64_t u64;
219ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_power_dbg_s {
220ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
221ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_63:61;
222ac6d9b3aSChandrakala Chavva 		uint64_t str:3;
223ac6d9b3aSChandrakala Chavva #else
224ac6d9b3aSChandrakala Chavva 		uint64_t str:3;
225ac6d9b3aSChandrakala Chavva 		uint64_t reserved_3_63:61;
226ac6d9b3aSChandrakala Chavva #endif
227ac6d9b3aSChandrakala Chavva 	} s;
228ac6d9b3aSChandrakala Chavva };
229ac6d9b3aSChandrakala Chavva 
230ac6d9b3aSChandrakala Chavva union cvmx_rst_pp_power {
231ac6d9b3aSChandrakala Chavva 	uint64_t u64;
232ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_pp_power_s {
233ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
234ac6d9b3aSChandrakala Chavva 		uint64_t reserved_48_63:16;
235ac6d9b3aSChandrakala Chavva 		uint64_t gate:48;
236ac6d9b3aSChandrakala Chavva #else
237ac6d9b3aSChandrakala Chavva 		uint64_t gate:48;
238ac6d9b3aSChandrakala Chavva 		uint64_t reserved_48_63:16;
239ac6d9b3aSChandrakala Chavva #endif
240ac6d9b3aSChandrakala Chavva 	} s;
241ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_pp_power_cn70xx {
242ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
243ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_63:60;
244ac6d9b3aSChandrakala Chavva 		uint64_t gate:4;
245ac6d9b3aSChandrakala Chavva #else
246ac6d9b3aSChandrakala Chavva 		uint64_t gate:4;
247ac6d9b3aSChandrakala Chavva 		uint64_t reserved_4_63:60;
248ac6d9b3aSChandrakala Chavva #endif
249ac6d9b3aSChandrakala Chavva 	} cn70xx;
250ac6d9b3aSChandrakala Chavva };
251ac6d9b3aSChandrakala Chavva 
252ac6d9b3aSChandrakala Chavva union cvmx_rst_soft_prstx {
253ac6d9b3aSChandrakala Chavva 	uint64_t u64;
254ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_soft_prstx_s {
255ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
256ac6d9b3aSChandrakala Chavva 		uint64_t reserved_1_63:63;
257ac6d9b3aSChandrakala Chavva 		uint64_t soft_prst:1;
258ac6d9b3aSChandrakala Chavva #else
259ac6d9b3aSChandrakala Chavva 		uint64_t soft_prst:1;
260ac6d9b3aSChandrakala Chavva 		uint64_t reserved_1_63:63;
261ac6d9b3aSChandrakala Chavva #endif
262ac6d9b3aSChandrakala Chavva 	} s;
263ac6d9b3aSChandrakala Chavva };
264ac6d9b3aSChandrakala Chavva 
265ac6d9b3aSChandrakala Chavva union cvmx_rst_soft_rst {
266ac6d9b3aSChandrakala Chavva 	uint64_t u64;
267ac6d9b3aSChandrakala Chavva 	struct cvmx_rst_soft_rst_s {
268ac6d9b3aSChandrakala Chavva #ifdef __BIG_ENDIAN_BITFIELD
269ac6d9b3aSChandrakala Chavva 		uint64_t reserved_1_63:63;
270ac6d9b3aSChandrakala Chavva 		uint64_t soft_rst:1;
271ac6d9b3aSChandrakala Chavva #else
272ac6d9b3aSChandrakala Chavva 		uint64_t soft_rst:1;
273ac6d9b3aSChandrakala Chavva 		uint64_t reserved_1_63:63;
274ac6d9b3aSChandrakala Chavva #endif
275ac6d9b3aSChandrakala Chavva 	} s;
276ac6d9b3aSChandrakala Chavva };
277ac6d9b3aSChandrakala Chavva 
278ac6d9b3aSChandrakala Chavva #endif
279