1 /***********************license start***************
2 * Author: Cavium Inc.
3 *
4 * Contact: support@cavium.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2012 Cavium Inc.
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 Inc. for more information
26 ***********************license end**************************************/
27
28 #ifndef __CVMX_LMCX_DEFS_H__
29 #define __CVMX_LMCX_DEFS_H__
30
31 #define CVMX_LMCX_BIST_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F0ull) + ((block_id) & 1) * 0x60000000ull)
32 #define CVMX_LMCX_BIST_RESULT(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F8ull) + ((block_id) & 1) * 0x60000000ull)
33 #define CVMX_LMCX_CHAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000220ull) + ((block_id) & 3) * 0x1000000ull)
34 #define CVMX_LMCX_CHAR_MASK0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000228ull) + ((block_id) & 3) * 0x1000000ull)
35 #define CVMX_LMCX_CHAR_MASK1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000230ull) + ((block_id) & 3) * 0x1000000ull)
36 #define CVMX_LMCX_CHAR_MASK2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000238ull) + ((block_id) & 3) * 0x1000000ull)
37 #define CVMX_LMCX_CHAR_MASK3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000240ull) + ((block_id) & 3) * 0x1000000ull)
38 #define CVMX_LMCX_CHAR_MASK4(block_id) (CVMX_ADD_IO_SEG(0x0001180088000318ull) + ((block_id) & 3) * 0x1000000ull)
39 #define CVMX_LMCX_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000028ull) + ((block_id) & 1) * 0x60000000ull)
40 #define CVMX_LMCX_COMP_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B8ull) + ((block_id) & 3) * 0x1000000ull)
41 #define CVMX_LMCX_CONFIG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000188ull) + ((block_id) & 3) * 0x1000000ull)
42 #define CVMX_LMCX_CONTROL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000190ull) + ((block_id) & 3) * 0x1000000ull)
43 #define CVMX_LMCX_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000010ull) + ((block_id) & 1) * 0x60000000ull)
44 #define CVMX_LMCX_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000090ull) + ((block_id) & 1) * 0x60000000ull)
45 #define CVMX_LMCX_DCLK_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E0ull) + ((block_id) & 3) * 0x1000000ull)
46 #define CVMX_LMCX_DCLK_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000070ull) + ((block_id) & 1) * 0x60000000ull)
47 #define CVMX_LMCX_DCLK_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000068ull) + ((block_id) & 1) * 0x60000000ull)
48 #define CVMX_LMCX_DCLK_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B8ull) + ((block_id) & 1) * 0x60000000ull)
49 #define CVMX_LMCX_DDR2_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000018ull) + ((block_id) & 1) * 0x60000000ull)
50 #define CVMX_LMCX_DDR_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000258ull) + ((block_id) & 3) * 0x1000000ull)
51 #define CVMX_LMCX_DELAY_CFG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000088ull) + ((block_id) & 1) * 0x60000000ull)
52 #define CVMX_LMCX_DIMMX_PARAMS(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000270ull) + (((offset) & 1) + ((block_id) & 3) * 0x200000ull) * 8)
53 #define CVMX_LMCX_DIMM_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000310ull) + ((block_id) & 3) * 0x1000000ull)
54 #define CVMX_LMCX_DLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000C0ull) + ((block_id) & 1) * 0x60000000ull)
55 #define CVMX_LMCX_DLL_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001C8ull) + ((block_id) & 3) * 0x1000000ull)
56 #define CVMX_LMCX_DLL_CTL3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000218ull) + ((block_id) & 3) * 0x1000000ull)
CVMX_LMCX_DUAL_MEMCFG(unsigned long block_id)57 static inline uint64_t CVMX_LMCX_DUAL_MEMCFG(unsigned long block_id)
58 {
59 switch (cvmx_get_octeon_family()) {
60 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
61 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
62 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
63 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
64 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
65 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
66 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
67 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
68 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
69 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
70 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
71 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x1000000ull;
72 }
73 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
74 }
75
CVMX_LMCX_ECC_SYND(unsigned long block_id)76 static inline uint64_t CVMX_LMCX_ECC_SYND(unsigned long block_id)
77 {
78 switch (cvmx_get_octeon_family()) {
79 case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
80 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
81 case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
82 case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
83 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
84 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
85 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
86 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
87 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
88 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
89 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
90 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
91 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
92 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
93 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x1000000ull;
94 }
95 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
96 }
97
CVMX_LMCX_FADR(unsigned long block_id)98 static inline uint64_t CVMX_LMCX_FADR(unsigned long block_id)
99 {
100 switch (cvmx_get_octeon_family()) {
101 case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
102 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
103 case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
104 case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
105 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
106 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
107 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
108 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
109 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
110 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
111 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
112 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
113 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
114 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
115 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x1000000ull;
116 }
117 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
118 }
119
120 #define CVMX_LMCX_IFB_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D0ull) + ((block_id) & 3) * 0x1000000ull)
121 #define CVMX_LMCX_IFB_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000050ull) + ((block_id) & 1) * 0x60000000ull)
122 #define CVMX_LMCX_IFB_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000048ull) + ((block_id) & 1) * 0x60000000ull)
123 #define CVMX_LMCX_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F0ull) + ((block_id) & 3) * 0x1000000ull)
124 #define CVMX_LMCX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E8ull) + ((block_id) & 3) * 0x1000000ull)
125 #define CVMX_LMCX_MEM_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000000ull) + ((block_id) & 1) * 0x60000000ull)
126 #define CVMX_LMCX_MEM_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000008ull) + ((block_id) & 1) * 0x60000000ull)
127 #define CVMX_LMCX_MODEREG_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A8ull) + ((block_id) & 3) * 0x1000000ull)
128 #define CVMX_LMCX_MODEREG_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000260ull) + ((block_id) & 3) * 0x1000000ull)
CVMX_LMCX_NXM(unsigned long block_id)129 static inline uint64_t CVMX_LMCX_NXM(unsigned long block_id)
130 {
131 switch (cvmx_get_octeon_family()) {
132 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
133 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
134 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
135 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
136 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
137 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
138 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
139 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
140 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
141 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
142 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x1000000ull;
143 }
144 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
145 }
146
147 #define CVMX_LMCX_OPS_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D8ull) + ((block_id) & 3) * 0x1000000ull)
148 #define CVMX_LMCX_OPS_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000060ull) + ((block_id) & 1) * 0x60000000ull)
149 #define CVMX_LMCX_OPS_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000058ull) + ((block_id) & 1) * 0x60000000ull)
150 #define CVMX_LMCX_PHY_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000210ull) + ((block_id) & 3) * 0x1000000ull)
151 #define CVMX_LMCX_PLL_BWCTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000040ull))
152 #define CVMX_LMCX_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A8ull) + ((block_id) & 1) * 0x60000000ull)
153 #define CVMX_LMCX_PLL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B0ull) + ((block_id) & 1) * 0x60000000ull)
154 #define CVMX_LMCX_READ_LEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000140ull) + ((block_id) & 1) * 0x60000000ull)
155 #define CVMX_LMCX_READ_LEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000148ull) + ((block_id) & 1) * 0x60000000ull)
156 #define CVMX_LMCX_READ_LEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000100ull) + (((offset) & 3) + ((block_id) & 1) * 0xC000000ull) * 8)
157 #define CVMX_LMCX_RESET_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000180ull) + ((block_id) & 3) * 0x1000000ull)
158 #define CVMX_LMCX_RLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A0ull) + ((block_id) & 3) * 0x1000000ull)
159 #define CVMX_LMCX_RLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A8ull) + ((block_id) & 3) * 0x1000000ull)
160 #define CVMX_LMCX_RLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000280ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8)
161 #define CVMX_LMCX_RODT_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A0ull) + ((block_id) & 1) * 0x60000000ull)
162 #define CVMX_LMCX_RODT_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000078ull) + ((block_id) & 1) * 0x60000000ull)
163 #define CVMX_LMCX_RODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x0001180088000268ull) + ((block_id) & 3) * 0x1000000ull)
164 #define CVMX_LMCX_SCRAMBLED_FADR(block_id) (CVMX_ADD_IO_SEG(0x0001180088000330ull))
165 #define CVMX_LMCX_SCRAMBLE_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000320ull))
166 #define CVMX_LMCX_SCRAMBLE_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000328ull))
167 #define CVMX_LMCX_SLOT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F8ull) + ((block_id) & 3) * 0x1000000ull)
168 #define CVMX_LMCX_SLOT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000200ull) + ((block_id) & 3) * 0x1000000ull)
169 #define CVMX_LMCX_SLOT_CTL2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000208ull) + ((block_id) & 3) * 0x1000000ull)
170 #define CVMX_LMCX_TIMING_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000198ull) + ((block_id) & 3) * 0x1000000ull)
171 #define CVMX_LMCX_TIMING_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A0ull) + ((block_id) & 3) * 0x1000000ull)
172 #define CVMX_LMCX_TRO_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000248ull) + ((block_id) & 3) * 0x1000000ull)
173 #define CVMX_LMCX_TRO_STAT(block_id) (CVMX_ADD_IO_SEG(0x0001180088000250ull) + ((block_id) & 3) * 0x1000000ull)
174 #define CVMX_LMCX_WLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000300ull) + ((block_id) & 3) * 0x1000000ull)
175 #define CVMX_LMCX_WLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000308ull) + ((block_id) & 3) * 0x1000000ull)
176 #define CVMX_LMCX_WLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800880002B0ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8)
177 #define CVMX_LMCX_WODT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000030ull) + ((block_id) & 1) * 0x60000000ull)
178 #define CVMX_LMCX_WODT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000080ull) + ((block_id) & 1) * 0x60000000ull)
179 #define CVMX_LMCX_WODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B0ull) + ((block_id) & 3) * 0x1000000ull)
180
181 union cvmx_lmcx_bist_ctl {
182 uint64_t u64;
183 struct cvmx_lmcx_bist_ctl_s {
184 #ifdef __BIG_ENDIAN_BITFIELD
185 uint64_t reserved_1_63:63;
186 uint64_t start:1;
187 #else
188 uint64_t start:1;
189 uint64_t reserved_1_63:63;
190 #endif
191 } s;
192 };
193
194 union cvmx_lmcx_bist_result {
195 uint64_t u64;
196 struct cvmx_lmcx_bist_result_s {
197 #ifdef __BIG_ENDIAN_BITFIELD
198 uint64_t reserved_11_63:53;
199 uint64_t csrd2e:1;
200 uint64_t csre2d:1;
201 uint64_t mwf:1;
202 uint64_t mwd:3;
203 uint64_t mwc:1;
204 uint64_t mrf:1;
205 uint64_t mrd:3;
206 #else
207 uint64_t mrd:3;
208 uint64_t mrf:1;
209 uint64_t mwc:1;
210 uint64_t mwd:3;
211 uint64_t mwf:1;
212 uint64_t csre2d:1;
213 uint64_t csrd2e:1;
214 uint64_t reserved_11_63:53;
215 #endif
216 } s;
217 struct cvmx_lmcx_bist_result_cn50xx {
218 #ifdef __BIG_ENDIAN_BITFIELD
219 uint64_t reserved_9_63:55;
220 uint64_t mwf:1;
221 uint64_t mwd:3;
222 uint64_t mwc:1;
223 uint64_t mrf:1;
224 uint64_t mrd:3;
225 #else
226 uint64_t mrd:3;
227 uint64_t mrf:1;
228 uint64_t mwc:1;
229 uint64_t mwd:3;
230 uint64_t mwf:1;
231 uint64_t reserved_9_63:55;
232 #endif
233 } cn50xx;
234 };
235
236 union cvmx_lmcx_char_ctl {
237 uint64_t u64;
238 struct cvmx_lmcx_char_ctl_s {
239 #ifdef __BIG_ENDIAN_BITFIELD
240 uint64_t reserved_44_63:20;
241 uint64_t dr:1;
242 uint64_t skew_on:1;
243 uint64_t en:1;
244 uint64_t sel:1;
245 uint64_t prog:8;
246 uint64_t prbs:32;
247 #else
248 uint64_t prbs:32;
249 uint64_t prog:8;
250 uint64_t sel:1;
251 uint64_t en:1;
252 uint64_t skew_on:1;
253 uint64_t dr:1;
254 uint64_t reserved_44_63:20;
255 #endif
256 } s;
257 struct cvmx_lmcx_char_ctl_cn63xx {
258 #ifdef __BIG_ENDIAN_BITFIELD
259 uint64_t reserved_42_63:22;
260 uint64_t en:1;
261 uint64_t sel:1;
262 uint64_t prog:8;
263 uint64_t prbs:32;
264 #else
265 uint64_t prbs:32;
266 uint64_t prog:8;
267 uint64_t sel:1;
268 uint64_t en:1;
269 uint64_t reserved_42_63:22;
270 #endif
271 } cn63xx;
272 };
273
274 union cvmx_lmcx_char_mask0 {
275 uint64_t u64;
276 struct cvmx_lmcx_char_mask0_s {
277 #ifdef __BIG_ENDIAN_BITFIELD
278 uint64_t mask:64;
279 #else
280 uint64_t mask:64;
281 #endif
282 } s;
283 };
284
285 union cvmx_lmcx_char_mask1 {
286 uint64_t u64;
287 struct cvmx_lmcx_char_mask1_s {
288 #ifdef __BIG_ENDIAN_BITFIELD
289 uint64_t reserved_8_63:56;
290 uint64_t mask:8;
291 #else
292 uint64_t mask:8;
293 uint64_t reserved_8_63:56;
294 #endif
295 } s;
296 };
297
298 union cvmx_lmcx_char_mask2 {
299 uint64_t u64;
300 struct cvmx_lmcx_char_mask2_s {
301 #ifdef __BIG_ENDIAN_BITFIELD
302 uint64_t mask:64;
303 #else
304 uint64_t mask:64;
305 #endif
306 } s;
307 };
308
309 union cvmx_lmcx_char_mask3 {
310 uint64_t u64;
311 struct cvmx_lmcx_char_mask3_s {
312 #ifdef __BIG_ENDIAN_BITFIELD
313 uint64_t reserved_8_63:56;
314 uint64_t mask:8;
315 #else
316 uint64_t mask:8;
317 uint64_t reserved_8_63:56;
318 #endif
319 } s;
320 };
321
322 union cvmx_lmcx_char_mask4 {
323 uint64_t u64;
324 struct cvmx_lmcx_char_mask4_s {
325 #ifdef __BIG_ENDIAN_BITFIELD
326 uint64_t reserved_33_63:31;
327 uint64_t reset_n_mask:1;
328 uint64_t a_mask:16;
329 uint64_t ba_mask:3;
330 uint64_t we_n_mask:1;
331 uint64_t cas_n_mask:1;
332 uint64_t ras_n_mask:1;
333 uint64_t odt1_mask:2;
334 uint64_t odt0_mask:2;
335 uint64_t cs1_n_mask:2;
336 uint64_t cs0_n_mask:2;
337 uint64_t cke_mask:2;
338 #else
339 uint64_t cke_mask:2;
340 uint64_t cs0_n_mask:2;
341 uint64_t cs1_n_mask:2;
342 uint64_t odt0_mask:2;
343 uint64_t odt1_mask:2;
344 uint64_t ras_n_mask:1;
345 uint64_t cas_n_mask:1;
346 uint64_t we_n_mask:1;
347 uint64_t ba_mask:3;
348 uint64_t a_mask:16;
349 uint64_t reset_n_mask:1;
350 uint64_t reserved_33_63:31;
351 #endif
352 } s;
353 };
354
355 union cvmx_lmcx_comp_ctl {
356 uint64_t u64;
357 struct cvmx_lmcx_comp_ctl_s {
358 #ifdef __BIG_ENDIAN_BITFIELD
359 uint64_t reserved_32_63:32;
360 uint64_t nctl_csr:4;
361 uint64_t nctl_clk:4;
362 uint64_t nctl_cmd:4;
363 uint64_t nctl_dat:4;
364 uint64_t pctl_csr:4;
365 uint64_t pctl_clk:4;
366 uint64_t reserved_0_7:8;
367 #else
368 uint64_t reserved_0_7:8;
369 uint64_t pctl_clk:4;
370 uint64_t pctl_csr:4;
371 uint64_t nctl_dat:4;
372 uint64_t nctl_cmd:4;
373 uint64_t nctl_clk:4;
374 uint64_t nctl_csr:4;
375 uint64_t reserved_32_63:32;
376 #endif
377 } s;
378 struct cvmx_lmcx_comp_ctl_cn30xx {
379 #ifdef __BIG_ENDIAN_BITFIELD
380 uint64_t reserved_32_63:32;
381 uint64_t nctl_csr:4;
382 uint64_t nctl_clk:4;
383 uint64_t nctl_cmd:4;
384 uint64_t nctl_dat:4;
385 uint64_t pctl_csr:4;
386 uint64_t pctl_clk:4;
387 uint64_t pctl_cmd:4;
388 uint64_t pctl_dat:4;
389 #else
390 uint64_t pctl_dat:4;
391 uint64_t pctl_cmd:4;
392 uint64_t pctl_clk:4;
393 uint64_t pctl_csr:4;
394 uint64_t nctl_dat:4;
395 uint64_t nctl_cmd:4;
396 uint64_t nctl_clk:4;
397 uint64_t nctl_csr:4;
398 uint64_t reserved_32_63:32;
399 #endif
400 } cn30xx;
401 struct cvmx_lmcx_comp_ctl_cn50xx {
402 #ifdef __BIG_ENDIAN_BITFIELD
403 uint64_t reserved_32_63:32;
404 uint64_t nctl_csr:4;
405 uint64_t reserved_20_27:8;
406 uint64_t nctl_dat:4;
407 uint64_t pctl_csr:4;
408 uint64_t reserved_5_11:7;
409 uint64_t pctl_dat:5;
410 #else
411 uint64_t pctl_dat:5;
412 uint64_t reserved_5_11:7;
413 uint64_t pctl_csr:4;
414 uint64_t nctl_dat:4;
415 uint64_t reserved_20_27:8;
416 uint64_t nctl_csr:4;
417 uint64_t reserved_32_63:32;
418 #endif
419 } cn50xx;
420 struct cvmx_lmcx_comp_ctl_cn58xxp1 {
421 #ifdef __BIG_ENDIAN_BITFIELD
422 uint64_t reserved_32_63:32;
423 uint64_t nctl_csr:4;
424 uint64_t reserved_20_27:8;
425 uint64_t nctl_dat:4;
426 uint64_t pctl_csr:4;
427 uint64_t reserved_4_11:8;
428 uint64_t pctl_dat:4;
429 #else
430 uint64_t pctl_dat:4;
431 uint64_t reserved_4_11:8;
432 uint64_t pctl_csr:4;
433 uint64_t nctl_dat:4;
434 uint64_t reserved_20_27:8;
435 uint64_t nctl_csr:4;
436 uint64_t reserved_32_63:32;
437 #endif
438 } cn58xxp1;
439 };
440
441 union cvmx_lmcx_comp_ctl2 {
442 uint64_t u64;
443 struct cvmx_lmcx_comp_ctl2_s {
444 #ifdef __BIG_ENDIAN_BITFIELD
445 uint64_t reserved_34_63:30;
446 uint64_t ddr__ptune:4;
447 uint64_t ddr__ntune:4;
448 uint64_t m180:1;
449 uint64_t byp:1;
450 uint64_t ptune:4;
451 uint64_t ntune:4;
452 uint64_t rodt_ctl:4;
453 uint64_t cmd_ctl:4;
454 uint64_t ck_ctl:4;
455 uint64_t dqx_ctl:4;
456 #else
457 uint64_t dqx_ctl:4;
458 uint64_t ck_ctl:4;
459 uint64_t cmd_ctl:4;
460 uint64_t rodt_ctl:4;
461 uint64_t ntune:4;
462 uint64_t ptune:4;
463 uint64_t byp:1;
464 uint64_t m180:1;
465 uint64_t ddr__ntune:4;
466 uint64_t ddr__ptune:4;
467 uint64_t reserved_34_63:30;
468 #endif
469 } s;
470 };
471
472 union cvmx_lmcx_config {
473 uint64_t u64;
474 struct cvmx_lmcx_config_s {
475 #ifdef __BIG_ENDIAN_BITFIELD
476 uint64_t reserved_61_63:3;
477 uint64_t mode32b:1;
478 uint64_t scrz:1;
479 uint64_t early_unload_d1_r1:1;
480 uint64_t early_unload_d1_r0:1;
481 uint64_t early_unload_d0_r1:1;
482 uint64_t early_unload_d0_r0:1;
483 uint64_t init_status:4;
484 uint64_t mirrmask:4;
485 uint64_t rankmask:4;
486 uint64_t rank_ena:1;
487 uint64_t sref_with_dll:1;
488 uint64_t early_dqx:1;
489 uint64_t sequence:3;
490 uint64_t ref_zqcs_int:19;
491 uint64_t reset:1;
492 uint64_t ecc_adr:1;
493 uint64_t forcewrite:4;
494 uint64_t idlepower:3;
495 uint64_t pbank_lsb:4;
496 uint64_t row_lsb:3;
497 uint64_t ecc_ena:1;
498 uint64_t init_start:1;
499 #else
500 uint64_t init_start:1;
501 uint64_t ecc_ena:1;
502 uint64_t row_lsb:3;
503 uint64_t pbank_lsb:4;
504 uint64_t idlepower:3;
505 uint64_t forcewrite:4;
506 uint64_t ecc_adr:1;
507 uint64_t reset:1;
508 uint64_t ref_zqcs_int:19;
509 uint64_t sequence:3;
510 uint64_t early_dqx:1;
511 uint64_t sref_with_dll:1;
512 uint64_t rank_ena:1;
513 uint64_t rankmask:4;
514 uint64_t mirrmask:4;
515 uint64_t init_status:4;
516 uint64_t early_unload_d0_r0:1;
517 uint64_t early_unload_d0_r1:1;
518 uint64_t early_unload_d1_r0:1;
519 uint64_t early_unload_d1_r1:1;
520 uint64_t scrz:1;
521 uint64_t mode32b:1;
522 uint64_t reserved_61_63:3;
523 #endif
524 } s;
525 struct cvmx_lmcx_config_cn63xx {
526 #ifdef __BIG_ENDIAN_BITFIELD
527 uint64_t reserved_59_63:5;
528 uint64_t early_unload_d1_r1:1;
529 uint64_t early_unload_d1_r0:1;
530 uint64_t early_unload_d0_r1:1;
531 uint64_t early_unload_d0_r0:1;
532 uint64_t init_status:4;
533 uint64_t mirrmask:4;
534 uint64_t rankmask:4;
535 uint64_t rank_ena:1;
536 uint64_t sref_with_dll:1;
537 uint64_t early_dqx:1;
538 uint64_t sequence:3;
539 uint64_t ref_zqcs_int:19;
540 uint64_t reset:1;
541 uint64_t ecc_adr:1;
542 uint64_t forcewrite:4;
543 uint64_t idlepower:3;
544 uint64_t pbank_lsb:4;
545 uint64_t row_lsb:3;
546 uint64_t ecc_ena:1;
547 uint64_t init_start:1;
548 #else
549 uint64_t init_start:1;
550 uint64_t ecc_ena:1;
551 uint64_t row_lsb:3;
552 uint64_t pbank_lsb:4;
553 uint64_t idlepower:3;
554 uint64_t forcewrite:4;
555 uint64_t ecc_adr:1;
556 uint64_t reset:1;
557 uint64_t ref_zqcs_int:19;
558 uint64_t sequence:3;
559 uint64_t early_dqx:1;
560 uint64_t sref_with_dll:1;
561 uint64_t rank_ena:1;
562 uint64_t rankmask:4;
563 uint64_t mirrmask:4;
564 uint64_t init_status:4;
565 uint64_t early_unload_d0_r0:1;
566 uint64_t early_unload_d0_r1:1;
567 uint64_t early_unload_d1_r0:1;
568 uint64_t early_unload_d1_r1:1;
569 uint64_t reserved_59_63:5;
570 #endif
571 } cn63xx;
572 struct cvmx_lmcx_config_cn63xxp1 {
573 #ifdef __BIG_ENDIAN_BITFIELD
574 uint64_t reserved_55_63:9;
575 uint64_t init_status:4;
576 uint64_t mirrmask:4;
577 uint64_t rankmask:4;
578 uint64_t rank_ena:1;
579 uint64_t sref_with_dll:1;
580 uint64_t early_dqx:1;
581 uint64_t sequence:3;
582 uint64_t ref_zqcs_int:19;
583 uint64_t reset:1;
584 uint64_t ecc_adr:1;
585 uint64_t forcewrite:4;
586 uint64_t idlepower:3;
587 uint64_t pbank_lsb:4;
588 uint64_t row_lsb:3;
589 uint64_t ecc_ena:1;
590 uint64_t init_start:1;
591 #else
592 uint64_t init_start:1;
593 uint64_t ecc_ena:1;
594 uint64_t row_lsb:3;
595 uint64_t pbank_lsb:4;
596 uint64_t idlepower:3;
597 uint64_t forcewrite:4;
598 uint64_t ecc_adr:1;
599 uint64_t reset:1;
600 uint64_t ref_zqcs_int:19;
601 uint64_t sequence:3;
602 uint64_t early_dqx:1;
603 uint64_t sref_with_dll:1;
604 uint64_t rank_ena:1;
605 uint64_t rankmask:4;
606 uint64_t mirrmask:4;
607 uint64_t init_status:4;
608 uint64_t reserved_55_63:9;
609 #endif
610 } cn63xxp1;
611 struct cvmx_lmcx_config_cn66xx {
612 #ifdef __BIG_ENDIAN_BITFIELD
613 uint64_t reserved_60_63:4;
614 uint64_t scrz:1;
615 uint64_t early_unload_d1_r1:1;
616 uint64_t early_unload_d1_r0:1;
617 uint64_t early_unload_d0_r1:1;
618 uint64_t early_unload_d0_r0:1;
619 uint64_t init_status:4;
620 uint64_t mirrmask:4;
621 uint64_t rankmask:4;
622 uint64_t rank_ena:1;
623 uint64_t sref_with_dll:1;
624 uint64_t early_dqx:1;
625 uint64_t sequence:3;
626 uint64_t ref_zqcs_int:19;
627 uint64_t reset:1;
628 uint64_t ecc_adr:1;
629 uint64_t forcewrite:4;
630 uint64_t idlepower:3;
631 uint64_t pbank_lsb:4;
632 uint64_t row_lsb:3;
633 uint64_t ecc_ena:1;
634 uint64_t init_start:1;
635 #else
636 uint64_t init_start:1;
637 uint64_t ecc_ena:1;
638 uint64_t row_lsb:3;
639 uint64_t pbank_lsb:4;
640 uint64_t idlepower:3;
641 uint64_t forcewrite:4;
642 uint64_t ecc_adr:1;
643 uint64_t reset:1;
644 uint64_t ref_zqcs_int:19;
645 uint64_t sequence:3;
646 uint64_t early_dqx:1;
647 uint64_t sref_with_dll:1;
648 uint64_t rank_ena:1;
649 uint64_t rankmask:4;
650 uint64_t mirrmask:4;
651 uint64_t init_status:4;
652 uint64_t early_unload_d0_r0:1;
653 uint64_t early_unload_d0_r1:1;
654 uint64_t early_unload_d1_r0:1;
655 uint64_t early_unload_d1_r1:1;
656 uint64_t scrz:1;
657 uint64_t reserved_60_63:4;
658 #endif
659 } cn66xx;
660 };
661
662 union cvmx_lmcx_control {
663 uint64_t u64;
664 struct cvmx_lmcx_control_s {
665 #ifdef __BIG_ENDIAN_BITFIELD
666 uint64_t scramble_ena:1;
667 uint64_t thrcnt:12;
668 uint64_t persub:8;
669 uint64_t thrmax:4;
670 uint64_t crm_cnt:5;
671 uint64_t crm_thr:5;
672 uint64_t crm_max:5;
673 uint64_t rodt_bprch:1;
674 uint64_t wodt_bprch:1;
675 uint64_t bprch:2;
676 uint64_t ext_zqcs_dis:1;
677 uint64_t int_zqcs_dis:1;
678 uint64_t auto_dclkdis:1;
679 uint64_t xor_bank:1;
680 uint64_t max_write_batch:4;
681 uint64_t nxm_write_en:1;
682 uint64_t elev_prio_dis:1;
683 uint64_t inorder_wr:1;
684 uint64_t inorder_rd:1;
685 uint64_t throttle_wr:1;
686 uint64_t throttle_rd:1;
687 uint64_t fprch2:2;
688 uint64_t pocas:1;
689 uint64_t ddr2t:1;
690 uint64_t bwcnt:1;
691 uint64_t rdimm_ena:1;
692 #else
693 uint64_t rdimm_ena:1;
694 uint64_t bwcnt:1;
695 uint64_t ddr2t:1;
696 uint64_t pocas:1;
697 uint64_t fprch2:2;
698 uint64_t throttle_rd:1;
699 uint64_t throttle_wr:1;
700 uint64_t inorder_rd:1;
701 uint64_t inorder_wr:1;
702 uint64_t elev_prio_dis:1;
703 uint64_t nxm_write_en:1;
704 uint64_t max_write_batch:4;
705 uint64_t xor_bank:1;
706 uint64_t auto_dclkdis:1;
707 uint64_t int_zqcs_dis:1;
708 uint64_t ext_zqcs_dis:1;
709 uint64_t bprch:2;
710 uint64_t wodt_bprch:1;
711 uint64_t rodt_bprch:1;
712 uint64_t crm_max:5;
713 uint64_t crm_thr:5;
714 uint64_t crm_cnt:5;
715 uint64_t thrmax:4;
716 uint64_t persub:8;
717 uint64_t thrcnt:12;
718 uint64_t scramble_ena:1;
719 #endif
720 } s;
721 struct cvmx_lmcx_control_cn63xx {
722 #ifdef __BIG_ENDIAN_BITFIELD
723 uint64_t reserved_24_63:40;
724 uint64_t rodt_bprch:1;
725 uint64_t wodt_bprch:1;
726 uint64_t bprch:2;
727 uint64_t ext_zqcs_dis:1;
728 uint64_t int_zqcs_dis:1;
729 uint64_t auto_dclkdis:1;
730 uint64_t xor_bank:1;
731 uint64_t max_write_batch:4;
732 uint64_t nxm_write_en:1;
733 uint64_t elev_prio_dis:1;
734 uint64_t inorder_wr:1;
735 uint64_t inorder_rd:1;
736 uint64_t throttle_wr:1;
737 uint64_t throttle_rd:1;
738 uint64_t fprch2:2;
739 uint64_t pocas:1;
740 uint64_t ddr2t:1;
741 uint64_t bwcnt:1;
742 uint64_t rdimm_ena:1;
743 #else
744 uint64_t rdimm_ena:1;
745 uint64_t bwcnt:1;
746 uint64_t ddr2t:1;
747 uint64_t pocas:1;
748 uint64_t fprch2:2;
749 uint64_t throttle_rd:1;
750 uint64_t throttle_wr:1;
751 uint64_t inorder_rd:1;
752 uint64_t inorder_wr:1;
753 uint64_t elev_prio_dis:1;
754 uint64_t nxm_write_en:1;
755 uint64_t max_write_batch:4;
756 uint64_t xor_bank:1;
757 uint64_t auto_dclkdis:1;
758 uint64_t int_zqcs_dis:1;
759 uint64_t ext_zqcs_dis:1;
760 uint64_t bprch:2;
761 uint64_t wodt_bprch:1;
762 uint64_t rodt_bprch:1;
763 uint64_t reserved_24_63:40;
764 #endif
765 } cn63xx;
766 struct cvmx_lmcx_control_cn66xx {
767 #ifdef __BIG_ENDIAN_BITFIELD
768 uint64_t scramble_ena:1;
769 uint64_t reserved_24_62:39;
770 uint64_t rodt_bprch:1;
771 uint64_t wodt_bprch:1;
772 uint64_t bprch:2;
773 uint64_t ext_zqcs_dis:1;
774 uint64_t int_zqcs_dis:1;
775 uint64_t auto_dclkdis:1;
776 uint64_t xor_bank:1;
777 uint64_t max_write_batch:4;
778 uint64_t nxm_write_en:1;
779 uint64_t elev_prio_dis:1;
780 uint64_t inorder_wr:1;
781 uint64_t inorder_rd:1;
782 uint64_t throttle_wr:1;
783 uint64_t throttle_rd:1;
784 uint64_t fprch2:2;
785 uint64_t pocas:1;
786 uint64_t ddr2t:1;
787 uint64_t bwcnt:1;
788 uint64_t rdimm_ena:1;
789 #else
790 uint64_t rdimm_ena:1;
791 uint64_t bwcnt:1;
792 uint64_t ddr2t:1;
793 uint64_t pocas:1;
794 uint64_t fprch2:2;
795 uint64_t throttle_rd:1;
796 uint64_t throttle_wr:1;
797 uint64_t inorder_rd:1;
798 uint64_t inorder_wr:1;
799 uint64_t elev_prio_dis:1;
800 uint64_t nxm_write_en:1;
801 uint64_t max_write_batch:4;
802 uint64_t xor_bank:1;
803 uint64_t auto_dclkdis:1;
804 uint64_t int_zqcs_dis:1;
805 uint64_t ext_zqcs_dis:1;
806 uint64_t bprch:2;
807 uint64_t wodt_bprch:1;
808 uint64_t rodt_bprch:1;
809 uint64_t reserved_24_62:39;
810 uint64_t scramble_ena:1;
811 #endif
812 } cn66xx;
813 struct cvmx_lmcx_control_cn68xx {
814 #ifdef __BIG_ENDIAN_BITFIELD
815 uint64_t reserved_63_63:1;
816 uint64_t thrcnt:12;
817 uint64_t persub:8;
818 uint64_t thrmax:4;
819 uint64_t crm_cnt:5;
820 uint64_t crm_thr:5;
821 uint64_t crm_max:5;
822 uint64_t rodt_bprch:1;
823 uint64_t wodt_bprch:1;
824 uint64_t bprch:2;
825 uint64_t ext_zqcs_dis:1;
826 uint64_t int_zqcs_dis:1;
827 uint64_t auto_dclkdis:1;
828 uint64_t xor_bank:1;
829 uint64_t max_write_batch:4;
830 uint64_t nxm_write_en:1;
831 uint64_t elev_prio_dis:1;
832 uint64_t inorder_wr:1;
833 uint64_t inorder_rd:1;
834 uint64_t throttle_wr:1;
835 uint64_t throttle_rd:1;
836 uint64_t fprch2:2;
837 uint64_t pocas:1;
838 uint64_t ddr2t:1;
839 uint64_t bwcnt:1;
840 uint64_t rdimm_ena:1;
841 #else
842 uint64_t rdimm_ena:1;
843 uint64_t bwcnt:1;
844 uint64_t ddr2t:1;
845 uint64_t pocas:1;
846 uint64_t fprch2:2;
847 uint64_t throttle_rd:1;
848 uint64_t throttle_wr:1;
849 uint64_t inorder_rd:1;
850 uint64_t inorder_wr:1;
851 uint64_t elev_prio_dis:1;
852 uint64_t nxm_write_en:1;
853 uint64_t max_write_batch:4;
854 uint64_t xor_bank:1;
855 uint64_t auto_dclkdis:1;
856 uint64_t int_zqcs_dis:1;
857 uint64_t ext_zqcs_dis:1;
858 uint64_t bprch:2;
859 uint64_t wodt_bprch:1;
860 uint64_t rodt_bprch:1;
861 uint64_t crm_max:5;
862 uint64_t crm_thr:5;
863 uint64_t crm_cnt:5;
864 uint64_t thrmax:4;
865 uint64_t persub:8;
866 uint64_t thrcnt:12;
867 uint64_t reserved_63_63:1;
868 #endif
869 } cn68xx;
870 };
871
872 union cvmx_lmcx_ctl {
873 uint64_t u64;
874 struct cvmx_lmcx_ctl_s {
875 #ifdef __BIG_ENDIAN_BITFIELD
876 uint64_t reserved_32_63:32;
877 uint64_t ddr__nctl:4;
878 uint64_t ddr__pctl:4;
879 uint64_t slow_scf:1;
880 uint64_t xor_bank:1;
881 uint64_t max_write_batch:4;
882 uint64_t pll_div2:1;
883 uint64_t pll_bypass:1;
884 uint64_t rdimm_ena:1;
885 uint64_t r2r_slot:1;
886 uint64_t inorder_mwf:1;
887 uint64_t inorder_mrf:1;
888 uint64_t reserved_10_11:2;
889 uint64_t fprch2:1;
890 uint64_t bprch:1;
891 uint64_t sil_lat:2;
892 uint64_t tskw:2;
893 uint64_t qs_dic:2;
894 uint64_t dic:2;
895 #else
896 uint64_t dic:2;
897 uint64_t qs_dic:2;
898 uint64_t tskw:2;
899 uint64_t sil_lat:2;
900 uint64_t bprch:1;
901 uint64_t fprch2:1;
902 uint64_t reserved_10_11:2;
903 uint64_t inorder_mrf:1;
904 uint64_t inorder_mwf:1;
905 uint64_t r2r_slot:1;
906 uint64_t rdimm_ena:1;
907 uint64_t pll_bypass:1;
908 uint64_t pll_div2:1;
909 uint64_t max_write_batch:4;
910 uint64_t xor_bank:1;
911 uint64_t slow_scf:1;
912 uint64_t ddr__pctl:4;
913 uint64_t ddr__nctl:4;
914 uint64_t reserved_32_63:32;
915 #endif
916 } s;
917 struct cvmx_lmcx_ctl_cn30xx {
918 #ifdef __BIG_ENDIAN_BITFIELD
919 uint64_t reserved_32_63:32;
920 uint64_t ddr__nctl:4;
921 uint64_t ddr__pctl:4;
922 uint64_t slow_scf:1;
923 uint64_t xor_bank:1;
924 uint64_t max_write_batch:4;
925 uint64_t pll_div2:1;
926 uint64_t pll_bypass:1;
927 uint64_t rdimm_ena:1;
928 uint64_t r2r_slot:1;
929 uint64_t inorder_mwf:1;
930 uint64_t inorder_mrf:1;
931 uint64_t dreset:1;
932 uint64_t mode32b:1;
933 uint64_t fprch2:1;
934 uint64_t bprch:1;
935 uint64_t sil_lat:2;
936 uint64_t tskw:2;
937 uint64_t qs_dic:2;
938 uint64_t dic:2;
939 #else
940 uint64_t dic:2;
941 uint64_t qs_dic:2;
942 uint64_t tskw:2;
943 uint64_t sil_lat:2;
944 uint64_t bprch:1;
945 uint64_t fprch2:1;
946 uint64_t mode32b:1;
947 uint64_t dreset:1;
948 uint64_t inorder_mrf:1;
949 uint64_t inorder_mwf:1;
950 uint64_t r2r_slot:1;
951 uint64_t rdimm_ena:1;
952 uint64_t pll_bypass:1;
953 uint64_t pll_div2:1;
954 uint64_t max_write_batch:4;
955 uint64_t xor_bank:1;
956 uint64_t slow_scf:1;
957 uint64_t ddr__pctl:4;
958 uint64_t ddr__nctl:4;
959 uint64_t reserved_32_63:32;
960 #endif
961 } cn30xx;
962 struct cvmx_lmcx_ctl_cn38xx {
963 #ifdef __BIG_ENDIAN_BITFIELD
964 uint64_t reserved_32_63:32;
965 uint64_t ddr__nctl:4;
966 uint64_t ddr__pctl:4;
967 uint64_t slow_scf:1;
968 uint64_t xor_bank:1;
969 uint64_t max_write_batch:4;
970 uint64_t reserved_16_17:2;
971 uint64_t rdimm_ena:1;
972 uint64_t r2r_slot:1;
973 uint64_t inorder_mwf:1;
974 uint64_t inorder_mrf:1;
975 uint64_t set_zero:1;
976 uint64_t mode128b:1;
977 uint64_t fprch2:1;
978 uint64_t bprch:1;
979 uint64_t sil_lat:2;
980 uint64_t tskw:2;
981 uint64_t qs_dic:2;
982 uint64_t dic:2;
983 #else
984 uint64_t dic:2;
985 uint64_t qs_dic:2;
986 uint64_t tskw:2;
987 uint64_t sil_lat:2;
988 uint64_t bprch:1;
989 uint64_t fprch2:1;
990 uint64_t mode128b:1;
991 uint64_t set_zero:1;
992 uint64_t inorder_mrf:1;
993 uint64_t inorder_mwf:1;
994 uint64_t r2r_slot:1;
995 uint64_t rdimm_ena:1;
996 uint64_t reserved_16_17:2;
997 uint64_t max_write_batch:4;
998 uint64_t xor_bank:1;
999 uint64_t slow_scf:1;
1000 uint64_t ddr__pctl:4;
1001 uint64_t ddr__nctl:4;
1002 uint64_t reserved_32_63:32;
1003 #endif
1004 } cn38xx;
1005 struct cvmx_lmcx_ctl_cn50xx {
1006 #ifdef __BIG_ENDIAN_BITFIELD
1007 uint64_t reserved_32_63:32;
1008 uint64_t ddr__nctl:4;
1009 uint64_t ddr__pctl:4;
1010 uint64_t slow_scf:1;
1011 uint64_t xor_bank:1;
1012 uint64_t max_write_batch:4;
1013 uint64_t reserved_17_17:1;
1014 uint64_t pll_bypass:1;
1015 uint64_t rdimm_ena:1;
1016 uint64_t r2r_slot:1;
1017 uint64_t inorder_mwf:1;
1018 uint64_t inorder_mrf:1;
1019 uint64_t dreset:1;
1020 uint64_t mode32b:1;
1021 uint64_t fprch2:1;
1022 uint64_t bprch:1;
1023 uint64_t sil_lat:2;
1024 uint64_t tskw:2;
1025 uint64_t qs_dic:2;
1026 uint64_t dic:2;
1027 #else
1028 uint64_t dic:2;
1029 uint64_t qs_dic:2;
1030 uint64_t tskw:2;
1031 uint64_t sil_lat:2;
1032 uint64_t bprch:1;
1033 uint64_t fprch2:1;
1034 uint64_t mode32b:1;
1035 uint64_t dreset:1;
1036 uint64_t inorder_mrf:1;
1037 uint64_t inorder_mwf:1;
1038 uint64_t r2r_slot:1;
1039 uint64_t rdimm_ena:1;
1040 uint64_t pll_bypass:1;
1041 uint64_t reserved_17_17:1;
1042 uint64_t max_write_batch:4;
1043 uint64_t xor_bank:1;
1044 uint64_t slow_scf:1;
1045 uint64_t ddr__pctl:4;
1046 uint64_t ddr__nctl:4;
1047 uint64_t reserved_32_63:32;
1048 #endif
1049 } cn50xx;
1050 struct cvmx_lmcx_ctl_cn52xx {
1051 #ifdef __BIG_ENDIAN_BITFIELD
1052 uint64_t reserved_32_63:32;
1053 uint64_t ddr__nctl:4;
1054 uint64_t ddr__pctl:4;
1055 uint64_t slow_scf:1;
1056 uint64_t xor_bank:1;
1057 uint64_t max_write_batch:4;
1058 uint64_t reserved_16_17:2;
1059 uint64_t rdimm_ena:1;
1060 uint64_t r2r_slot:1;
1061 uint64_t inorder_mwf:1;
1062 uint64_t inorder_mrf:1;
1063 uint64_t dreset:1;
1064 uint64_t mode32b:1;
1065 uint64_t fprch2:1;
1066 uint64_t bprch:1;
1067 uint64_t sil_lat:2;
1068 uint64_t tskw:2;
1069 uint64_t qs_dic:2;
1070 uint64_t dic:2;
1071 #else
1072 uint64_t dic:2;
1073 uint64_t qs_dic:2;
1074 uint64_t tskw:2;
1075 uint64_t sil_lat:2;
1076 uint64_t bprch:1;
1077 uint64_t fprch2:1;
1078 uint64_t mode32b:1;
1079 uint64_t dreset:1;
1080 uint64_t inorder_mrf:1;
1081 uint64_t inorder_mwf:1;
1082 uint64_t r2r_slot:1;
1083 uint64_t rdimm_ena:1;
1084 uint64_t reserved_16_17:2;
1085 uint64_t max_write_batch:4;
1086 uint64_t xor_bank:1;
1087 uint64_t slow_scf:1;
1088 uint64_t ddr__pctl:4;
1089 uint64_t ddr__nctl:4;
1090 uint64_t reserved_32_63:32;
1091 #endif
1092 } cn52xx;
1093 struct cvmx_lmcx_ctl_cn58xx {
1094 #ifdef __BIG_ENDIAN_BITFIELD
1095 uint64_t reserved_32_63:32;
1096 uint64_t ddr__nctl:4;
1097 uint64_t ddr__pctl:4;
1098 uint64_t slow_scf:1;
1099 uint64_t xor_bank:1;
1100 uint64_t max_write_batch:4;
1101 uint64_t reserved_16_17:2;
1102 uint64_t rdimm_ena:1;
1103 uint64_t r2r_slot:1;
1104 uint64_t inorder_mwf:1;
1105 uint64_t inorder_mrf:1;
1106 uint64_t dreset:1;
1107 uint64_t mode128b:1;
1108 uint64_t fprch2:1;
1109 uint64_t bprch:1;
1110 uint64_t sil_lat:2;
1111 uint64_t tskw:2;
1112 uint64_t qs_dic:2;
1113 uint64_t dic:2;
1114 #else
1115 uint64_t dic:2;
1116 uint64_t qs_dic:2;
1117 uint64_t tskw:2;
1118 uint64_t sil_lat:2;
1119 uint64_t bprch:1;
1120 uint64_t fprch2:1;
1121 uint64_t mode128b:1;
1122 uint64_t dreset:1;
1123 uint64_t inorder_mrf:1;
1124 uint64_t inorder_mwf:1;
1125 uint64_t r2r_slot:1;
1126 uint64_t rdimm_ena:1;
1127 uint64_t reserved_16_17:2;
1128 uint64_t max_write_batch:4;
1129 uint64_t xor_bank:1;
1130 uint64_t slow_scf:1;
1131 uint64_t ddr__pctl:4;
1132 uint64_t ddr__nctl:4;
1133 uint64_t reserved_32_63:32;
1134 #endif
1135 } cn58xx;
1136 };
1137
1138 union cvmx_lmcx_ctl1 {
1139 uint64_t u64;
1140 struct cvmx_lmcx_ctl1_s {
1141 #ifdef __BIG_ENDIAN_BITFIELD
1142 uint64_t reserved_21_63:43;
1143 uint64_t ecc_adr:1;
1144 uint64_t forcewrite:4;
1145 uint64_t idlepower:3;
1146 uint64_t sequence:3;
1147 uint64_t sil_mode:1;
1148 uint64_t dcc_enable:1;
1149 uint64_t reserved_2_7:6;
1150 uint64_t data_layout:2;
1151 #else
1152 uint64_t data_layout:2;
1153 uint64_t reserved_2_7:6;
1154 uint64_t dcc_enable:1;
1155 uint64_t sil_mode:1;
1156 uint64_t sequence:3;
1157 uint64_t idlepower:3;
1158 uint64_t forcewrite:4;
1159 uint64_t ecc_adr:1;
1160 uint64_t reserved_21_63:43;
1161 #endif
1162 } s;
1163 struct cvmx_lmcx_ctl1_cn30xx {
1164 #ifdef __BIG_ENDIAN_BITFIELD
1165 uint64_t reserved_2_63:62;
1166 uint64_t data_layout:2;
1167 #else
1168 uint64_t data_layout:2;
1169 uint64_t reserved_2_63:62;
1170 #endif
1171 } cn30xx;
1172 struct cvmx_lmcx_ctl1_cn50xx {
1173 #ifdef __BIG_ENDIAN_BITFIELD
1174 uint64_t reserved_10_63:54;
1175 uint64_t sil_mode:1;
1176 uint64_t dcc_enable:1;
1177 uint64_t reserved_2_7:6;
1178 uint64_t data_layout:2;
1179 #else
1180 uint64_t data_layout:2;
1181 uint64_t reserved_2_7:6;
1182 uint64_t dcc_enable:1;
1183 uint64_t sil_mode:1;
1184 uint64_t reserved_10_63:54;
1185 #endif
1186 } cn50xx;
1187 struct cvmx_lmcx_ctl1_cn52xx {
1188 #ifdef __BIG_ENDIAN_BITFIELD
1189 uint64_t reserved_21_63:43;
1190 uint64_t ecc_adr:1;
1191 uint64_t forcewrite:4;
1192 uint64_t idlepower:3;
1193 uint64_t sequence:3;
1194 uint64_t sil_mode:1;
1195 uint64_t dcc_enable:1;
1196 uint64_t reserved_0_7:8;
1197 #else
1198 uint64_t reserved_0_7:8;
1199 uint64_t dcc_enable:1;
1200 uint64_t sil_mode:1;
1201 uint64_t sequence:3;
1202 uint64_t idlepower:3;
1203 uint64_t forcewrite:4;
1204 uint64_t ecc_adr:1;
1205 uint64_t reserved_21_63:43;
1206 #endif
1207 } cn52xx;
1208 struct cvmx_lmcx_ctl1_cn58xx {
1209 #ifdef __BIG_ENDIAN_BITFIELD
1210 uint64_t reserved_10_63:54;
1211 uint64_t sil_mode:1;
1212 uint64_t dcc_enable:1;
1213 uint64_t reserved_0_7:8;
1214 #else
1215 uint64_t reserved_0_7:8;
1216 uint64_t dcc_enable:1;
1217 uint64_t sil_mode:1;
1218 uint64_t reserved_10_63:54;
1219 #endif
1220 } cn58xx;
1221 };
1222
1223 union cvmx_lmcx_dclk_cnt {
1224 uint64_t u64;
1225 struct cvmx_lmcx_dclk_cnt_s {
1226 #ifdef __BIG_ENDIAN_BITFIELD
1227 uint64_t dclkcnt:64;
1228 #else
1229 uint64_t dclkcnt:64;
1230 #endif
1231 } s;
1232 };
1233
1234 union cvmx_lmcx_dclk_cnt_hi {
1235 uint64_t u64;
1236 struct cvmx_lmcx_dclk_cnt_hi_s {
1237 #ifdef __BIG_ENDIAN_BITFIELD
1238 uint64_t reserved_32_63:32;
1239 uint64_t dclkcnt_hi:32;
1240 #else
1241 uint64_t dclkcnt_hi:32;
1242 uint64_t reserved_32_63:32;
1243 #endif
1244 } s;
1245 };
1246
1247 union cvmx_lmcx_dclk_cnt_lo {
1248 uint64_t u64;
1249 struct cvmx_lmcx_dclk_cnt_lo_s {
1250 #ifdef __BIG_ENDIAN_BITFIELD
1251 uint64_t reserved_32_63:32;
1252 uint64_t dclkcnt_lo:32;
1253 #else
1254 uint64_t dclkcnt_lo:32;
1255 uint64_t reserved_32_63:32;
1256 #endif
1257 } s;
1258 };
1259
1260 union cvmx_lmcx_dclk_ctl {
1261 uint64_t u64;
1262 struct cvmx_lmcx_dclk_ctl_s {
1263 #ifdef __BIG_ENDIAN_BITFIELD
1264 uint64_t reserved_8_63:56;
1265 uint64_t off90_ena:1;
1266 uint64_t dclk90_byp:1;
1267 uint64_t dclk90_ld:1;
1268 uint64_t dclk90_vlu:5;
1269 #else
1270 uint64_t dclk90_vlu:5;
1271 uint64_t dclk90_ld:1;
1272 uint64_t dclk90_byp:1;
1273 uint64_t off90_ena:1;
1274 uint64_t reserved_8_63:56;
1275 #endif
1276 } s;
1277 };
1278
1279 union cvmx_lmcx_ddr2_ctl {
1280 uint64_t u64;
1281 struct cvmx_lmcx_ddr2_ctl_s {
1282 #ifdef __BIG_ENDIAN_BITFIELD
1283 uint64_t reserved_32_63:32;
1284 uint64_t bank8:1;
1285 uint64_t burst8:1;
1286 uint64_t addlat:3;
1287 uint64_t pocas:1;
1288 uint64_t bwcnt:1;
1289 uint64_t twr:3;
1290 uint64_t silo_hc:1;
1291 uint64_t ddr_eof:4;
1292 uint64_t tfaw:5;
1293 uint64_t crip_mode:1;
1294 uint64_t ddr2t:1;
1295 uint64_t odt_ena:1;
1296 uint64_t qdll_ena:1;
1297 uint64_t dll90_vlu:5;
1298 uint64_t dll90_byp:1;
1299 uint64_t rdqs:1;
1300 uint64_t ddr2:1;
1301 #else
1302 uint64_t ddr2:1;
1303 uint64_t rdqs:1;
1304 uint64_t dll90_byp:1;
1305 uint64_t dll90_vlu:5;
1306 uint64_t qdll_ena:1;
1307 uint64_t odt_ena:1;
1308 uint64_t ddr2t:1;
1309 uint64_t crip_mode:1;
1310 uint64_t tfaw:5;
1311 uint64_t ddr_eof:4;
1312 uint64_t silo_hc:1;
1313 uint64_t twr:3;
1314 uint64_t bwcnt:1;
1315 uint64_t pocas:1;
1316 uint64_t addlat:3;
1317 uint64_t burst8:1;
1318 uint64_t bank8:1;
1319 uint64_t reserved_32_63:32;
1320 #endif
1321 } s;
1322 struct cvmx_lmcx_ddr2_ctl_cn30xx {
1323 #ifdef __BIG_ENDIAN_BITFIELD
1324 uint64_t reserved_32_63:32;
1325 uint64_t bank8:1;
1326 uint64_t burst8:1;
1327 uint64_t addlat:3;
1328 uint64_t pocas:1;
1329 uint64_t bwcnt:1;
1330 uint64_t twr:3;
1331 uint64_t silo_hc:1;
1332 uint64_t ddr_eof:4;
1333 uint64_t tfaw:5;
1334 uint64_t crip_mode:1;
1335 uint64_t ddr2t:1;
1336 uint64_t odt_ena:1;
1337 uint64_t qdll_ena:1;
1338 uint64_t dll90_vlu:5;
1339 uint64_t dll90_byp:1;
1340 uint64_t reserved_1_1:1;
1341 uint64_t ddr2:1;
1342 #else
1343 uint64_t ddr2:1;
1344 uint64_t reserved_1_1:1;
1345 uint64_t dll90_byp:1;
1346 uint64_t dll90_vlu:5;
1347 uint64_t qdll_ena:1;
1348 uint64_t odt_ena:1;
1349 uint64_t ddr2t:1;
1350 uint64_t crip_mode:1;
1351 uint64_t tfaw:5;
1352 uint64_t ddr_eof:4;
1353 uint64_t silo_hc:1;
1354 uint64_t twr:3;
1355 uint64_t bwcnt:1;
1356 uint64_t pocas:1;
1357 uint64_t addlat:3;
1358 uint64_t burst8:1;
1359 uint64_t bank8:1;
1360 uint64_t reserved_32_63:32;
1361 #endif
1362 } cn30xx;
1363 };
1364
1365 union cvmx_lmcx_ddr_pll_ctl {
1366 uint64_t u64;
1367 struct cvmx_lmcx_ddr_pll_ctl_s {
1368 #ifdef __BIG_ENDIAN_BITFIELD
1369 uint64_t reserved_27_63:37;
1370 uint64_t jtg_test_mode:1;
1371 uint64_t dfm_div_reset:1;
1372 uint64_t dfm_ps_en:3;
1373 uint64_t ddr_div_reset:1;
1374 uint64_t ddr_ps_en:3;
1375 uint64_t diffamp:4;
1376 uint64_t cps:3;
1377 uint64_t cpb:3;
1378 uint64_t reset_n:1;
1379 uint64_t clkf:7;
1380 #else
1381 uint64_t clkf:7;
1382 uint64_t reset_n:1;
1383 uint64_t cpb:3;
1384 uint64_t cps:3;
1385 uint64_t diffamp:4;
1386 uint64_t ddr_ps_en:3;
1387 uint64_t ddr_div_reset:1;
1388 uint64_t dfm_ps_en:3;
1389 uint64_t dfm_div_reset:1;
1390 uint64_t jtg_test_mode:1;
1391 uint64_t reserved_27_63:37;
1392 #endif
1393 } s;
1394 };
1395
1396 union cvmx_lmcx_delay_cfg {
1397 uint64_t u64;
1398 struct cvmx_lmcx_delay_cfg_s {
1399 #ifdef __BIG_ENDIAN_BITFIELD
1400 uint64_t reserved_15_63:49;
1401 uint64_t dq:5;
1402 uint64_t cmd:5;
1403 uint64_t clk:5;
1404 #else
1405 uint64_t clk:5;
1406 uint64_t cmd:5;
1407 uint64_t dq:5;
1408 uint64_t reserved_15_63:49;
1409 #endif
1410 } s;
1411 struct cvmx_lmcx_delay_cfg_cn38xx {
1412 #ifdef __BIG_ENDIAN_BITFIELD
1413 uint64_t reserved_14_63:50;
1414 uint64_t dq:4;
1415 uint64_t reserved_9_9:1;
1416 uint64_t cmd:4;
1417 uint64_t reserved_4_4:1;
1418 uint64_t clk:4;
1419 #else
1420 uint64_t clk:4;
1421 uint64_t reserved_4_4:1;
1422 uint64_t cmd:4;
1423 uint64_t reserved_9_9:1;
1424 uint64_t dq:4;
1425 uint64_t reserved_14_63:50;
1426 #endif
1427 } cn38xx;
1428 };
1429
1430 union cvmx_lmcx_dimmx_params {
1431 uint64_t u64;
1432 struct cvmx_lmcx_dimmx_params_s {
1433 #ifdef __BIG_ENDIAN_BITFIELD
1434 uint64_t rc15:4;
1435 uint64_t rc14:4;
1436 uint64_t rc13:4;
1437 uint64_t rc12:4;
1438 uint64_t rc11:4;
1439 uint64_t rc10:4;
1440 uint64_t rc9:4;
1441 uint64_t rc8:4;
1442 uint64_t rc7:4;
1443 uint64_t rc6:4;
1444 uint64_t rc5:4;
1445 uint64_t rc4:4;
1446 uint64_t rc3:4;
1447 uint64_t rc2:4;
1448 uint64_t rc1:4;
1449 uint64_t rc0:4;
1450 #else
1451 uint64_t rc0:4;
1452 uint64_t rc1:4;
1453 uint64_t rc2:4;
1454 uint64_t rc3:4;
1455 uint64_t rc4:4;
1456 uint64_t rc5:4;
1457 uint64_t rc6:4;
1458 uint64_t rc7:4;
1459 uint64_t rc8:4;
1460 uint64_t rc9:4;
1461 uint64_t rc10:4;
1462 uint64_t rc11:4;
1463 uint64_t rc12:4;
1464 uint64_t rc13:4;
1465 uint64_t rc14:4;
1466 uint64_t rc15:4;
1467 #endif
1468 } s;
1469 };
1470
1471 union cvmx_lmcx_dimm_ctl {
1472 uint64_t u64;
1473 struct cvmx_lmcx_dimm_ctl_s {
1474 #ifdef __BIG_ENDIAN_BITFIELD
1475 uint64_t reserved_46_63:18;
1476 uint64_t parity:1;
1477 uint64_t tcws:13;
1478 uint64_t dimm1_wmask:16;
1479 uint64_t dimm0_wmask:16;
1480 #else
1481 uint64_t dimm0_wmask:16;
1482 uint64_t dimm1_wmask:16;
1483 uint64_t tcws:13;
1484 uint64_t parity:1;
1485 uint64_t reserved_46_63:18;
1486 #endif
1487 } s;
1488 };
1489
1490 union cvmx_lmcx_dll_ctl {
1491 uint64_t u64;
1492 struct cvmx_lmcx_dll_ctl_s {
1493 #ifdef __BIG_ENDIAN_BITFIELD
1494 uint64_t reserved_8_63:56;
1495 uint64_t dreset:1;
1496 uint64_t dll90_byp:1;
1497 uint64_t dll90_ena:1;
1498 uint64_t dll90_vlu:5;
1499 #else
1500 uint64_t dll90_vlu:5;
1501 uint64_t dll90_ena:1;
1502 uint64_t dll90_byp:1;
1503 uint64_t dreset:1;
1504 uint64_t reserved_8_63:56;
1505 #endif
1506 } s;
1507 };
1508
1509 union cvmx_lmcx_dll_ctl2 {
1510 uint64_t u64;
1511 struct cvmx_lmcx_dll_ctl2_s {
1512 #ifdef __BIG_ENDIAN_BITFIELD
1513 uint64_t reserved_16_63:48;
1514 uint64_t intf_en:1;
1515 uint64_t dll_bringup:1;
1516 uint64_t dreset:1;
1517 uint64_t quad_dll_ena:1;
1518 uint64_t byp_sel:4;
1519 uint64_t byp_setting:8;
1520 #else
1521 uint64_t byp_setting:8;
1522 uint64_t byp_sel:4;
1523 uint64_t quad_dll_ena:1;
1524 uint64_t dreset:1;
1525 uint64_t dll_bringup:1;
1526 uint64_t intf_en:1;
1527 uint64_t reserved_16_63:48;
1528 #endif
1529 } s;
1530 struct cvmx_lmcx_dll_ctl2_cn63xx {
1531 #ifdef __BIG_ENDIAN_BITFIELD
1532 uint64_t reserved_15_63:49;
1533 uint64_t dll_bringup:1;
1534 uint64_t dreset:1;
1535 uint64_t quad_dll_ena:1;
1536 uint64_t byp_sel:4;
1537 uint64_t byp_setting:8;
1538 #else
1539 uint64_t byp_setting:8;
1540 uint64_t byp_sel:4;
1541 uint64_t quad_dll_ena:1;
1542 uint64_t dreset:1;
1543 uint64_t dll_bringup:1;
1544 uint64_t reserved_15_63:49;
1545 #endif
1546 } cn63xx;
1547 };
1548
1549 union cvmx_lmcx_dll_ctl3 {
1550 uint64_t u64;
1551 struct cvmx_lmcx_dll_ctl3_s {
1552 #ifdef __BIG_ENDIAN_BITFIELD
1553 uint64_t reserved_41_63:23;
1554 uint64_t dclk90_fwd:1;
1555 uint64_t ddr_90_dly_byp:1;
1556 uint64_t dclk90_recal_dis:1;
1557 uint64_t dclk90_byp_sel:1;
1558 uint64_t dclk90_byp_setting:8;
1559 uint64_t dll_fast:1;
1560 uint64_t dll90_setting:8;
1561 uint64_t fine_tune_mode:1;
1562 uint64_t dll_mode:1;
1563 uint64_t dll90_byte_sel:4;
1564 uint64_t offset_ena:1;
1565 uint64_t load_offset:1;
1566 uint64_t mode_sel:2;
1567 uint64_t byte_sel:4;
1568 uint64_t offset:6;
1569 #else
1570 uint64_t offset:6;
1571 uint64_t byte_sel:4;
1572 uint64_t mode_sel:2;
1573 uint64_t load_offset:1;
1574 uint64_t offset_ena:1;
1575 uint64_t dll90_byte_sel:4;
1576 uint64_t dll_mode:1;
1577 uint64_t fine_tune_mode:1;
1578 uint64_t dll90_setting:8;
1579 uint64_t dll_fast:1;
1580 uint64_t dclk90_byp_setting:8;
1581 uint64_t dclk90_byp_sel:1;
1582 uint64_t dclk90_recal_dis:1;
1583 uint64_t ddr_90_dly_byp:1;
1584 uint64_t dclk90_fwd:1;
1585 uint64_t reserved_41_63:23;
1586 #endif
1587 } s;
1588 struct cvmx_lmcx_dll_ctl3_cn63xx {
1589 #ifdef __BIG_ENDIAN_BITFIELD
1590 uint64_t reserved_29_63:35;
1591 uint64_t dll_fast:1;
1592 uint64_t dll90_setting:8;
1593 uint64_t fine_tune_mode:1;
1594 uint64_t dll_mode:1;
1595 uint64_t dll90_byte_sel:4;
1596 uint64_t offset_ena:1;
1597 uint64_t load_offset:1;
1598 uint64_t mode_sel:2;
1599 uint64_t byte_sel:4;
1600 uint64_t offset:6;
1601 #else
1602 uint64_t offset:6;
1603 uint64_t byte_sel:4;
1604 uint64_t mode_sel:2;
1605 uint64_t load_offset:1;
1606 uint64_t offset_ena:1;
1607 uint64_t dll90_byte_sel:4;
1608 uint64_t dll_mode:1;
1609 uint64_t fine_tune_mode:1;
1610 uint64_t dll90_setting:8;
1611 uint64_t dll_fast:1;
1612 uint64_t reserved_29_63:35;
1613 #endif
1614 } cn63xx;
1615 };
1616
1617 union cvmx_lmcx_dual_memcfg {
1618 uint64_t u64;
1619 struct cvmx_lmcx_dual_memcfg_s {
1620 #ifdef __BIG_ENDIAN_BITFIELD
1621 uint64_t reserved_20_63:44;
1622 uint64_t bank8:1;
1623 uint64_t row_lsb:3;
1624 uint64_t reserved_8_15:8;
1625 uint64_t cs_mask:8;
1626 #else
1627 uint64_t cs_mask:8;
1628 uint64_t reserved_8_15:8;
1629 uint64_t row_lsb:3;
1630 uint64_t bank8:1;
1631 uint64_t reserved_20_63:44;
1632 #endif
1633 } s;
1634 struct cvmx_lmcx_dual_memcfg_cn61xx {
1635 #ifdef __BIG_ENDIAN_BITFIELD
1636 uint64_t reserved_19_63:45;
1637 uint64_t row_lsb:3;
1638 uint64_t reserved_8_15:8;
1639 uint64_t cs_mask:8;
1640 #else
1641 uint64_t cs_mask:8;
1642 uint64_t reserved_8_15:8;
1643 uint64_t row_lsb:3;
1644 uint64_t reserved_19_63:45;
1645 #endif
1646 } cn61xx;
1647 };
1648
1649 union cvmx_lmcx_ecc_synd {
1650 uint64_t u64;
1651 struct cvmx_lmcx_ecc_synd_s {
1652 #ifdef __BIG_ENDIAN_BITFIELD
1653 uint64_t reserved_32_63:32;
1654 uint64_t mrdsyn3:8;
1655 uint64_t mrdsyn2:8;
1656 uint64_t mrdsyn1:8;
1657 uint64_t mrdsyn0:8;
1658 #else
1659 uint64_t mrdsyn0:8;
1660 uint64_t mrdsyn1:8;
1661 uint64_t mrdsyn2:8;
1662 uint64_t mrdsyn3:8;
1663 uint64_t reserved_32_63:32;
1664 #endif
1665 } s;
1666 };
1667
1668 union cvmx_lmcx_fadr {
1669 uint64_t u64;
1670 struct cvmx_lmcx_fadr_s {
1671 #ifdef __BIG_ENDIAN_BITFIELD
1672 uint64_t reserved_0_63:64;
1673 #else
1674 uint64_t reserved_0_63:64;
1675 #endif
1676 } s;
1677 struct cvmx_lmcx_fadr_cn30xx {
1678 #ifdef __BIG_ENDIAN_BITFIELD
1679 uint64_t reserved_32_63:32;
1680 uint64_t fdimm:2;
1681 uint64_t fbunk:1;
1682 uint64_t fbank:3;
1683 uint64_t frow:14;
1684 uint64_t fcol:12;
1685 #else
1686 uint64_t fcol:12;
1687 uint64_t frow:14;
1688 uint64_t fbank:3;
1689 uint64_t fbunk:1;
1690 uint64_t fdimm:2;
1691 uint64_t reserved_32_63:32;
1692 #endif
1693 } cn30xx;
1694 struct cvmx_lmcx_fadr_cn61xx {
1695 #ifdef __BIG_ENDIAN_BITFIELD
1696 uint64_t reserved_36_63:28;
1697 uint64_t fdimm:2;
1698 uint64_t fbunk:1;
1699 uint64_t fbank:3;
1700 uint64_t frow:16;
1701 uint64_t fcol:14;
1702 #else
1703 uint64_t fcol:14;
1704 uint64_t frow:16;
1705 uint64_t fbank:3;
1706 uint64_t fbunk:1;
1707 uint64_t fdimm:2;
1708 uint64_t reserved_36_63:28;
1709 #endif
1710 } cn61xx;
1711 };
1712
1713 union cvmx_lmcx_ifb_cnt {
1714 uint64_t u64;
1715 struct cvmx_lmcx_ifb_cnt_s {
1716 #ifdef __BIG_ENDIAN_BITFIELD
1717 uint64_t ifbcnt:64;
1718 #else
1719 uint64_t ifbcnt:64;
1720 #endif
1721 } s;
1722 };
1723
1724 union cvmx_lmcx_ifb_cnt_hi {
1725 uint64_t u64;
1726 struct cvmx_lmcx_ifb_cnt_hi_s {
1727 #ifdef __BIG_ENDIAN_BITFIELD
1728 uint64_t reserved_32_63:32;
1729 uint64_t ifbcnt_hi:32;
1730 #else
1731 uint64_t ifbcnt_hi:32;
1732 uint64_t reserved_32_63:32;
1733 #endif
1734 } s;
1735 };
1736
1737 union cvmx_lmcx_ifb_cnt_lo {
1738 uint64_t u64;
1739 struct cvmx_lmcx_ifb_cnt_lo_s {
1740 #ifdef __BIG_ENDIAN_BITFIELD
1741 uint64_t reserved_32_63:32;
1742 uint64_t ifbcnt_lo:32;
1743 #else
1744 uint64_t ifbcnt_lo:32;
1745 uint64_t reserved_32_63:32;
1746 #endif
1747 } s;
1748 };
1749
1750 union cvmx_lmcx_int {
1751 uint64_t u64;
1752 struct cvmx_lmcx_int_s {
1753 #ifdef __BIG_ENDIAN_BITFIELD
1754 uint64_t reserved_9_63:55;
1755 uint64_t ded_err:4;
1756 uint64_t sec_err:4;
1757 uint64_t nxm_wr_err:1;
1758 #else
1759 uint64_t nxm_wr_err:1;
1760 uint64_t sec_err:4;
1761 uint64_t ded_err:4;
1762 uint64_t reserved_9_63:55;
1763 #endif
1764 } s;
1765 };
1766
1767 union cvmx_lmcx_int_en {
1768 uint64_t u64;
1769 struct cvmx_lmcx_int_en_s {
1770 #ifdef __BIG_ENDIAN_BITFIELD
1771 uint64_t reserved_3_63:61;
1772 uint64_t intr_ded_ena:1;
1773 uint64_t intr_sec_ena:1;
1774 uint64_t intr_nxm_wr_ena:1;
1775 #else
1776 uint64_t intr_nxm_wr_ena:1;
1777 uint64_t intr_sec_ena:1;
1778 uint64_t intr_ded_ena:1;
1779 uint64_t reserved_3_63:61;
1780 #endif
1781 } s;
1782 };
1783
1784 union cvmx_lmcx_mem_cfg0 {
1785 uint64_t u64;
1786 struct cvmx_lmcx_mem_cfg0_s {
1787 #ifdef __BIG_ENDIAN_BITFIELD
1788 uint64_t reserved_32_63:32;
1789 uint64_t reset:1;
1790 uint64_t silo_qc:1;
1791 uint64_t bunk_ena:1;
1792 uint64_t ded_err:4;
1793 uint64_t sec_err:4;
1794 uint64_t intr_ded_ena:1;
1795 uint64_t intr_sec_ena:1;
1796 uint64_t tcl:4;
1797 uint64_t ref_int:6;
1798 uint64_t pbank_lsb:4;
1799 uint64_t row_lsb:3;
1800 uint64_t ecc_ena:1;
1801 uint64_t init_start:1;
1802 #else
1803 uint64_t init_start:1;
1804 uint64_t ecc_ena:1;
1805 uint64_t row_lsb:3;
1806 uint64_t pbank_lsb:4;
1807 uint64_t ref_int:6;
1808 uint64_t tcl:4;
1809 uint64_t intr_sec_ena:1;
1810 uint64_t intr_ded_ena:1;
1811 uint64_t sec_err:4;
1812 uint64_t ded_err:4;
1813 uint64_t bunk_ena:1;
1814 uint64_t silo_qc:1;
1815 uint64_t reset:1;
1816 uint64_t reserved_32_63:32;
1817 #endif
1818 } s;
1819 };
1820
1821 union cvmx_lmcx_mem_cfg1 {
1822 uint64_t u64;
1823 struct cvmx_lmcx_mem_cfg1_s {
1824 #ifdef __BIG_ENDIAN_BITFIELD
1825 uint64_t reserved_32_63:32;
1826 uint64_t comp_bypass:1;
1827 uint64_t trrd:3;
1828 uint64_t caslat:3;
1829 uint64_t tmrd:3;
1830 uint64_t trfc:5;
1831 uint64_t trp:4;
1832 uint64_t twtr:4;
1833 uint64_t trcd:4;
1834 uint64_t tras:5;
1835 #else
1836 uint64_t tras:5;
1837 uint64_t trcd:4;
1838 uint64_t twtr:4;
1839 uint64_t trp:4;
1840 uint64_t trfc:5;
1841 uint64_t tmrd:3;
1842 uint64_t caslat:3;
1843 uint64_t trrd:3;
1844 uint64_t comp_bypass:1;
1845 uint64_t reserved_32_63:32;
1846 #endif
1847 } s;
1848 struct cvmx_lmcx_mem_cfg1_cn38xx {
1849 #ifdef __BIG_ENDIAN_BITFIELD
1850 uint64_t reserved_31_63:33;
1851 uint64_t trrd:3;
1852 uint64_t caslat:3;
1853 uint64_t tmrd:3;
1854 uint64_t trfc:5;
1855 uint64_t trp:4;
1856 uint64_t twtr:4;
1857 uint64_t trcd:4;
1858 uint64_t tras:5;
1859 #else
1860 uint64_t tras:5;
1861 uint64_t trcd:4;
1862 uint64_t twtr:4;
1863 uint64_t trp:4;
1864 uint64_t trfc:5;
1865 uint64_t tmrd:3;
1866 uint64_t caslat:3;
1867 uint64_t trrd:3;
1868 uint64_t reserved_31_63:33;
1869 #endif
1870 } cn38xx;
1871 };
1872
1873 union cvmx_lmcx_modereg_params0 {
1874 uint64_t u64;
1875 struct cvmx_lmcx_modereg_params0_s {
1876 #ifdef __BIG_ENDIAN_BITFIELD
1877 uint64_t reserved_25_63:39;
1878 uint64_t ppd:1;
1879 uint64_t wrp:3;
1880 uint64_t dllr:1;
1881 uint64_t tm:1;
1882 uint64_t rbt:1;
1883 uint64_t cl:4;
1884 uint64_t bl:2;
1885 uint64_t qoff:1;
1886 uint64_t tdqs:1;
1887 uint64_t wlev:1;
1888 uint64_t al:2;
1889 uint64_t dll:1;
1890 uint64_t mpr:1;
1891 uint64_t mprloc:2;
1892 uint64_t cwl:3;
1893 #else
1894 uint64_t cwl:3;
1895 uint64_t mprloc:2;
1896 uint64_t mpr:1;
1897 uint64_t dll:1;
1898 uint64_t al:2;
1899 uint64_t wlev:1;
1900 uint64_t tdqs:1;
1901 uint64_t qoff:1;
1902 uint64_t bl:2;
1903 uint64_t cl:4;
1904 uint64_t rbt:1;
1905 uint64_t tm:1;
1906 uint64_t dllr:1;
1907 uint64_t wrp:3;
1908 uint64_t ppd:1;
1909 uint64_t reserved_25_63:39;
1910 #endif
1911 } s;
1912 };
1913
1914 union cvmx_lmcx_modereg_params1 {
1915 uint64_t u64;
1916 struct cvmx_lmcx_modereg_params1_s {
1917 #ifdef __BIG_ENDIAN_BITFIELD
1918 uint64_t reserved_48_63:16;
1919 uint64_t rtt_nom_11:3;
1920 uint64_t dic_11:2;
1921 uint64_t rtt_wr_11:2;
1922 uint64_t srt_11:1;
1923 uint64_t asr_11:1;
1924 uint64_t pasr_11:3;
1925 uint64_t rtt_nom_10:3;
1926 uint64_t dic_10:2;
1927 uint64_t rtt_wr_10:2;
1928 uint64_t srt_10:1;
1929 uint64_t asr_10:1;
1930 uint64_t pasr_10:3;
1931 uint64_t rtt_nom_01:3;
1932 uint64_t dic_01:2;
1933 uint64_t rtt_wr_01:2;
1934 uint64_t srt_01:1;
1935 uint64_t asr_01:1;
1936 uint64_t pasr_01:3;
1937 uint64_t rtt_nom_00:3;
1938 uint64_t dic_00:2;
1939 uint64_t rtt_wr_00:2;
1940 uint64_t srt_00:1;
1941 uint64_t asr_00:1;
1942 uint64_t pasr_00:3;
1943 #else
1944 uint64_t pasr_00:3;
1945 uint64_t asr_00:1;
1946 uint64_t srt_00:1;
1947 uint64_t rtt_wr_00:2;
1948 uint64_t dic_00:2;
1949 uint64_t rtt_nom_00:3;
1950 uint64_t pasr_01:3;
1951 uint64_t asr_01:1;
1952 uint64_t srt_01:1;
1953 uint64_t rtt_wr_01:2;
1954 uint64_t dic_01:2;
1955 uint64_t rtt_nom_01:3;
1956 uint64_t pasr_10:3;
1957 uint64_t asr_10:1;
1958 uint64_t srt_10:1;
1959 uint64_t rtt_wr_10:2;
1960 uint64_t dic_10:2;
1961 uint64_t rtt_nom_10:3;
1962 uint64_t pasr_11:3;
1963 uint64_t asr_11:1;
1964 uint64_t srt_11:1;
1965 uint64_t rtt_wr_11:2;
1966 uint64_t dic_11:2;
1967 uint64_t rtt_nom_11:3;
1968 uint64_t reserved_48_63:16;
1969 #endif
1970 } s;
1971 };
1972
1973 union cvmx_lmcx_nxm {
1974 uint64_t u64;
1975 struct cvmx_lmcx_nxm_s {
1976 #ifdef __BIG_ENDIAN_BITFIELD
1977 uint64_t reserved_40_63:24;
1978 uint64_t mem_msb_d3_r1:4;
1979 uint64_t mem_msb_d3_r0:4;
1980 uint64_t mem_msb_d2_r1:4;
1981 uint64_t mem_msb_d2_r0:4;
1982 uint64_t mem_msb_d1_r1:4;
1983 uint64_t mem_msb_d1_r0:4;
1984 uint64_t mem_msb_d0_r1:4;
1985 uint64_t mem_msb_d0_r0:4;
1986 uint64_t cs_mask:8;
1987 #else
1988 uint64_t cs_mask:8;
1989 uint64_t mem_msb_d0_r0:4;
1990 uint64_t mem_msb_d0_r1:4;
1991 uint64_t mem_msb_d1_r0:4;
1992 uint64_t mem_msb_d1_r1:4;
1993 uint64_t mem_msb_d2_r0:4;
1994 uint64_t mem_msb_d2_r1:4;
1995 uint64_t mem_msb_d3_r0:4;
1996 uint64_t mem_msb_d3_r1:4;
1997 uint64_t reserved_40_63:24;
1998 #endif
1999 } s;
2000 struct cvmx_lmcx_nxm_cn52xx {
2001 #ifdef __BIG_ENDIAN_BITFIELD
2002 uint64_t reserved_8_63:56;
2003 uint64_t cs_mask:8;
2004 #else
2005 uint64_t cs_mask:8;
2006 uint64_t reserved_8_63:56;
2007 #endif
2008 } cn52xx;
2009 };
2010
2011 union cvmx_lmcx_ops_cnt {
2012 uint64_t u64;
2013 struct cvmx_lmcx_ops_cnt_s {
2014 #ifdef __BIG_ENDIAN_BITFIELD
2015 uint64_t opscnt:64;
2016 #else
2017 uint64_t opscnt:64;
2018 #endif
2019 } s;
2020 };
2021
2022 union cvmx_lmcx_ops_cnt_hi {
2023 uint64_t u64;
2024 struct cvmx_lmcx_ops_cnt_hi_s {
2025 #ifdef __BIG_ENDIAN_BITFIELD
2026 uint64_t reserved_32_63:32;
2027 uint64_t opscnt_hi:32;
2028 #else
2029 uint64_t opscnt_hi:32;
2030 uint64_t reserved_32_63:32;
2031 #endif
2032 } s;
2033 };
2034
2035 union cvmx_lmcx_ops_cnt_lo {
2036 uint64_t u64;
2037 struct cvmx_lmcx_ops_cnt_lo_s {
2038 #ifdef __BIG_ENDIAN_BITFIELD
2039 uint64_t reserved_32_63:32;
2040 uint64_t opscnt_lo:32;
2041 #else
2042 uint64_t opscnt_lo:32;
2043 uint64_t reserved_32_63:32;
2044 #endif
2045 } s;
2046 };
2047
2048 union cvmx_lmcx_phy_ctl {
2049 uint64_t u64;
2050 struct cvmx_lmcx_phy_ctl_s {
2051 #ifdef __BIG_ENDIAN_BITFIELD
2052 uint64_t reserved_15_63:49;
2053 uint64_t rx_always_on:1;
2054 uint64_t lv_mode:1;
2055 uint64_t ck_tune1:1;
2056 uint64_t ck_dlyout1:4;
2057 uint64_t ck_tune0:1;
2058 uint64_t ck_dlyout0:4;
2059 uint64_t loopback:1;
2060 uint64_t loopback_pos:1;
2061 uint64_t ts_stagger:1;
2062 #else
2063 uint64_t ts_stagger:1;
2064 uint64_t loopback_pos:1;
2065 uint64_t loopback:1;
2066 uint64_t ck_dlyout0:4;
2067 uint64_t ck_tune0:1;
2068 uint64_t ck_dlyout1:4;
2069 uint64_t ck_tune1:1;
2070 uint64_t lv_mode:1;
2071 uint64_t rx_always_on:1;
2072 uint64_t reserved_15_63:49;
2073 #endif
2074 } s;
2075 struct cvmx_lmcx_phy_ctl_cn63xxp1 {
2076 #ifdef __BIG_ENDIAN_BITFIELD
2077 uint64_t reserved_14_63:50;
2078 uint64_t lv_mode:1;
2079 uint64_t ck_tune1:1;
2080 uint64_t ck_dlyout1:4;
2081 uint64_t ck_tune0:1;
2082 uint64_t ck_dlyout0:4;
2083 uint64_t loopback:1;
2084 uint64_t loopback_pos:1;
2085 uint64_t ts_stagger:1;
2086 #else
2087 uint64_t ts_stagger:1;
2088 uint64_t loopback_pos:1;
2089 uint64_t loopback:1;
2090 uint64_t ck_dlyout0:4;
2091 uint64_t ck_tune0:1;
2092 uint64_t ck_dlyout1:4;
2093 uint64_t ck_tune1:1;
2094 uint64_t lv_mode:1;
2095 uint64_t reserved_14_63:50;
2096 #endif
2097 } cn63xxp1;
2098 };
2099
2100 union cvmx_lmcx_pll_bwctl {
2101 uint64_t u64;
2102 struct cvmx_lmcx_pll_bwctl_s {
2103 #ifdef __BIG_ENDIAN_BITFIELD
2104 uint64_t reserved_5_63:59;
2105 uint64_t bwupd:1;
2106 uint64_t bwctl:4;
2107 #else
2108 uint64_t bwctl:4;
2109 uint64_t bwupd:1;
2110 uint64_t reserved_5_63:59;
2111 #endif
2112 } s;
2113 };
2114
2115 union cvmx_lmcx_pll_ctl {
2116 uint64_t u64;
2117 struct cvmx_lmcx_pll_ctl_s {
2118 #ifdef __BIG_ENDIAN_BITFIELD
2119 uint64_t reserved_30_63:34;
2120 uint64_t bypass:1;
2121 uint64_t fasten_n:1;
2122 uint64_t div_reset:1;
2123 uint64_t reset_n:1;
2124 uint64_t clkf:12;
2125 uint64_t clkr:6;
2126 uint64_t reserved_6_7:2;
2127 uint64_t en16:1;
2128 uint64_t en12:1;
2129 uint64_t en8:1;
2130 uint64_t en6:1;
2131 uint64_t en4:1;
2132 uint64_t en2:1;
2133 #else
2134 uint64_t en2:1;
2135 uint64_t en4:1;
2136 uint64_t en6:1;
2137 uint64_t en8:1;
2138 uint64_t en12:1;
2139 uint64_t en16:1;
2140 uint64_t reserved_6_7:2;
2141 uint64_t clkr:6;
2142 uint64_t clkf:12;
2143 uint64_t reset_n:1;
2144 uint64_t div_reset:1;
2145 uint64_t fasten_n:1;
2146 uint64_t bypass:1;
2147 uint64_t reserved_30_63:34;
2148 #endif
2149 } s;
2150 struct cvmx_lmcx_pll_ctl_cn50xx {
2151 #ifdef __BIG_ENDIAN_BITFIELD
2152 uint64_t reserved_29_63:35;
2153 uint64_t fasten_n:1;
2154 uint64_t div_reset:1;
2155 uint64_t reset_n:1;
2156 uint64_t clkf:12;
2157 uint64_t clkr:6;
2158 uint64_t reserved_6_7:2;
2159 uint64_t en16:1;
2160 uint64_t en12:1;
2161 uint64_t en8:1;
2162 uint64_t en6:1;
2163 uint64_t en4:1;
2164 uint64_t en2:1;
2165 #else
2166 uint64_t en2:1;
2167 uint64_t en4:1;
2168 uint64_t en6:1;
2169 uint64_t en8:1;
2170 uint64_t en12:1;
2171 uint64_t en16:1;
2172 uint64_t reserved_6_7:2;
2173 uint64_t clkr:6;
2174 uint64_t clkf:12;
2175 uint64_t reset_n:1;
2176 uint64_t div_reset:1;
2177 uint64_t fasten_n:1;
2178 uint64_t reserved_29_63:35;
2179 #endif
2180 } cn50xx;
2181 struct cvmx_lmcx_pll_ctl_cn56xxp1 {
2182 #ifdef __BIG_ENDIAN_BITFIELD
2183 uint64_t reserved_28_63:36;
2184 uint64_t div_reset:1;
2185 uint64_t reset_n:1;
2186 uint64_t clkf:12;
2187 uint64_t clkr:6;
2188 uint64_t reserved_6_7:2;
2189 uint64_t en16:1;
2190 uint64_t en12:1;
2191 uint64_t en8:1;
2192 uint64_t en6:1;
2193 uint64_t en4:1;
2194 uint64_t en2:1;
2195 #else
2196 uint64_t en2:1;
2197 uint64_t en4:1;
2198 uint64_t en6:1;
2199 uint64_t en8:1;
2200 uint64_t en12:1;
2201 uint64_t en16:1;
2202 uint64_t reserved_6_7:2;
2203 uint64_t clkr:6;
2204 uint64_t clkf:12;
2205 uint64_t reset_n:1;
2206 uint64_t div_reset:1;
2207 uint64_t reserved_28_63:36;
2208 #endif
2209 } cn56xxp1;
2210 };
2211
2212 union cvmx_lmcx_pll_status {
2213 uint64_t u64;
2214 struct cvmx_lmcx_pll_status_s {
2215 #ifdef __BIG_ENDIAN_BITFIELD
2216 uint64_t reserved_32_63:32;
2217 uint64_t ddr__nctl:5;
2218 uint64_t ddr__pctl:5;
2219 uint64_t reserved_2_21:20;
2220 uint64_t rfslip:1;
2221 uint64_t fbslip:1;
2222 #else
2223 uint64_t fbslip:1;
2224 uint64_t rfslip:1;
2225 uint64_t reserved_2_21:20;
2226 uint64_t ddr__pctl:5;
2227 uint64_t ddr__nctl:5;
2228 uint64_t reserved_32_63:32;
2229 #endif
2230 } s;
2231 struct cvmx_lmcx_pll_status_cn58xxp1 {
2232 #ifdef __BIG_ENDIAN_BITFIELD
2233 uint64_t reserved_2_63:62;
2234 uint64_t rfslip:1;
2235 uint64_t fbslip:1;
2236 #else
2237 uint64_t fbslip:1;
2238 uint64_t rfslip:1;
2239 uint64_t reserved_2_63:62;
2240 #endif
2241 } cn58xxp1;
2242 };
2243
2244 union cvmx_lmcx_read_level_ctl {
2245 uint64_t u64;
2246 struct cvmx_lmcx_read_level_ctl_s {
2247 #ifdef __BIG_ENDIAN_BITFIELD
2248 uint64_t reserved_44_63:20;
2249 uint64_t rankmask:4;
2250 uint64_t pattern:8;
2251 uint64_t row:16;
2252 uint64_t col:12;
2253 uint64_t reserved_3_3:1;
2254 uint64_t bnk:3;
2255 #else
2256 uint64_t bnk:3;
2257 uint64_t reserved_3_3:1;
2258 uint64_t col:12;
2259 uint64_t row:16;
2260 uint64_t pattern:8;
2261 uint64_t rankmask:4;
2262 uint64_t reserved_44_63:20;
2263 #endif
2264 } s;
2265 };
2266
2267 union cvmx_lmcx_read_level_dbg {
2268 uint64_t u64;
2269 struct cvmx_lmcx_read_level_dbg_s {
2270 #ifdef __BIG_ENDIAN_BITFIELD
2271 uint64_t reserved_32_63:32;
2272 uint64_t bitmask:16;
2273 uint64_t reserved_4_15:12;
2274 uint64_t byte:4;
2275 #else
2276 uint64_t byte:4;
2277 uint64_t reserved_4_15:12;
2278 uint64_t bitmask:16;
2279 uint64_t reserved_32_63:32;
2280 #endif
2281 } s;
2282 };
2283
2284 union cvmx_lmcx_read_level_rankx {
2285 uint64_t u64;
2286 struct cvmx_lmcx_read_level_rankx_s {
2287 #ifdef __BIG_ENDIAN_BITFIELD
2288 uint64_t reserved_38_63:26;
2289 uint64_t status:2;
2290 uint64_t byte8:4;
2291 uint64_t byte7:4;
2292 uint64_t byte6:4;
2293 uint64_t byte5:4;
2294 uint64_t byte4:4;
2295 uint64_t byte3:4;
2296 uint64_t byte2:4;
2297 uint64_t byte1:4;
2298 uint64_t byte0:4;
2299 #else
2300 uint64_t byte0:4;
2301 uint64_t byte1:4;
2302 uint64_t byte2:4;
2303 uint64_t byte3:4;
2304 uint64_t byte4:4;
2305 uint64_t byte5:4;
2306 uint64_t byte6:4;
2307 uint64_t byte7:4;
2308 uint64_t byte8:4;
2309 uint64_t status:2;
2310 uint64_t reserved_38_63:26;
2311 #endif
2312 } s;
2313 };
2314
2315 union cvmx_lmcx_reset_ctl {
2316 uint64_t u64;
2317 struct cvmx_lmcx_reset_ctl_s {
2318 #ifdef __BIG_ENDIAN_BITFIELD
2319 uint64_t reserved_4_63:60;
2320 uint64_t ddr3psv:1;
2321 uint64_t ddr3psoft:1;
2322 uint64_t ddr3pwarm:1;
2323 uint64_t ddr3rst:1;
2324 #else
2325 uint64_t ddr3rst:1;
2326 uint64_t ddr3pwarm:1;
2327 uint64_t ddr3psoft:1;
2328 uint64_t ddr3psv:1;
2329 uint64_t reserved_4_63:60;
2330 #endif
2331 } s;
2332 };
2333
2334 union cvmx_lmcx_rlevel_ctl {
2335 uint64_t u64;
2336 struct cvmx_lmcx_rlevel_ctl_s {
2337 #ifdef __BIG_ENDIAN_BITFIELD
2338 uint64_t reserved_22_63:42;
2339 uint64_t delay_unload_3:1;
2340 uint64_t delay_unload_2:1;
2341 uint64_t delay_unload_1:1;
2342 uint64_t delay_unload_0:1;
2343 uint64_t bitmask:8;
2344 uint64_t or_dis:1;
2345 uint64_t offset_en:1;
2346 uint64_t offset:4;
2347 uint64_t byte:4;
2348 #else
2349 uint64_t byte:4;
2350 uint64_t offset:4;
2351 uint64_t offset_en:1;
2352 uint64_t or_dis:1;
2353 uint64_t bitmask:8;
2354 uint64_t delay_unload_0:1;
2355 uint64_t delay_unload_1:1;
2356 uint64_t delay_unload_2:1;
2357 uint64_t delay_unload_3:1;
2358 uint64_t reserved_22_63:42;
2359 #endif
2360 } s;
2361 struct cvmx_lmcx_rlevel_ctl_cn63xxp1 {
2362 #ifdef __BIG_ENDIAN_BITFIELD
2363 uint64_t reserved_9_63:55;
2364 uint64_t offset_en:1;
2365 uint64_t offset:4;
2366 uint64_t byte:4;
2367 #else
2368 uint64_t byte:4;
2369 uint64_t offset:4;
2370 uint64_t offset_en:1;
2371 uint64_t reserved_9_63:55;
2372 #endif
2373 } cn63xxp1;
2374 };
2375
2376 union cvmx_lmcx_rlevel_dbg {
2377 uint64_t u64;
2378 struct cvmx_lmcx_rlevel_dbg_s {
2379 #ifdef __BIG_ENDIAN_BITFIELD
2380 uint64_t bitmask:64;
2381 #else
2382 uint64_t bitmask:64;
2383 #endif
2384 } s;
2385 };
2386
2387 union cvmx_lmcx_rlevel_rankx {
2388 uint64_t u64;
2389 struct cvmx_lmcx_rlevel_rankx_s {
2390 #ifdef __BIG_ENDIAN_BITFIELD
2391 uint64_t reserved_56_63:8;
2392 uint64_t status:2;
2393 uint64_t byte8:6;
2394 uint64_t byte7:6;
2395 uint64_t byte6:6;
2396 uint64_t byte5:6;
2397 uint64_t byte4:6;
2398 uint64_t byte3:6;
2399 uint64_t byte2:6;
2400 uint64_t byte1:6;
2401 uint64_t byte0:6;
2402 #else
2403 uint64_t byte0:6;
2404 uint64_t byte1:6;
2405 uint64_t byte2:6;
2406 uint64_t byte3:6;
2407 uint64_t byte4:6;
2408 uint64_t byte5:6;
2409 uint64_t byte6:6;
2410 uint64_t byte7:6;
2411 uint64_t byte8:6;
2412 uint64_t status:2;
2413 uint64_t reserved_56_63:8;
2414 #endif
2415 } s;
2416 };
2417
2418 union cvmx_lmcx_rodt_comp_ctl {
2419 uint64_t u64;
2420 struct cvmx_lmcx_rodt_comp_ctl_s {
2421 #ifdef __BIG_ENDIAN_BITFIELD
2422 uint64_t reserved_17_63:47;
2423 uint64_t enable:1;
2424 uint64_t reserved_12_15:4;
2425 uint64_t nctl:4;
2426 uint64_t reserved_5_7:3;
2427 uint64_t pctl:5;
2428 #else
2429 uint64_t pctl:5;
2430 uint64_t reserved_5_7:3;
2431 uint64_t nctl:4;
2432 uint64_t reserved_12_15:4;
2433 uint64_t enable:1;
2434 uint64_t reserved_17_63:47;
2435 #endif
2436 } s;
2437 };
2438
2439 union cvmx_lmcx_rodt_ctl {
2440 uint64_t u64;
2441 struct cvmx_lmcx_rodt_ctl_s {
2442 #ifdef __BIG_ENDIAN_BITFIELD
2443 uint64_t reserved_32_63:32;
2444 uint64_t rodt_hi3:4;
2445 uint64_t rodt_hi2:4;
2446 uint64_t rodt_hi1:4;
2447 uint64_t rodt_hi0:4;
2448 uint64_t rodt_lo3:4;
2449 uint64_t rodt_lo2:4;
2450 uint64_t rodt_lo1:4;
2451 uint64_t rodt_lo0:4;
2452 #else
2453 uint64_t rodt_lo0:4;
2454 uint64_t rodt_lo1:4;
2455 uint64_t rodt_lo2:4;
2456 uint64_t rodt_lo3:4;
2457 uint64_t rodt_hi0:4;
2458 uint64_t rodt_hi1:4;
2459 uint64_t rodt_hi2:4;
2460 uint64_t rodt_hi3:4;
2461 uint64_t reserved_32_63:32;
2462 #endif
2463 } s;
2464 };
2465
2466 union cvmx_lmcx_rodt_mask {
2467 uint64_t u64;
2468 struct cvmx_lmcx_rodt_mask_s {
2469 #ifdef __BIG_ENDIAN_BITFIELD
2470 uint64_t rodt_d3_r1:8;
2471 uint64_t rodt_d3_r0:8;
2472 uint64_t rodt_d2_r1:8;
2473 uint64_t rodt_d2_r0:8;
2474 uint64_t rodt_d1_r1:8;
2475 uint64_t rodt_d1_r0:8;
2476 uint64_t rodt_d0_r1:8;
2477 uint64_t rodt_d0_r0:8;
2478 #else
2479 uint64_t rodt_d0_r0:8;
2480 uint64_t rodt_d0_r1:8;
2481 uint64_t rodt_d1_r0:8;
2482 uint64_t rodt_d1_r1:8;
2483 uint64_t rodt_d2_r0:8;
2484 uint64_t rodt_d2_r1:8;
2485 uint64_t rodt_d3_r0:8;
2486 uint64_t rodt_d3_r1:8;
2487 #endif
2488 } s;
2489 };
2490
2491 union cvmx_lmcx_scramble_cfg0 {
2492 uint64_t u64;
2493 struct cvmx_lmcx_scramble_cfg0_s {
2494 #ifdef __BIG_ENDIAN_BITFIELD
2495 uint64_t key:64;
2496 #else
2497 uint64_t key:64;
2498 #endif
2499 } s;
2500 };
2501
2502 union cvmx_lmcx_scramble_cfg1 {
2503 uint64_t u64;
2504 struct cvmx_lmcx_scramble_cfg1_s {
2505 #ifdef __BIG_ENDIAN_BITFIELD
2506 uint64_t key:64;
2507 #else
2508 uint64_t key:64;
2509 #endif
2510 } s;
2511 };
2512
2513 union cvmx_lmcx_scrambled_fadr {
2514 uint64_t u64;
2515 struct cvmx_lmcx_scrambled_fadr_s {
2516 #ifdef __BIG_ENDIAN_BITFIELD
2517 uint64_t reserved_36_63:28;
2518 uint64_t fdimm:2;
2519 uint64_t fbunk:1;
2520 uint64_t fbank:3;
2521 uint64_t frow:16;
2522 uint64_t fcol:14;
2523 #else
2524 uint64_t fcol:14;
2525 uint64_t frow:16;
2526 uint64_t fbank:3;
2527 uint64_t fbunk:1;
2528 uint64_t fdimm:2;
2529 uint64_t reserved_36_63:28;
2530 #endif
2531 } s;
2532 };
2533
2534 union cvmx_lmcx_slot_ctl0 {
2535 uint64_t u64;
2536 struct cvmx_lmcx_slot_ctl0_s {
2537 #ifdef __BIG_ENDIAN_BITFIELD
2538 uint64_t reserved_24_63:40;
2539 uint64_t w2w_init:6;
2540 uint64_t w2r_init:6;
2541 uint64_t r2w_init:6;
2542 uint64_t r2r_init:6;
2543 #else
2544 uint64_t r2r_init:6;
2545 uint64_t r2w_init:6;
2546 uint64_t w2r_init:6;
2547 uint64_t w2w_init:6;
2548 uint64_t reserved_24_63:40;
2549 #endif
2550 } s;
2551 };
2552
2553 union cvmx_lmcx_slot_ctl1 {
2554 uint64_t u64;
2555 struct cvmx_lmcx_slot_ctl1_s {
2556 #ifdef __BIG_ENDIAN_BITFIELD
2557 uint64_t reserved_24_63:40;
2558 uint64_t w2w_xrank_init:6;
2559 uint64_t w2r_xrank_init:6;
2560 uint64_t r2w_xrank_init:6;
2561 uint64_t r2r_xrank_init:6;
2562 #else
2563 uint64_t r2r_xrank_init:6;
2564 uint64_t r2w_xrank_init:6;
2565 uint64_t w2r_xrank_init:6;
2566 uint64_t w2w_xrank_init:6;
2567 uint64_t reserved_24_63:40;
2568 #endif
2569 } s;
2570 };
2571
2572 union cvmx_lmcx_slot_ctl2 {
2573 uint64_t u64;
2574 struct cvmx_lmcx_slot_ctl2_s {
2575 #ifdef __BIG_ENDIAN_BITFIELD
2576 uint64_t reserved_24_63:40;
2577 uint64_t w2w_xdimm_init:6;
2578 uint64_t w2r_xdimm_init:6;
2579 uint64_t r2w_xdimm_init:6;
2580 uint64_t r2r_xdimm_init:6;
2581 #else
2582 uint64_t r2r_xdimm_init:6;
2583 uint64_t r2w_xdimm_init:6;
2584 uint64_t w2r_xdimm_init:6;
2585 uint64_t w2w_xdimm_init:6;
2586 uint64_t reserved_24_63:40;
2587 #endif
2588 } s;
2589 };
2590
2591 union cvmx_lmcx_timing_params0 {
2592 uint64_t u64;
2593 struct cvmx_lmcx_timing_params0_s {
2594 #ifdef __BIG_ENDIAN_BITFIELD
2595 uint64_t reserved_47_63:17;
2596 uint64_t trp_ext:1;
2597 uint64_t tcksre:4;
2598 uint64_t trp:4;
2599 uint64_t tzqinit:4;
2600 uint64_t tdllk:4;
2601 uint64_t tmod:4;
2602 uint64_t tmrd:4;
2603 uint64_t txpr:4;
2604 uint64_t tcke:4;
2605 uint64_t tzqcs:4;
2606 uint64_t tckeon:10;
2607 #else
2608 uint64_t tckeon:10;
2609 uint64_t tzqcs:4;
2610 uint64_t tcke:4;
2611 uint64_t txpr:4;
2612 uint64_t tmrd:4;
2613 uint64_t tmod:4;
2614 uint64_t tdllk:4;
2615 uint64_t tzqinit:4;
2616 uint64_t trp:4;
2617 uint64_t tcksre:4;
2618 uint64_t trp_ext:1;
2619 uint64_t reserved_47_63:17;
2620 #endif
2621 } s;
2622 struct cvmx_lmcx_timing_params0_cn61xx {
2623 #ifdef __BIG_ENDIAN_BITFIELD
2624 uint64_t reserved_47_63:17;
2625 uint64_t trp_ext:1;
2626 uint64_t tcksre:4;
2627 uint64_t trp:4;
2628 uint64_t tzqinit:4;
2629 uint64_t tdllk:4;
2630 uint64_t tmod:4;
2631 uint64_t tmrd:4;
2632 uint64_t txpr:4;
2633 uint64_t tcke:4;
2634 uint64_t tzqcs:4;
2635 uint64_t reserved_0_9:10;
2636 #else
2637 uint64_t reserved_0_9:10;
2638 uint64_t tzqcs:4;
2639 uint64_t tcke:4;
2640 uint64_t txpr:4;
2641 uint64_t tmrd:4;
2642 uint64_t tmod:4;
2643 uint64_t tdllk:4;
2644 uint64_t tzqinit:4;
2645 uint64_t trp:4;
2646 uint64_t tcksre:4;
2647 uint64_t trp_ext:1;
2648 uint64_t reserved_47_63:17;
2649 #endif
2650 } cn61xx;
2651 struct cvmx_lmcx_timing_params0_cn63xxp1 {
2652 #ifdef __BIG_ENDIAN_BITFIELD
2653 uint64_t reserved_46_63:18;
2654 uint64_t tcksre:4;
2655 uint64_t trp:4;
2656 uint64_t tzqinit:4;
2657 uint64_t tdllk:4;
2658 uint64_t tmod:4;
2659 uint64_t tmrd:4;
2660 uint64_t txpr:4;
2661 uint64_t tcke:4;
2662 uint64_t tzqcs:4;
2663 uint64_t tckeon:10;
2664 #else
2665 uint64_t tckeon:10;
2666 uint64_t tzqcs:4;
2667 uint64_t tcke:4;
2668 uint64_t txpr:4;
2669 uint64_t tmrd:4;
2670 uint64_t tmod:4;
2671 uint64_t tdllk:4;
2672 uint64_t tzqinit:4;
2673 uint64_t trp:4;
2674 uint64_t tcksre:4;
2675 uint64_t reserved_46_63:18;
2676 #endif
2677 } cn63xxp1;
2678 };
2679
2680 union cvmx_lmcx_timing_params1 {
2681 uint64_t u64;
2682 struct cvmx_lmcx_timing_params1_s {
2683 #ifdef __BIG_ENDIAN_BITFIELD
2684 uint64_t reserved_47_63:17;
2685 uint64_t tras_ext:1;
2686 uint64_t txpdll:5;
2687 uint64_t tfaw:5;
2688 uint64_t twldqsen:4;
2689 uint64_t twlmrd:4;
2690 uint64_t txp:3;
2691 uint64_t trrd:3;
2692 uint64_t trfc:5;
2693 uint64_t twtr:4;
2694 uint64_t trcd:4;
2695 uint64_t tras:5;
2696 uint64_t tmprr:4;
2697 #else
2698 uint64_t tmprr:4;
2699 uint64_t tras:5;
2700 uint64_t trcd:4;
2701 uint64_t twtr:4;
2702 uint64_t trfc:5;
2703 uint64_t trrd:3;
2704 uint64_t txp:3;
2705 uint64_t twlmrd:4;
2706 uint64_t twldqsen:4;
2707 uint64_t tfaw:5;
2708 uint64_t txpdll:5;
2709 uint64_t tras_ext:1;
2710 uint64_t reserved_47_63:17;
2711 #endif
2712 } s;
2713 struct cvmx_lmcx_timing_params1_cn63xxp1 {
2714 #ifdef __BIG_ENDIAN_BITFIELD
2715 uint64_t reserved_46_63:18;
2716 uint64_t txpdll:5;
2717 uint64_t tfaw:5;
2718 uint64_t twldqsen:4;
2719 uint64_t twlmrd:4;
2720 uint64_t txp:3;
2721 uint64_t trrd:3;
2722 uint64_t trfc:5;
2723 uint64_t twtr:4;
2724 uint64_t trcd:4;
2725 uint64_t tras:5;
2726 uint64_t tmprr:4;
2727 #else
2728 uint64_t tmprr:4;
2729 uint64_t tras:5;
2730 uint64_t trcd:4;
2731 uint64_t twtr:4;
2732 uint64_t trfc:5;
2733 uint64_t trrd:3;
2734 uint64_t txp:3;
2735 uint64_t twlmrd:4;
2736 uint64_t twldqsen:4;
2737 uint64_t tfaw:5;
2738 uint64_t txpdll:5;
2739 uint64_t reserved_46_63:18;
2740 #endif
2741 } cn63xxp1;
2742 };
2743
2744 union cvmx_lmcx_tro_ctl {
2745 uint64_t u64;
2746 struct cvmx_lmcx_tro_ctl_s {
2747 #ifdef __BIG_ENDIAN_BITFIELD
2748 uint64_t reserved_33_63:31;
2749 uint64_t rclk_cnt:32;
2750 uint64_t treset:1;
2751 #else
2752 uint64_t treset:1;
2753 uint64_t rclk_cnt:32;
2754 uint64_t reserved_33_63:31;
2755 #endif
2756 } s;
2757 };
2758
2759 union cvmx_lmcx_tro_stat {
2760 uint64_t u64;
2761 struct cvmx_lmcx_tro_stat_s {
2762 #ifdef __BIG_ENDIAN_BITFIELD
2763 uint64_t reserved_32_63:32;
2764 uint64_t ring_cnt:32;
2765 #else
2766 uint64_t ring_cnt:32;
2767 uint64_t reserved_32_63:32;
2768 #endif
2769 } s;
2770 };
2771
2772 union cvmx_lmcx_wlevel_ctl {
2773 uint64_t u64;
2774 struct cvmx_lmcx_wlevel_ctl_s {
2775 #ifdef __BIG_ENDIAN_BITFIELD
2776 uint64_t reserved_22_63:42;
2777 uint64_t rtt_nom:3;
2778 uint64_t bitmask:8;
2779 uint64_t or_dis:1;
2780 uint64_t sset:1;
2781 uint64_t lanemask:9;
2782 #else
2783 uint64_t lanemask:9;
2784 uint64_t sset:1;
2785 uint64_t or_dis:1;
2786 uint64_t bitmask:8;
2787 uint64_t rtt_nom:3;
2788 uint64_t reserved_22_63:42;
2789 #endif
2790 } s;
2791 struct cvmx_lmcx_wlevel_ctl_cn63xxp1 {
2792 #ifdef __BIG_ENDIAN_BITFIELD
2793 uint64_t reserved_10_63:54;
2794 uint64_t sset:1;
2795 uint64_t lanemask:9;
2796 #else
2797 uint64_t lanemask:9;
2798 uint64_t sset:1;
2799 uint64_t reserved_10_63:54;
2800 #endif
2801 } cn63xxp1;
2802 };
2803
2804 union cvmx_lmcx_wlevel_dbg {
2805 uint64_t u64;
2806 struct cvmx_lmcx_wlevel_dbg_s {
2807 #ifdef __BIG_ENDIAN_BITFIELD
2808 uint64_t reserved_12_63:52;
2809 uint64_t bitmask:8;
2810 uint64_t byte:4;
2811 #else
2812 uint64_t byte:4;
2813 uint64_t bitmask:8;
2814 uint64_t reserved_12_63:52;
2815 #endif
2816 } s;
2817 };
2818
2819 union cvmx_lmcx_wlevel_rankx {
2820 uint64_t u64;
2821 struct cvmx_lmcx_wlevel_rankx_s {
2822 #ifdef __BIG_ENDIAN_BITFIELD
2823 uint64_t reserved_47_63:17;
2824 uint64_t status:2;
2825 uint64_t byte8:5;
2826 uint64_t byte7:5;
2827 uint64_t byte6:5;
2828 uint64_t byte5:5;
2829 uint64_t byte4:5;
2830 uint64_t byte3:5;
2831 uint64_t byte2:5;
2832 uint64_t byte1:5;
2833 uint64_t byte0:5;
2834 #else
2835 uint64_t byte0:5;
2836 uint64_t byte1:5;
2837 uint64_t byte2:5;
2838 uint64_t byte3:5;
2839 uint64_t byte4:5;
2840 uint64_t byte5:5;
2841 uint64_t byte6:5;
2842 uint64_t byte7:5;
2843 uint64_t byte8:5;
2844 uint64_t status:2;
2845 uint64_t reserved_47_63:17;
2846 #endif
2847 } s;
2848 };
2849
2850 union cvmx_lmcx_wodt_ctl0 {
2851 uint64_t u64;
2852 struct cvmx_lmcx_wodt_ctl0_s {
2853 #ifdef __BIG_ENDIAN_BITFIELD
2854 uint64_t reserved_0_63:64;
2855 #else
2856 uint64_t reserved_0_63:64;
2857 #endif
2858 } s;
2859 struct cvmx_lmcx_wodt_ctl0_cn30xx {
2860 #ifdef __BIG_ENDIAN_BITFIELD
2861 uint64_t reserved_32_63:32;
2862 uint64_t wodt_d1_r1:8;
2863 uint64_t wodt_d1_r0:8;
2864 uint64_t wodt_d0_r1:8;
2865 uint64_t wodt_d0_r0:8;
2866 #else
2867 uint64_t wodt_d0_r0:8;
2868 uint64_t wodt_d0_r1:8;
2869 uint64_t wodt_d1_r0:8;
2870 uint64_t wodt_d1_r1:8;
2871 uint64_t reserved_32_63:32;
2872 #endif
2873 } cn30xx;
2874 struct cvmx_lmcx_wodt_ctl0_cn38xx {
2875 #ifdef __BIG_ENDIAN_BITFIELD
2876 uint64_t reserved_32_63:32;
2877 uint64_t wodt_hi3:4;
2878 uint64_t wodt_hi2:4;
2879 uint64_t wodt_hi1:4;
2880 uint64_t wodt_hi0:4;
2881 uint64_t wodt_lo3:4;
2882 uint64_t wodt_lo2:4;
2883 uint64_t wodt_lo1:4;
2884 uint64_t wodt_lo0:4;
2885 #else
2886 uint64_t wodt_lo0:4;
2887 uint64_t wodt_lo1:4;
2888 uint64_t wodt_lo2:4;
2889 uint64_t wodt_lo3:4;
2890 uint64_t wodt_hi0:4;
2891 uint64_t wodt_hi1:4;
2892 uint64_t wodt_hi2:4;
2893 uint64_t wodt_hi3:4;
2894 uint64_t reserved_32_63:32;
2895 #endif
2896 } cn38xx;
2897 };
2898
2899 union cvmx_lmcx_wodt_ctl1 {
2900 uint64_t u64;
2901 struct cvmx_lmcx_wodt_ctl1_s {
2902 #ifdef __BIG_ENDIAN_BITFIELD
2903 uint64_t reserved_32_63:32;
2904 uint64_t wodt_d3_r1:8;
2905 uint64_t wodt_d3_r0:8;
2906 uint64_t wodt_d2_r1:8;
2907 uint64_t wodt_d2_r0:8;
2908 #else
2909 uint64_t wodt_d2_r0:8;
2910 uint64_t wodt_d2_r1:8;
2911 uint64_t wodt_d3_r0:8;
2912 uint64_t wodt_d3_r1:8;
2913 uint64_t reserved_32_63:32;
2914 #endif
2915 } s;
2916 };
2917
2918 union cvmx_lmcx_wodt_mask {
2919 uint64_t u64;
2920 struct cvmx_lmcx_wodt_mask_s {
2921 #ifdef __BIG_ENDIAN_BITFIELD
2922 uint64_t wodt_d3_r1:8;
2923 uint64_t wodt_d3_r0:8;
2924 uint64_t wodt_d2_r1:8;
2925 uint64_t wodt_d2_r0:8;
2926 uint64_t wodt_d1_r1:8;
2927 uint64_t wodt_d1_r0:8;
2928 uint64_t wodt_d0_r1:8;
2929 uint64_t wodt_d0_r0:8;
2930 #else
2931 uint64_t wodt_d0_r0:8;
2932 uint64_t wodt_d0_r1:8;
2933 uint64_t wodt_d1_r0:8;
2934 uint64_t wodt_d1_r1:8;
2935 uint64_t wodt_d2_r0:8;
2936 uint64_t wodt_d2_r1:8;
2937 uint64_t wodt_d3_r0:8;
2938 uint64_t wodt_d3_r1:8;
2939 #endif
2940 } s;
2941 };
2942
2943 #endif
2944