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