root/arch/mips/include/asm/octeon/cvmx-lmcx-defs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. CVMX_LMCX_DUAL_MEMCFG
  2. CVMX_LMCX_ECC_SYND
  3. CVMX_LMCX_FADR
  4. CVMX_LMCX_NXM

   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

/* [<][>][^][v][top][bottom][index][help] */