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