~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/include/asm/octeon/cvmx-lmcx-defs.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php