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