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