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