/***********************license start*************** * Author: Cavium Inc. * * Contact: support@cavium.com * This file is part of the OCTEON SDK * * Copyright (c) 2003-2012 Cavium Inc. * * This file is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, Version 2, as * published by the Free Software Foundation. * * This file is distributed in the hope that it will be useful, but * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or * NONINFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with this file; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * or visit http://www.gnu.org/licenses/. * * This file may also be available under a different license from Cavium. * Contact Cavium Inc. for more information ***********************license end**************************************/ #ifndef __CVMX_LMCX_DEFS_H__ #define __CVMX_LMCX_DEFS_H__ #define CVMX_LMCX_BIST_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F0ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_BIST_RESULT(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F8ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_CHAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000220ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CHAR_MASK0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000228ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CHAR_MASK1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000230ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CHAR_MASK2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000238ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CHAR_MASK3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000240ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CHAR_MASK4(block_id) (CVMX_ADD_IO_SEG(0x0001180088000318ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000028ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_COMP_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CONFIG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000188ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CONTROL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000190ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000010ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000090ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DCLK_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E0ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_DCLK_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000070ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DCLK_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000068ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DCLK_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B8ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DDR2_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000018ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DDR_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000258ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_DELAY_CFG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000088ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DIMMX_PARAMS(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000270ull) + (((offset) & 1) + ((block_id) & 3) * 0x200000ull) * 8) #define CVMX_LMCX_DIMM_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000310ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_DLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000C0ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_DLL_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001C8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_DLL_CTL3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000218ull) + ((block_id) & 3) * 0x1000000ull) static inline uint64_t CVMX_LMCX_DUAL_MEMCFG(unsigned long block_id) { switch (cvmx_get_octeon_family()) { case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: case OCTEON_CN50XX & OCTEON_FAMILY_MASK: case OCTEON_CN58XX & OCTEON_FAMILY_MASK: case OCTEON_CN66XX & OCTEON_FAMILY_MASK: case OCTEON_CN52XX & OCTEON_FAMILY_MASK: case OCTEON_CN61XX & OCTEON_FAMILY_MASK: case OCTEON_CN63XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull; case OCTEON_CN56XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull; case OCTEON_CN68XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x1000000ull; } return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull; } static inline uint64_t CVMX_LMCX_ECC_SYND(unsigned long block_id) { switch (cvmx_get_octeon_family()) { case OCTEON_CN30XX & OCTEON_FAMILY_MASK: case OCTEON_CN50XX & OCTEON_FAMILY_MASK: case OCTEON_CN38XX & OCTEON_FAMILY_MASK: case OCTEON_CN31XX & OCTEON_FAMILY_MASK: case OCTEON_CN58XX & OCTEON_FAMILY_MASK: case OCTEON_CN66XX & OCTEON_FAMILY_MASK: case OCTEON_CN52XX & OCTEON_FAMILY_MASK: case OCTEON_CN61XX & OCTEON_FAMILY_MASK: case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: case OCTEON_CN63XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull; case OCTEON_CN56XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull; case OCTEON_CN68XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x1000000ull; } return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull; } static inline uint64_t CVMX_LMCX_FADR(unsigned long block_id) { switch (cvmx_get_octeon_family()) { case OCTEON_CN30XX & OCTEON_FAMILY_MASK: case OCTEON_CN50XX & OCTEON_FAMILY_MASK: case OCTEON_CN38XX & OCTEON_FAMILY_MASK: case OCTEON_CN31XX & OCTEON_FAMILY_MASK: case OCTEON_CN58XX & OCTEON_FAMILY_MASK: case OCTEON_CN66XX & OCTEON_FAMILY_MASK: case OCTEON_CN52XX & OCTEON_FAMILY_MASK: case OCTEON_CN61XX & OCTEON_FAMILY_MASK: case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: case OCTEON_CN63XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull; case OCTEON_CN56XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull; case OCTEON_CN68XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x1000000ull; } return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull; } #define CVMX_LMCX_IFB_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D0ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_IFB_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000050ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_IFB_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000048ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F0ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_MEM_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000000ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_MEM_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000008ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_MODEREG_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_MODEREG_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000260ull) + ((block_id) & 3) * 0x1000000ull) static inline uint64_t CVMX_LMCX_NXM(unsigned long block_id) { switch (cvmx_get_octeon_family()) { case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: case OCTEON_CN61XX & OCTEON_FAMILY_MASK: case OCTEON_CN66XX & OCTEON_FAMILY_MASK: case OCTEON_CN52XX & OCTEON_FAMILY_MASK: case OCTEON_CN58XX & OCTEON_FAMILY_MASK: case OCTEON_CN63XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull; case OCTEON_CN56XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull; case OCTEON_CN68XX & OCTEON_FAMILY_MASK: return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x1000000ull; } return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull; } #define CVMX_LMCX_OPS_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_OPS_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000060ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_OPS_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000058ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_PHY_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000210ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_PLL_BWCTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000040ull)) #define CVMX_LMCX_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A8ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_PLL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B0ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_READ_LEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000140ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_READ_LEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000148ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_READ_LEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000100ull) + (((offset) & 3) + ((block_id) & 1) * 0xC000000ull) * 8) #define CVMX_LMCX_RESET_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000180ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_RLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A0ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_RLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_RLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000280ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8) #define CVMX_LMCX_RODT_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A0ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_RODT_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000078ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_RODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x0001180088000268ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_SCRAMBLED_FADR(block_id) (CVMX_ADD_IO_SEG(0x0001180088000330ull)) #define CVMX_LMCX_SCRAMBLE_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000320ull)) #define CVMX_LMCX_SCRAMBLE_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000328ull)) #define CVMX_LMCX_SLOT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F8ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_SLOT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000200ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_SLOT_CTL2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000208ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_TIMING_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000198ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_TIMING_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A0ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_TRO_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000248ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_TRO_STAT(block_id) (CVMX_ADD_IO_SEG(0x0001180088000250ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_WLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000300ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_WLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000308ull) + ((block_id) & 3) * 0x1000000ull) #define CVMX_LMCX_WLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800880002B0ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8) #define CVMX_LMCX_WODT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000030ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_WODT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000080ull) + ((block_id) & 1) * 0x60000000ull) #define CVMX_LMCX_WODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B0ull) + ((block_id) & 3) * 0x1000000ull) union cvmx_lmcx_bist_ctl { uint64_t u64; struct cvmx_lmcx_bist_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_1_63:63; uint64_t start:1; #else uint64_t start:1; uint64_t reserved_1_63:63; #endif } s; struct cvmx_lmcx_bist_ctl_s cn50xx; struct cvmx_lmcx_bist_ctl_s cn52xx; struct cvmx_lmcx_bist_ctl_s cn52xxp1; struct cvmx_lmcx_bist_ctl_s cn56xx; struct cvmx_lmcx_bist_ctl_s cn56xxp1; }; union cvmx_lmcx_bist_result { uint64_t u64; struct cvmx_lmcx_bist_result_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_11_63:53; uint64_t csrd2e:1; uint64_t csre2d:1; uint64_t mwf:1; uint64_t mwd:3; uint64_t mwc:1; uint64_t mrf:1; uint64_t mrd:3; #else uint64_t mrd:3; uint64_t mrf:1; uint64_t mwc:1; uint64_t mwd:3; uint64_t mwf:1; uint64_t csre2d:1; uint64_t csrd2e:1; uint64_t reserved_11_63:53; #endif } s; struct cvmx_lmcx_bist_result_cn50xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_9_63:55; uint64_t mwf:1; uint64_t mwd:3; uint64_t mwc:1; uint64_t mrf:1; uint64_t mrd:3; #else uint64_t mrd:3; uint64_t mrf:1; uint64_t mwc:1; uint64_t mwd:3; uint64_t mwf:1; uint64_t reserved_9_63:55; #endif } cn50xx; struct cvmx_lmcx_bist_result_s cn52xx; struct cvmx_lmcx_bist_result_s cn52xxp1; struct cvmx_lmcx_bist_result_s cn56xx; struct cvmx_lmcx_bist_result_s cn56xxp1; }; union cvmx_lmcx_char_ctl { uint64_t u64; struct cvmx_lmcx_char_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_44_63:20; uint64_t dr:1; uint64_t skew_on:1; uint64_t en:1; uint64_t sel:1; uint64_t prog:8; uint64_t prbs:32; #else uint64_t prbs:32; uint64_t prog:8; uint64_t sel:1; uint64_t en:1; uint64_t skew_on:1; uint64_t dr:1; uint64_t reserved_44_63:20; #endif } s; struct cvmx_lmcx_char_ctl_s cn61xx; struct cvmx_lmcx_char_ctl_cn63xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_42_63:22; uint64_t en:1; uint64_t sel:1; uint64_t prog:8; uint64_t prbs:32; #else uint64_t prbs:32; uint64_t prog:8; uint64_t sel:1; uint64_t en:1; uint64_t reserved_42_63:22; #endif } cn63xx; struct cvmx_lmcx_char_ctl_cn63xx cn63xxp1; struct cvmx_lmcx_char_ctl_s cn66xx; struct cvmx_lmcx_char_ctl_s cn68xx; struct cvmx_lmcx_char_ctl_cn63xx cn68xxp1; struct cvmx_lmcx_char_ctl_s cnf71xx; }; union cvmx_lmcx_char_mask0 { uint64_t u64; struct cvmx_lmcx_char_mask0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t mask:64; #else uint64_t mask:64; #endif } s; struct cvmx_lmcx_char_mask0_s cn61xx; struct cvmx_lmcx_char_mask0_s cn63xx; struct cvmx_lmcx_char_mask0_s cn63xxp1; struct cvmx_lmcx_char_mask0_s cn66xx; struct cvmx_lmcx_char_mask0_s cn68xx; struct cvmx_lmcx_char_mask0_s cn68xxp1; struct cvmx_lmcx_char_mask0_s cnf71xx; }; union cvmx_lmcx_char_mask1 { uint64_t u64; struct cvmx_lmcx_char_mask1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_8_63:56; uint64_t mask:8; #else uint64_t mask:8; uint64_t reserved_8_63:56; #endif } s; struct cvmx_lmcx_char_mask1_s cn61xx; struct cvmx_lmcx_char_mask1_s cn63xx; struct cvmx_lmcx_char_mask1_s cn63xxp1; struct cvmx_lmcx_char_mask1_s cn66xx; struct cvmx_lmcx_char_mask1_s cn68xx; struct cvmx_lmcx_char_mask1_s cn68xxp1; struct cvmx_lmcx_char_mask1_s cnf71xx; }; union cvmx_lmcx_char_mask2 { uint64_t u64; struct cvmx_lmcx_char_mask2_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t mask:64; #else uint64_t mask:64; #endif } s; struct cvmx_lmcx_char_mask2_s cn61xx; struct cvmx_lmcx_char_mask2_s cn63xx; struct cvmx_lmcx_char_mask2_s cn63xxp1; struct cvmx_lmcx_char_mask2_s cn66xx; struct cvmx_lmcx_char_mask2_s cn68xx; struct cvmx_lmcx_char_mask2_s cn68xxp1; struct cvmx_lmcx_char_mask2_s cnf71xx; }; union cvmx_lmcx_char_mask3 { uint64_t u64; struct cvmx_lmcx_char_mask3_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_8_63:56; uint64_t mask:8; #else uint64_t mask:8; uint64_t reserved_8_63:56; #endif } s; struct cvmx_lmcx_char_mask3_s cn61xx; struct cvmx_lmcx_char_mask3_s cn63xx; struct cvmx_lmcx_char_mask3_s cn63xxp1; struct cvmx_lmcx_char_mask3_s cn66xx; struct cvmx_lmcx_char_mask3_s cn68xx; struct cvmx_lmcx_char_mask3_s cn68xxp1; struct cvmx_lmcx_char_mask3_s cnf71xx; }; union cvmx_lmcx_char_mask4 { uint64_t u64; struct cvmx_lmcx_char_mask4_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_33_63:31; uint64_t reset_n_mask:1; uint64_t a_mask:16; uint64_t ba_mask:3; uint64_t we_n_mask:1; uint64_t cas_n_mask:1; uint64_t ras_n_mask:1; uint64_t odt1_mask:2; uint64_t odt0_mask:2; uint64_t cs1_n_mask:2; uint64_t cs0_n_mask:2; uint64_t cke_mask:2; #else uint64_t cke_mask:2; uint64_t cs0_n_mask:2; uint64_t cs1_n_mask:2; uint64_t odt0_mask:2; uint64_t odt1_mask:2; uint64_t ras_n_mask:1; uint64_t cas_n_mask:1; uint64_t we_n_mask:1; uint64_t ba_mask:3; uint64_t a_mask:16; uint64_t reset_n_mask:1; uint64_t reserved_33_63:31; #endif } s; struct cvmx_lmcx_char_mask4_s cn61xx; struct cvmx_lmcx_char_mask4_s cn63xx; struct cvmx_lmcx_char_mask4_s cn63xxp1; struct cvmx_lmcx_char_mask4_s cn66xx; struct cvmx_lmcx_char_mask4_s cn68xx; struct cvmx_lmcx_char_mask4_s cn68xxp1; struct cvmx_lmcx_char_mask4_s cnf71xx; }; union cvmx_lmcx_comp_ctl { uint64_t u64; struct cvmx_lmcx_comp_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t nctl_csr:4; uint64_t nctl_clk:4; uint64_t nctl_cmd:4; uint64_t nctl_dat:4; uint64_t pctl_csr:4; uint64_t pctl_clk:4; uint64_t reserved_0_7:8; #else uint64_t reserved_0_7:8; uint64_t pctl_clk:4; uint64_t pctl_csr:4; uint64_t nctl_dat:4; uint64_t nctl_cmd:4; uint64_t nctl_clk:4; uint64_t nctl_csr:4; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_comp_ctl_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t nctl_csr:4; uint64_t nctl_clk:4; uint64_t nctl_cmd:4; uint64_t nctl_dat:4; uint64_t pctl_csr:4; uint64_t pctl_clk:4; uint64_t pctl_cmd:4; uint64_t pctl_dat:4; #else uint64_t pctl_dat:4; uint64_t pctl_cmd:4; uint64_t pctl_clk:4; uint64_t pctl_csr:4; uint64_t nctl_dat:4; uint64_t nctl_cmd:4; uint64_t nctl_clk:4; uint64_t nctl_csr:4; uint64_t reserved_32_63:32; #endif } cn30xx; struct cvmx_lmcx_comp_ctl_cn30xx cn31xx; struct cvmx_lmcx_comp_ctl_cn30xx cn38xx; struct cvmx_lmcx_comp_ctl_cn30xx cn38xxp2; struct cvmx_lmcx_comp_ctl_cn50xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t nctl_csr:4; uint64_t reserved_20_27:8; uint64_t nctl_dat:4; uint64_t pctl_csr:4; uint64_t reserved_5_11:7; uint64_t pctl_dat:5; #else uint64_t pctl_dat:5; uint64_t reserved_5_11:7; uint64_t pctl_csr:4; uint64_t nctl_dat:4; uint64_t reserved_20_27:8; uint64_t nctl_csr:4; uint64_t reserved_32_63:32; #endif } cn50xx; struct cvmx_lmcx_comp_ctl_cn50xx cn52xx; struct cvmx_lmcx_comp_ctl_cn50xx cn52xxp1; struct cvmx_lmcx_comp_ctl_cn50xx cn56xx; struct cvmx_lmcx_comp_ctl_cn50xx cn56xxp1; struct cvmx_lmcx_comp_ctl_cn50xx cn58xx; struct cvmx_lmcx_comp_ctl_cn58xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t nctl_csr:4; uint64_t reserved_20_27:8; uint64_t nctl_dat:4; uint64_t pctl_csr:4; uint64_t reserved_4_11:8; uint64_t pctl_dat:4; #else uint64_t pctl_dat:4; uint64_t reserved_4_11:8; uint64_t pctl_csr:4; uint64_t nctl_dat:4; uint64_t reserved_20_27:8; uint64_t nctl_csr:4; uint64_t reserved_32_63:32; #endif } cn58xxp1; }; union cvmx_lmcx_comp_ctl2 { uint64_t u64; struct cvmx_lmcx_comp_ctl2_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_34_63:30; uint64_t ddr__ptune:4; uint64_t ddr__ntune:4; uint64_t m180:1; uint64_t byp:1; uint64_t ptune:4; uint64_t ntune:4; uint64_t rodt_ctl:4; uint64_t cmd_ctl:4; uint64_t ck_ctl:4; uint64_t dqx_ctl:4; #else uint64_t dqx_ctl:4; uint64_t ck_ctl:4; uint64_t cmd_ctl:4; uint64_t rodt_ctl:4; uint64_t ntune:4; uint64_t ptune:4; uint64_t byp:1; uint64_t m180:1; uint64_t ddr__ntune:4; uint64_t ddr__ptune:4; uint64_t reserved_34_63:30; #endif } s; struct cvmx_lmcx_comp_ctl2_s cn61xx; struct cvmx_lmcx_comp_ctl2_s cn63xx; struct cvmx_lmcx_comp_ctl2_s cn63xxp1; struct cvmx_lmcx_comp_ctl2_s cn66xx; struct cvmx_lmcx_comp_ctl2_s cn68xx; struct cvmx_lmcx_comp_ctl2_s cn68xxp1; struct cvmx_lmcx_comp_ctl2_s cnf71xx; }; union cvmx_lmcx_config { uint64_t u64; struct cvmx_lmcx_config_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_61_63:3; uint64_t mode32b:1; uint64_t scrz:1; uint64_t early_unload_d1_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d0_r0:1; uint64_t init_status:4; uint64_t mirrmask:4; uint64_t rankmask:4; uint64_t rank_ena:1; uint64_t sref_with_dll:1; uint64_t early_dqx:1; uint64_t sequence:3; uint64_t ref_zqcs_int:19; uint64_t reset:1; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t pbank_lsb:4; uint64_t row_lsb:3; uint64_t ecc_ena:1; uint64_t init_start:1; #else uint64_t init_start:1; uint64_t ecc_ena:1; uint64_t row_lsb:3; uint64_t pbank_lsb:4; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reset:1; uint64_t ref_zqcs_int:19; uint64_t sequence:3; uint64_t early_dqx:1; uint64_t sref_with_dll:1; uint64_t rank_ena:1; uint64_t rankmask:4; uint64_t mirrmask:4; uint64_t init_status:4; uint64_t early_unload_d0_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d1_r1:1; uint64_t scrz:1; uint64_t mode32b:1; uint64_t reserved_61_63:3; #endif } s; struct cvmx_lmcx_config_s cn61xx; struct cvmx_lmcx_config_cn63xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_59_63:5; uint64_t early_unload_d1_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d0_r0:1; uint64_t init_status:4; uint64_t mirrmask:4; uint64_t rankmask:4; uint64_t rank_ena:1; uint64_t sref_with_dll:1; uint64_t early_dqx:1; uint64_t sequence:3; uint64_t ref_zqcs_int:19; uint64_t reset:1; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t pbank_lsb:4; uint64_t row_lsb:3; uint64_t ecc_ena:1; uint64_t init_start:1; #else uint64_t init_start:1; uint64_t ecc_ena:1; uint64_t row_lsb:3; uint64_t pbank_lsb:4; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reset:1; uint64_t ref_zqcs_int:19; uint64_t sequence:3; uint64_t early_dqx:1; uint64_t sref_with_dll:1; uint64_t rank_ena:1; uint64_t rankmask:4; uint64_t mirrmask:4; uint64_t init_status:4; uint64_t early_unload_d0_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d1_r1:1; uint64_t reserved_59_63:5; #endif } cn63xx; struct cvmx_lmcx_config_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_55_63:9; uint64_t init_status:4; uint64_t mirrmask:4; uint64_t rankmask:4; uint64_t rank_ena:1; uint64_t sref_with_dll:1; uint64_t early_dqx:1; uint64_t sequence:3; uint64_t ref_zqcs_int:19; uint64_t reset:1; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t pbank_lsb:4; uint64_t row_lsb:3; uint64_t ecc_ena:1; uint64_t init_start:1; #else uint64_t init_start:1; uint64_t ecc_ena:1; uint64_t row_lsb:3; uint64_t pbank_lsb:4; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reset:1; uint64_t ref_zqcs_int:19; uint64_t sequence:3; uint64_t early_dqx:1; uint64_t sref_with_dll:1; uint64_t rank_ena:1; uint64_t rankmask:4; uint64_t mirrmask:4; uint64_t init_status:4; uint64_t reserved_55_63:9; #endif } cn63xxp1; struct cvmx_lmcx_config_cn66xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_60_63:4; uint64_t scrz:1; uint64_t early_unload_d1_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d0_r0:1; uint64_t init_status:4; uint64_t mirrmask:4; uint64_t rankmask:4; uint64_t rank_ena:1; uint64_t sref_with_dll:1; uint64_t early_dqx:1; uint64_t sequence:3; uint64_t ref_zqcs_int:19; uint64_t reset:1; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t pbank_lsb:4; uint64_t row_lsb:3; uint64_t ecc_ena:1; uint64_t init_start:1; #else uint64_t init_start:1; uint64_t ecc_ena:1; uint64_t row_lsb:3; uint64_t pbank_lsb:4; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reset:1; uint64_t ref_zqcs_int:19; uint64_t sequence:3; uint64_t early_dqx:1; uint64_t sref_with_dll:1; uint64_t rank_ena:1; uint64_t rankmask:4; uint64_t mirrmask:4; uint64_t init_status:4; uint64_t early_unload_d0_r0:1; uint64_t early_unload_d0_r1:1; uint64_t early_unload_d1_r0:1; uint64_t early_unload_d1_r1:1; uint64_t scrz:1; uint64_t reserved_60_63:4; #endif } cn66xx; struct cvmx_lmcx_config_cn63xx cn68xx; struct cvmx_lmcx_config_cn63xx cn68xxp1; struct cvmx_lmcx_config_s cnf71xx; }; union cvmx_lmcx_control { uint64_t u64; struct cvmx_lmcx_control_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t scramble_ena:1; uint64_t thrcnt:12; uint64_t persub:8; uint64_t thrmax:4; uint64_t crm_cnt:5; uint64_t crm_thr:5; uint64_t crm_max:5; uint64_t rodt_bprch:1; uint64_t wodt_bprch:1; uint64_t bprch:2; uint64_t ext_zqcs_dis:1; uint64_t int_zqcs_dis:1; uint64_t auto_dclkdis:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t nxm_write_en:1; uint64_t elev_prio_dis:1; uint64_t inorder_wr:1; uint64_t inorder_rd:1; uint64_t throttle_wr:1; uint64_t throttle_rd:1; uint64_t fprch2:2; uint64_t pocas:1; uint64_t ddr2t:1; uint64_t bwcnt:1; uint64_t rdimm_ena:1; #else uint64_t rdimm_ena:1; uint64_t bwcnt:1; uint64_t ddr2t:1; uint64_t pocas:1; uint64_t fprch2:2; uint64_t throttle_rd:1; uint64_t throttle_wr:1; uint64_t inorder_rd:1; uint64_t inorder_wr:1; uint64_t elev_prio_dis:1; uint64_t nxm_write_en:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t auto_dclkdis:1; uint64_t int_zqcs_dis:1; uint64_t ext_zqcs_dis:1; uint64_t bprch:2; uint64_t wodt_bprch:1; uint64_t rodt_bprch:1; uint64_t crm_max:5; uint64_t crm_thr:5; uint64_t crm_cnt:5; uint64_t thrmax:4; uint64_t persub:8; uint64_t thrcnt:12; uint64_t scramble_ena:1; #endif } s; struct cvmx_lmcx_control_s cn61xx; struct cvmx_lmcx_control_cn63xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_24_63:40; uint64_t rodt_bprch:1; uint64_t wodt_bprch:1; uint64_t bprch:2; uint64_t ext_zqcs_dis:1; uint64_t int_zqcs_dis:1; uint64_t auto_dclkdis:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t nxm_write_en:1; uint64_t elev_prio_dis:1; uint64_t inorder_wr:1; uint64_t inorder_rd:1; uint64_t throttle_wr:1; uint64_t throttle_rd:1; uint64_t fprch2:2; uint64_t pocas:1; uint64_t ddr2t:1; uint64_t bwcnt:1; uint64_t rdimm_ena:1; #else uint64_t rdimm_ena:1; uint64_t bwcnt:1; uint64_t ddr2t:1; uint64_t pocas:1; uint64_t fprch2:2; uint64_t throttle_rd:1; uint64_t throttle_wr:1; uint64_t inorder_rd:1; uint64_t inorder_wr:1; uint64_t elev_prio_dis:1; uint64_t nxm_write_en:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t auto_dclkdis:1; uint64_t int_zqcs_dis:1; uint64_t ext_zqcs_dis:1; uint64_t bprch:2; uint64_t wodt_bprch:1; uint64_t rodt_bprch:1; uint64_t reserved_24_63:40; #endif } cn63xx; struct cvmx_lmcx_control_cn63xx cn63xxp1; struct cvmx_lmcx_control_cn66xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t scramble_ena:1; uint64_t reserved_24_62:39; uint64_t rodt_bprch:1; uint64_t wodt_bprch:1; uint64_t bprch:2; uint64_t ext_zqcs_dis:1; uint64_t int_zqcs_dis:1; uint64_t auto_dclkdis:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t nxm_write_en:1; uint64_t elev_prio_dis:1; uint64_t inorder_wr:1; uint64_t inorder_rd:1; uint64_t throttle_wr:1; uint64_t throttle_rd:1; uint64_t fprch2:2; uint64_t pocas:1; uint64_t ddr2t:1; uint64_t bwcnt:1; uint64_t rdimm_ena:1; #else uint64_t rdimm_ena:1; uint64_t bwcnt:1; uint64_t ddr2t:1; uint64_t pocas:1; uint64_t fprch2:2; uint64_t throttle_rd:1; uint64_t throttle_wr:1; uint64_t inorder_rd:1; uint64_t inorder_wr:1; uint64_t elev_prio_dis:1; uint64_t nxm_write_en:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t auto_dclkdis:1; uint64_t int_zqcs_dis:1; uint64_t ext_zqcs_dis:1; uint64_t bprch:2; uint64_t wodt_bprch:1; uint64_t rodt_bprch:1; uint64_t reserved_24_62:39; uint64_t scramble_ena:1; #endif } cn66xx; struct cvmx_lmcx_control_cn68xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_63_63:1; uint64_t thrcnt:12; uint64_t persub:8; uint64_t thrmax:4; uint64_t crm_cnt:5; uint64_t crm_thr:5; uint64_t crm_max:5; uint64_t rodt_bprch:1; uint64_t wodt_bprch:1; uint64_t bprch:2; uint64_t ext_zqcs_dis:1; uint64_t int_zqcs_dis:1; uint64_t auto_dclkdis:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t nxm_write_en:1; uint64_t elev_prio_dis:1; uint64_t inorder_wr:1; uint64_t inorder_rd:1; uint64_t throttle_wr:1; uint64_t throttle_rd:1; uint64_t fprch2:2; uint64_t pocas:1; uint64_t ddr2t:1; uint64_t bwcnt:1; uint64_t rdimm_ena:1; #else uint64_t rdimm_ena:1; uint64_t bwcnt:1; uint64_t ddr2t:1; uint64_t pocas:1; uint64_t fprch2:2; uint64_t throttle_rd:1; uint64_t throttle_wr:1; uint64_t inorder_rd:1; uint64_t inorder_wr:1; uint64_t elev_prio_dis:1; uint64_t nxm_write_en:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t auto_dclkdis:1; uint64_t int_zqcs_dis:1; uint64_t ext_zqcs_dis:1; uint64_t bprch:2; uint64_t wodt_bprch:1; uint64_t rodt_bprch:1; uint64_t crm_max:5; uint64_t crm_thr:5; uint64_t crm_cnt:5; uint64_t thrmax:4; uint64_t persub:8; uint64_t thrcnt:12; uint64_t reserved_63_63:1; #endif } cn68xx; struct cvmx_lmcx_control_cn68xx cn68xxp1; struct cvmx_lmcx_control_cn66xx cnf71xx; }; union cvmx_lmcx_ctl { uint64_t u64; struct cvmx_lmcx_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t pll_div2:1; uint64_t pll_bypass:1; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t reserved_10_11:2; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t reserved_10_11:2; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t pll_bypass:1; uint64_t pll_div2:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ctl_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t pll_div2:1; uint64_t pll_bypass:1; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t dreset:1; uint64_t mode32b:1; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t mode32b:1; uint64_t dreset:1; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t pll_bypass:1; uint64_t pll_div2:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } cn30xx; struct cvmx_lmcx_ctl_cn30xx cn31xx; struct cvmx_lmcx_ctl_cn38xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t reserved_16_17:2; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t set_zero:1; uint64_t mode128b:1; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t mode128b:1; uint64_t set_zero:1; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t reserved_16_17:2; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } cn38xx; struct cvmx_lmcx_ctl_cn38xx cn38xxp2; struct cvmx_lmcx_ctl_cn50xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t reserved_17_17:1; uint64_t pll_bypass:1; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t dreset:1; uint64_t mode32b:1; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t mode32b:1; uint64_t dreset:1; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t pll_bypass:1; uint64_t reserved_17_17:1; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } cn50xx; struct cvmx_lmcx_ctl_cn52xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t reserved_16_17:2; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t dreset:1; uint64_t mode32b:1; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t mode32b:1; uint64_t dreset:1; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t reserved_16_17:2; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } cn52xx; struct cvmx_lmcx_ctl_cn52xx cn52xxp1; struct cvmx_lmcx_ctl_cn52xx cn56xx; struct cvmx_lmcx_ctl_cn52xx cn56xxp1; struct cvmx_lmcx_ctl_cn58xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:4; uint64_t ddr__pctl:4; uint64_t slow_scf:1; uint64_t xor_bank:1; uint64_t max_write_batch:4; uint64_t reserved_16_17:2; uint64_t rdimm_ena:1; uint64_t r2r_slot:1; uint64_t inorder_mwf:1; uint64_t inorder_mrf:1; uint64_t dreset:1; uint64_t mode128b:1; uint64_t fprch2:1; uint64_t bprch:1; uint64_t sil_lat:2; uint64_t tskw:2; uint64_t qs_dic:2; uint64_t dic:2; #else uint64_t dic:2; uint64_t qs_dic:2; uint64_t tskw:2; uint64_t sil_lat:2; uint64_t bprch:1; uint64_t fprch2:1; uint64_t mode128b:1; uint64_t dreset:1; uint64_t inorder_mrf:1; uint64_t inorder_mwf:1; uint64_t r2r_slot:1; uint64_t rdimm_ena:1; uint64_t reserved_16_17:2; uint64_t max_write_batch:4; uint64_t xor_bank:1; uint64_t slow_scf:1; uint64_t ddr__pctl:4; uint64_t ddr__nctl:4; uint64_t reserved_32_63:32; #endif } cn58xx; struct cvmx_lmcx_ctl_cn58xx cn58xxp1; }; union cvmx_lmcx_ctl1 { uint64_t u64; struct cvmx_lmcx_ctl1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_21_63:43; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t sequence:3; uint64_t sil_mode:1; uint64_t dcc_enable:1; uint64_t reserved_2_7:6; uint64_t data_layout:2; #else uint64_t data_layout:2; uint64_t reserved_2_7:6; uint64_t dcc_enable:1; uint64_t sil_mode:1; uint64_t sequence:3; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reserved_21_63:43; #endif } s; struct cvmx_lmcx_ctl1_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_2_63:62; uint64_t data_layout:2; #else uint64_t data_layout:2; uint64_t reserved_2_63:62; #endif } cn30xx; struct cvmx_lmcx_ctl1_cn50xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_10_63:54; uint64_t sil_mode:1; uint64_t dcc_enable:1; uint64_t reserved_2_7:6; uint64_t data_layout:2; #else uint64_t data_layout:2; uint64_t reserved_2_7:6; uint64_t dcc_enable:1; uint64_t sil_mode:1; uint64_t reserved_10_63:54; #endif } cn50xx; struct cvmx_lmcx_ctl1_cn52xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_21_63:43; uint64_t ecc_adr:1; uint64_t forcewrite:4; uint64_t idlepower:3; uint64_t sequence:3; uint64_t sil_mode:1; uint64_t dcc_enable:1; uint64_t reserved_0_7:8; #else uint64_t reserved_0_7:8; uint64_t dcc_enable:1; uint64_t sil_mode:1; uint64_t sequence:3; uint64_t idlepower:3; uint64_t forcewrite:4; uint64_t ecc_adr:1; uint64_t reserved_21_63:43; #endif } cn52xx; struct cvmx_lmcx_ctl1_cn52xx cn52xxp1; struct cvmx_lmcx_ctl1_cn52xx cn56xx; struct cvmx_lmcx_ctl1_cn52xx cn56xxp1; struct cvmx_lmcx_ctl1_cn58xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_10_63:54; uint64_t sil_mode:1; uint64_t dcc_enable:1; uint64_t reserved_0_7:8; #else uint64_t reserved_0_7:8; uint64_t dcc_enable:1; uint64_t sil_mode:1; uint64_t reserved_10_63:54; #endif } cn58xx; struct cvmx_lmcx_ctl1_cn58xx cn58xxp1; }; union cvmx_lmcx_dclk_cnt { uint64_t u64; struct cvmx_lmcx_dclk_cnt_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t dclkcnt:64; #else uint64_t dclkcnt:64; #endif } s; struct cvmx_lmcx_dclk_cnt_s cn61xx; struct cvmx_lmcx_dclk_cnt_s cn63xx; struct cvmx_lmcx_dclk_cnt_s cn63xxp1; struct cvmx_lmcx_dclk_cnt_s cn66xx; struct cvmx_lmcx_dclk_cnt_s cn68xx; struct cvmx_lmcx_dclk_cnt_s cn68xxp1; struct cvmx_lmcx_dclk_cnt_s cnf71xx; }; union cvmx_lmcx_dclk_cnt_hi { uint64_t u64; struct cvmx_lmcx_dclk_cnt_hi_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t dclkcnt_hi:32; #else uint64_t dclkcnt_hi:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_dclk_cnt_hi_s cn30xx; struct cvmx_lmcx_dclk_cnt_hi_s cn31xx; struct cvmx_lmcx_dclk_cnt_hi_s cn38xx; struct cvmx_lmcx_dclk_cnt_hi_s cn38xxp2; struct cvmx_lmcx_dclk_cnt_hi_s cn50xx; struct cvmx_lmcx_dclk_cnt_hi_s cn52xx; struct cvmx_lmcx_dclk_cnt_hi_s cn52xxp1; struct cvmx_lmcx_dclk_cnt_hi_s cn56xx; struct cvmx_lmcx_dclk_cnt_hi_s cn56xxp1; struct cvmx_lmcx_dclk_cnt_hi_s cn58xx; struct cvmx_lmcx_dclk_cnt_hi_s cn58xxp1; }; union cvmx_lmcx_dclk_cnt_lo { uint64_t u64; struct cvmx_lmcx_dclk_cnt_lo_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t dclkcnt_lo:32; #else uint64_t dclkcnt_lo:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_dclk_cnt_lo_s cn30xx; struct cvmx_lmcx_dclk_cnt_lo_s cn31xx; struct cvmx_lmcx_dclk_cnt_lo_s cn38xx; struct cvmx_lmcx_dclk_cnt_lo_s cn38xxp2; struct cvmx_lmcx_dclk_cnt_lo_s cn50xx; struct cvmx_lmcx_dclk_cnt_lo_s cn52xx; struct cvmx_lmcx_dclk_cnt_lo_s cn52xxp1; struct cvmx_lmcx_dclk_cnt_lo_s cn56xx; struct cvmx_lmcx_dclk_cnt_lo_s cn56xxp1; struct cvmx_lmcx_dclk_cnt_lo_s cn58xx; struct cvmx_lmcx_dclk_cnt_lo_s cn58xxp1; }; union cvmx_lmcx_dclk_ctl { uint64_t u64; struct cvmx_lmcx_dclk_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_8_63:56; uint64_t off90_ena:1; uint64_t dclk90_byp:1; uint64_t dclk90_ld:1; uint64_t dclk90_vlu:5; #else uint64_t dclk90_vlu:5; uint64_t dclk90_ld:1; uint64_t dclk90_byp:1; uint64_t off90_ena:1; uint64_t reserved_8_63:56; #endif } s; struct cvmx_lmcx_dclk_ctl_s cn56xx; struct cvmx_lmcx_dclk_ctl_s cn56xxp1; }; union cvmx_lmcx_ddr2_ctl { uint64_t u64; struct cvmx_lmcx_ddr2_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t bank8:1; uint64_t burst8:1; uint64_t addlat:3; uint64_t pocas:1; uint64_t bwcnt:1; uint64_t twr:3; uint64_t silo_hc:1; uint64_t ddr_eof:4; uint64_t tfaw:5; uint64_t crip_mode:1; uint64_t ddr2t:1; uint64_t odt_ena:1; uint64_t qdll_ena:1; uint64_t dll90_vlu:5; uint64_t dll90_byp:1; uint64_t rdqs:1; uint64_t ddr2:1; #else uint64_t ddr2:1; uint64_t rdqs:1; uint64_t dll90_byp:1; uint64_t dll90_vlu:5; uint64_t qdll_ena:1; uint64_t odt_ena:1; uint64_t ddr2t:1; uint64_t crip_mode:1; uint64_t tfaw:5; uint64_t ddr_eof:4; uint64_t silo_hc:1; uint64_t twr:3; uint64_t bwcnt:1; uint64_t pocas:1; uint64_t addlat:3; uint64_t burst8:1; uint64_t bank8:1; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ddr2_ctl_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t bank8:1; uint64_t burst8:1; uint64_t addlat:3; uint64_t pocas:1; uint64_t bwcnt:1; uint64_t twr:3; uint64_t silo_hc:1; uint64_t ddr_eof:4; uint64_t tfaw:5; uint64_t crip_mode:1; uint64_t ddr2t:1; uint64_t odt_ena:1; uint64_t qdll_ena:1; uint64_t dll90_vlu:5; uint64_t dll90_byp:1; uint64_t reserved_1_1:1; uint64_t ddr2:1; #else uint64_t ddr2:1; uint64_t reserved_1_1:1; uint64_t dll90_byp:1; uint64_t dll90_vlu:5; uint64_t qdll_ena:1; uint64_t odt_ena:1; uint64_t ddr2t:1; uint64_t crip_mode:1; uint64_t tfaw:5; uint64_t ddr_eof:4; uint64_t silo_hc:1; uint64_t twr:3; uint64_t bwcnt:1; uint64_t pocas:1; uint64_t addlat:3; uint64_t burst8:1; uint64_t bank8:1; uint64_t reserved_32_63:32; #endif } cn30xx; struct cvmx_lmcx_ddr2_ctl_cn30xx cn31xx; struct cvmx_lmcx_ddr2_ctl_s cn38xx; struct cvmx_lmcx_ddr2_ctl_s cn38xxp2; struct cvmx_lmcx_ddr2_ctl_s cn50xx; struct cvmx_lmcx_ddr2_ctl_s cn52xx; struct cvmx_lmcx_ddr2_ctl_s cn52xxp1; struct cvmx_lmcx_ddr2_ctl_s cn56xx; struct cvmx_lmcx_ddr2_ctl_s cn56xxp1; struct cvmx_lmcx_ddr2_ctl_s cn58xx; struct cvmx_lmcx_ddr2_ctl_s cn58xxp1; }; union cvmx_lmcx_ddr_pll_ctl { uint64_t u64; struct cvmx_lmcx_ddr_pll_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_27_63:37; uint64_t jtg_test_mode:1; uint64_t dfm_div_reset:1; uint64_t dfm_ps_en:3; uint64_t ddr_div_reset:1; uint64_t ddr_ps_en:3; uint64_t diffamp:4; uint64_t cps:3; uint64_t cpb:3; uint64_t reset_n:1; uint64_t clkf:7; #else uint64_t clkf:7; uint64_t reset_n:1; uint64_t cpb:3; uint64_t cps:3; uint64_t diffamp:4; uint64_t ddr_ps_en:3; uint64_t ddr_div_reset:1; uint64_t dfm_ps_en:3; uint64_t dfm_div_reset:1; uint64_t jtg_test_mode:1; uint64_t reserved_27_63:37; #endif } s; struct cvmx_lmcx_ddr_pll_ctl_s cn61xx; struct cvmx_lmcx_ddr_pll_ctl_s cn63xx; struct cvmx_lmcx_ddr_pll_ctl_s cn63xxp1; struct cvmx_lmcx_ddr_pll_ctl_s cn66xx; struct cvmx_lmcx_ddr_pll_ctl_s cn68xx; struct cvmx_lmcx_ddr_pll_ctl_s cn68xxp1; struct cvmx_lmcx_ddr_pll_ctl_s cnf71xx; }; union cvmx_lmcx_delay_cfg { uint64_t u64; struct cvmx_lmcx_delay_cfg_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_15_63:49; uint64_t dq:5; uint64_t cmd:5; uint64_t clk:5; #else uint64_t clk:5; uint64_t cmd:5; uint64_t dq:5; uint64_t reserved_15_63:49; #endif } s; struct cvmx_lmcx_delay_cfg_s cn30xx; struct cvmx_lmcx_delay_cfg_cn38xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_14_63:50; uint64_t dq:4; uint64_t reserved_9_9:1; uint64_t cmd:4; uint64_t reserved_4_4:1; uint64_t clk:4; #else uint64_t clk:4; uint64_t reserved_4_4:1; uint64_t cmd:4; uint64_t reserved_9_9:1; uint64_t dq:4; uint64_t reserved_14_63:50; #endif } cn38xx; struct cvmx_lmcx_delay_cfg_cn38xx cn50xx; struct cvmx_lmcx_delay_cfg_cn38xx cn52xx; struct cvmx_lmcx_delay_cfg_cn38xx cn52xxp1; struct cvmx_lmcx_delay_cfg_cn38xx cn56xx; struct cvmx_lmcx_delay_cfg_cn38xx cn56xxp1; struct cvmx_lmcx_delay_cfg_cn38xx cn58xx; struct cvmx_lmcx_delay_cfg_cn38xx cn58xxp1; }; union cvmx_lmcx_dimmx_params { uint64_t u64; struct cvmx_lmcx_dimmx_params_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t rc15:4; uint64_t rc14:4; uint64_t rc13:4; uint64_t rc12:4; uint64_t rc11:4; uint64_t rc10:4; uint64_t rc9:4; uint64_t rc8:4; uint64_t rc7:4; uint64_t rc6:4; uint64_t rc5:4; uint64_t rc4:4; uint64_t rc3:4; uint64_t rc2:4; uint64_t rc1:4; uint64_t rc0:4; #else uint64_t rc0:4; uint64_t rc1:4; uint64_t rc2:4; uint64_t rc3:4; uint64_t rc4:4; uint64_t rc5:4; uint64_t rc6:4; uint64_t rc7:4; uint64_t rc8:4; uint64_t rc9:4; uint64_t rc10:4; uint64_t rc11:4; uint64_t rc12:4; uint64_t rc13:4; uint64_t rc14:4; uint64_t rc15:4; #endif } s; struct cvmx_lmcx_dimmx_params_s cn61xx; struct cvmx_lmcx_dimmx_params_s cn63xx; struct cvmx_lmcx_dimmx_params_s cn63xxp1; struct cvmx_lmcx_dimmx_params_s cn66xx; struct cvmx_lmcx_dimmx_params_s cn68xx; struct cvmx_lmcx_dimmx_params_s cn68xxp1; struct cvmx_lmcx_dimmx_params_s cnf71xx; }; union cvmx_lmcx_dimm_ctl { uint64_t u64; struct cvmx_lmcx_dimm_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_46_63:18; uint64_t parity:1; uint64_t tcws:13; uint64_t dimm1_wmask:16; uint64_t dimm0_wmask:16; #else uint64_t dimm0_wmask:16; uint64_t dimm1_wmask:16; uint64_t tcws:13; uint64_t parity:1; uint64_t reserved_46_63:18; #endif } s; struct cvmx_lmcx_dimm_ctl_s cn61xx; struct cvmx_lmcx_dimm_ctl_s cn63xx; struct cvmx_lmcx_dimm_ctl_s cn63xxp1; struct cvmx_lmcx_dimm_ctl_s cn66xx; struct cvmx_lmcx_dimm_ctl_s cn68xx; struct cvmx_lmcx_dimm_ctl_s cn68xxp1; struct cvmx_lmcx_dimm_ctl_s cnf71xx; }; union cvmx_lmcx_dll_ctl { uint64_t u64; struct cvmx_lmcx_dll_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_8_63:56; uint64_t dreset:1; uint64_t dll90_byp:1; uint64_t dll90_ena:1; uint64_t dll90_vlu:5; #else uint64_t dll90_vlu:5; uint64_t dll90_ena:1; uint64_t dll90_byp:1; uint64_t dreset:1; uint64_t reserved_8_63:56; #endif } s; struct cvmx_lmcx_dll_ctl_s cn52xx; struct cvmx_lmcx_dll_ctl_s cn52xxp1; struct cvmx_lmcx_dll_ctl_s cn56xx; struct cvmx_lmcx_dll_ctl_s cn56xxp1; }; union cvmx_lmcx_dll_ctl2 { uint64_t u64; struct cvmx_lmcx_dll_ctl2_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_16_63:48; uint64_t intf_en:1; uint64_t dll_bringup:1; uint64_t dreset:1; uint64_t quad_dll_ena:1; uint64_t byp_sel:4; uint64_t byp_setting:8; #else uint64_t byp_setting:8; uint64_t byp_sel:4; uint64_t quad_dll_ena:1; uint64_t dreset:1; uint64_t dll_bringup:1; uint64_t intf_en:1; uint64_t reserved_16_63:48; #endif } s; struct cvmx_lmcx_dll_ctl2_s cn61xx; struct cvmx_lmcx_dll_ctl2_cn63xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_15_63:49; uint64_t dll_bringup:1; uint64_t dreset:1; uint64_t quad_dll_ena:1; uint64_t byp_sel:4; uint64_t byp_setting:8; #else uint64_t byp_setting:8; uint64_t byp_sel:4; uint64_t quad_dll_ena:1; uint64_t dreset:1; uint64_t dll_bringup:1; uint64_t reserved_15_63:49; #endif } cn63xx; struct cvmx_lmcx_dll_ctl2_cn63xx cn63xxp1; struct cvmx_lmcx_dll_ctl2_cn63xx cn66xx; struct cvmx_lmcx_dll_ctl2_s cn68xx; struct cvmx_lmcx_dll_ctl2_s cn68xxp1; struct cvmx_lmcx_dll_ctl2_s cnf71xx; }; union cvmx_lmcx_dll_ctl3 { uint64_t u64; struct cvmx_lmcx_dll_ctl3_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_41_63:23; uint64_t dclk90_fwd:1; uint64_t ddr_90_dly_byp:1; uint64_t dclk90_recal_dis:1; uint64_t dclk90_byp_sel:1; uint64_t dclk90_byp_setting:8; uint64_t dll_fast:1; uint64_t dll90_setting:8; uint64_t fine_tune_mode:1; uint64_t dll_mode:1; uint64_t dll90_byte_sel:4; uint64_t offset_ena:1; uint64_t load_offset:1; uint64_t mode_sel:2; uint64_t byte_sel:4; uint64_t offset:6; #else uint64_t offset:6; uint64_t byte_sel:4; uint64_t mode_sel:2; uint64_t load_offset:1; uint64_t offset_ena:1; uint64_t dll90_byte_sel:4; uint64_t dll_mode:1; uint64_t fine_tune_mode:1; uint64_t dll90_setting:8; uint64_t dll_fast:1; uint64_t dclk90_byp_setting:8; uint64_t dclk90_byp_sel:1; uint64_t dclk90_recal_dis:1; uint64_t ddr_90_dly_byp:1; uint64_t dclk90_fwd:1; uint64_t reserved_41_63:23; #endif } s; struct cvmx_lmcx_dll_ctl3_s cn61xx; struct cvmx_lmcx_dll_ctl3_cn63xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_29_63:35; uint64_t dll_fast:1; uint64_t dll90_setting:8; uint64_t fine_tune_mode:1; uint64_t dll_mode:1; uint64_t dll90_byte_sel:4; uint64_t offset_ena:1; uint64_t load_offset:1; uint64_t mode_sel:2; uint64_t byte_sel:4; uint64_t offset:6; #else uint64_t offset:6; uint64_t byte_sel:4; uint64_t mode_sel:2; uint64_t load_offset:1; uint64_t offset_ena:1; uint64_t dll90_byte_sel:4; uint64_t dll_mode:1; uint64_t fine_tune_mode:1; uint64_t dll90_setting:8; uint64_t dll_fast:1; uint64_t reserved_29_63:35; #endif } cn63xx; struct cvmx_lmcx_dll_ctl3_cn63xx cn63xxp1; struct cvmx_lmcx_dll_ctl3_cn63xx cn66xx; struct cvmx_lmcx_dll_ctl3_s cn68xx; struct cvmx_lmcx_dll_ctl3_s cn68xxp1; struct cvmx_lmcx_dll_ctl3_s cnf71xx; }; union cvmx_lmcx_dual_memcfg { uint64_t u64; struct cvmx_lmcx_dual_memcfg_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_20_63:44; uint64_t bank8:1; uint64_t row_lsb:3; uint64_t reserved_8_15:8; uint64_t cs_mask:8; #else uint64_t cs_mask:8; uint64_t reserved_8_15:8; uint64_t row_lsb:3; uint64_t bank8:1; uint64_t reserved_20_63:44; #endif } s; struct cvmx_lmcx_dual_memcfg_s cn50xx; struct cvmx_lmcx_dual_memcfg_s cn52xx; struct cvmx_lmcx_dual_memcfg_s cn52xxp1; struct cvmx_lmcx_dual_memcfg_s cn56xx; struct cvmx_lmcx_dual_memcfg_s cn56xxp1; struct cvmx_lmcx_dual_memcfg_s cn58xx; struct cvmx_lmcx_dual_memcfg_s cn58xxp1; struct cvmx_lmcx_dual_memcfg_cn61xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_19_63:45; uint64_t row_lsb:3; uint64_t reserved_8_15:8; uint64_t cs_mask:8; #else uint64_t cs_mask:8; uint64_t reserved_8_15:8; uint64_t row_lsb:3; uint64_t reserved_19_63:45; #endif } cn61xx; struct cvmx_lmcx_dual_memcfg_cn61xx cn63xx; struct cvmx_lmcx_dual_memcfg_cn61xx cn63xxp1; struct cvmx_lmcx_dual_memcfg_cn61xx cn66xx; struct cvmx_lmcx_dual_memcfg_cn61xx cn68xx; struct cvmx_lmcx_dual_memcfg_cn61xx cn68xxp1; struct cvmx_lmcx_dual_memcfg_cn61xx cnf71xx; }; union cvmx_lmcx_ecc_synd { uint64_t u64; struct cvmx_lmcx_ecc_synd_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t mrdsyn3:8; uint64_t mrdsyn2:8; uint64_t mrdsyn1:8; uint64_t mrdsyn0:8; #else uint64_t mrdsyn0:8; uint64_t mrdsyn1:8; uint64_t mrdsyn2:8; uint64_t mrdsyn3:8; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ecc_synd_s cn30xx; struct cvmx_lmcx_ecc_synd_s cn31xx; struct cvmx_lmcx_ecc_synd_s cn38xx; struct cvmx_lmcx_ecc_synd_s cn38xxp2; struct cvmx_lmcx_ecc_synd_s cn50xx; struct cvmx_lmcx_ecc_synd_s cn52xx; struct cvmx_lmcx_ecc_synd_s cn52xxp1; struct cvmx_lmcx_ecc_synd_s cn56xx; struct cvmx_lmcx_ecc_synd_s cn56xxp1; struct cvmx_lmcx_ecc_synd_s cn58xx; struct cvmx_lmcx_ecc_synd_s cn58xxp1; struct cvmx_lmcx_ecc_synd_s cn61xx; struct cvmx_lmcx_ecc_synd_s cn63xx; struct cvmx_lmcx_ecc_synd_s cn63xxp1; struct cvmx_lmcx_ecc_synd_s cn66xx; struct cvmx_lmcx_ecc_synd_s cn68xx; struct cvmx_lmcx_ecc_synd_s cn68xxp1; struct cvmx_lmcx_ecc_synd_s cnf71xx; }; union cvmx_lmcx_fadr { uint64_t u64; struct cvmx_lmcx_fadr_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_0_63:64; #else uint64_t reserved_0_63:64; #endif } s; struct cvmx_lmcx_fadr_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t fdimm:2; uint64_t fbunk:1; uint64_t fbank:3; uint64_t frow:14; uint64_t fcol:12; #else uint64_t fcol:12; uint64_t frow:14; uint64_t fbank:3; uint64_t fbunk:1; uint64_t fdimm:2; uint64_t reserved_32_63:32; #endif } cn30xx; struct cvmx_lmcx_fadr_cn30xx cn31xx; struct cvmx_lmcx_fadr_cn30xx cn38xx; struct cvmx_lmcx_fadr_cn30xx cn38xxp2; struct cvmx_lmcx_fadr_cn30xx cn50xx; struct cvmx_lmcx_fadr_cn30xx cn52xx; struct cvmx_lmcx_fadr_cn30xx cn52xxp1; struct cvmx_lmcx_fadr_cn30xx cn56xx; struct cvmx_lmcx_fadr_cn30xx cn56xxp1; struct cvmx_lmcx_fadr_cn30xx cn58xx; struct cvmx_lmcx_fadr_cn30xx cn58xxp1; struct cvmx_lmcx_fadr_cn61xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_36_63:28; uint64_t fdimm:2; uint64_t fbunk:1; uint64_t fbank:3; uint64_t frow:16; uint64_t fcol:14; #else uint64_t fcol:14; uint64_t frow:16; uint64_t fbank:3; uint64_t fbunk:1; uint64_t fdimm:2; uint64_t reserved_36_63:28; #endif } cn61xx; struct cvmx_lmcx_fadr_cn61xx cn63xx; struct cvmx_lmcx_fadr_cn61xx cn63xxp1; struct cvmx_lmcx_fadr_cn61xx cn66xx; struct cvmx_lmcx_fadr_cn61xx cn68xx; struct cvmx_lmcx_fadr_cn61xx cn68xxp1; struct cvmx_lmcx_fadr_cn61xx cnf71xx; }; union cvmx_lmcx_ifb_cnt { uint64_t u64; struct cvmx_lmcx_ifb_cnt_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t ifbcnt:64; #else uint64_t ifbcnt:64; #endif } s; struct cvmx_lmcx_ifb_cnt_s cn61xx; struct cvmx_lmcx_ifb_cnt_s cn63xx; struct cvmx_lmcx_ifb_cnt_s cn63xxp1; struct cvmx_lmcx_ifb_cnt_s cn66xx; struct cvmx_lmcx_ifb_cnt_s cn68xx; struct cvmx_lmcx_ifb_cnt_s cn68xxp1; struct cvmx_lmcx_ifb_cnt_s cnf71xx; }; union cvmx_lmcx_ifb_cnt_hi { uint64_t u64; struct cvmx_lmcx_ifb_cnt_hi_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ifbcnt_hi:32; #else uint64_t ifbcnt_hi:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ifb_cnt_hi_s cn30xx; struct cvmx_lmcx_ifb_cnt_hi_s cn31xx; struct cvmx_lmcx_ifb_cnt_hi_s cn38xx; struct cvmx_lmcx_ifb_cnt_hi_s cn38xxp2; struct cvmx_lmcx_ifb_cnt_hi_s cn50xx; struct cvmx_lmcx_ifb_cnt_hi_s cn52xx; struct cvmx_lmcx_ifb_cnt_hi_s cn52xxp1; struct cvmx_lmcx_ifb_cnt_hi_s cn56xx; struct cvmx_lmcx_ifb_cnt_hi_s cn56xxp1; struct cvmx_lmcx_ifb_cnt_hi_s cn58xx; struct cvmx_lmcx_ifb_cnt_hi_s cn58xxp1; }; union cvmx_lmcx_ifb_cnt_lo { uint64_t u64; struct cvmx_lmcx_ifb_cnt_lo_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ifbcnt_lo:32; #else uint64_t ifbcnt_lo:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ifb_cnt_lo_s cn30xx; struct cvmx_lmcx_ifb_cnt_lo_s cn31xx; struct cvmx_lmcx_ifb_cnt_lo_s cn38xx; struct cvmx_lmcx_ifb_cnt_lo_s cn38xxp2; struct cvmx_lmcx_ifb_cnt_lo_s cn50xx; struct cvmx_lmcx_ifb_cnt_lo_s cn52xx; struct cvmx_lmcx_ifb_cnt_lo_s cn52xxp1; struct cvmx_lmcx_ifb_cnt_lo_s cn56xx; struct cvmx_lmcx_ifb_cnt_lo_s cn56xxp1; struct cvmx_lmcx_ifb_cnt_lo_s cn58xx; struct cvmx_lmcx_ifb_cnt_lo_s cn58xxp1; }; union cvmx_lmcx_int { uint64_t u64; struct cvmx_lmcx_int_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_9_63:55; uint64_t ded_err:4; uint64_t sec_err:4; uint64_t nxm_wr_err:1; #else uint64_t nxm_wr_err:1; uint64_t sec_err:4; uint64_t ded_err:4; uint64_t reserved_9_63:55; #endif } s; struct cvmx_lmcx_int_s cn61xx; struct cvmx_lmcx_int_s cn63xx; struct cvmx_lmcx_int_s cn63xxp1; struct cvmx_lmcx_int_s cn66xx; struct cvmx_lmcx_int_s cn68xx; struct cvmx_lmcx_int_s cn68xxp1; struct cvmx_lmcx_int_s cnf71xx; }; union cvmx_lmcx_int_en { uint64_t u64; struct cvmx_lmcx_int_en_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_3_63:61; uint64_t intr_ded_ena:1; uint64_t intr_sec_ena:1; uint64_t intr_nxm_wr_ena:1; #else uint64_t intr_nxm_wr_ena:1; uint64_t intr_sec_ena:1; uint64_t intr_ded_ena:1; uint64_t reserved_3_63:61; #endif } s; struct cvmx_lmcx_int_en_s cn61xx; struct cvmx_lmcx_int_en_s cn63xx; struct cvmx_lmcx_int_en_s cn63xxp1; struct cvmx_lmcx_int_en_s cn66xx; struct cvmx_lmcx_int_en_s cn68xx; struct cvmx_lmcx_int_en_s cn68xxp1; struct cvmx_lmcx_int_en_s cnf71xx; }; union cvmx_lmcx_mem_cfg0 { uint64_t u64; struct cvmx_lmcx_mem_cfg0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t reset:1; uint64_t silo_qc:1; uint64_t bunk_ena:1; uint64_t ded_err:4; uint64_t sec_err:4; uint64_t intr_ded_ena:1; uint64_t intr_sec_ena:1; uint64_t tcl:4; uint64_t ref_int:6; uint64_t pbank_lsb:4; uint64_t row_lsb:3; uint64_t ecc_ena:1; uint64_t init_start:1; #else uint64_t init_start:1; uint64_t ecc_ena:1; uint64_t row_lsb:3; uint64_t pbank_lsb:4; uint64_t ref_int:6; uint64_t tcl:4; uint64_t intr_sec_ena:1; uint64_t intr_ded_ena:1; uint64_t sec_err:4; uint64_t ded_err:4; uint64_t bunk_ena:1; uint64_t silo_qc:1; uint64_t reset:1; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_mem_cfg0_s cn30xx; struct cvmx_lmcx_mem_cfg0_s cn31xx; struct cvmx_lmcx_mem_cfg0_s cn38xx; struct cvmx_lmcx_mem_cfg0_s cn38xxp2; struct cvmx_lmcx_mem_cfg0_s cn50xx; struct cvmx_lmcx_mem_cfg0_s cn52xx; struct cvmx_lmcx_mem_cfg0_s cn52xxp1; struct cvmx_lmcx_mem_cfg0_s cn56xx; struct cvmx_lmcx_mem_cfg0_s cn56xxp1; struct cvmx_lmcx_mem_cfg0_s cn58xx; struct cvmx_lmcx_mem_cfg0_s cn58xxp1; }; union cvmx_lmcx_mem_cfg1 { uint64_t u64; struct cvmx_lmcx_mem_cfg1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t comp_bypass:1; uint64_t trrd:3; uint64_t caslat:3; uint64_t tmrd:3; uint64_t trfc:5; uint64_t trp:4; uint64_t twtr:4; uint64_t trcd:4; uint64_t tras:5; #else uint64_t tras:5; uint64_t trcd:4; uint64_t twtr:4; uint64_t trp:4; uint64_t trfc:5; uint64_t tmrd:3; uint64_t caslat:3; uint64_t trrd:3; uint64_t comp_bypass:1; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_mem_cfg1_s cn30xx; struct cvmx_lmcx_mem_cfg1_s cn31xx; struct cvmx_lmcx_mem_cfg1_cn38xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_31_63:33; uint64_t trrd:3; uint64_t caslat:3; uint64_t tmrd:3; uint64_t trfc:5; uint64_t trp:4; uint64_t twtr:4; uint64_t trcd:4; uint64_t tras:5; #else uint64_t tras:5; uint64_t trcd:4; uint64_t twtr:4; uint64_t trp:4; uint64_t trfc:5; uint64_t tmrd:3; uint64_t caslat:3; uint64_t trrd:3; uint64_t reserved_31_63:33; #endif } cn38xx; struct cvmx_lmcx_mem_cfg1_cn38xx cn38xxp2; struct cvmx_lmcx_mem_cfg1_s cn50xx; struct cvmx_lmcx_mem_cfg1_cn38xx cn52xx; struct cvmx_lmcx_mem_cfg1_cn38xx cn52xxp1; struct cvmx_lmcx_mem_cfg1_cn38xx cn56xx; struct cvmx_lmcx_mem_cfg1_cn38xx cn56xxp1; struct cvmx_lmcx_mem_cfg1_cn38xx cn58xx; struct cvmx_lmcx_mem_cfg1_cn38xx cn58xxp1; }; union cvmx_lmcx_modereg_params0 { uint64_t u64; struct cvmx_lmcx_modereg_params0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_25_63:39; uint64_t ppd:1; uint64_t wrp:3; uint64_t dllr:1; uint64_t tm:1; uint64_t rbt:1; uint64_t cl:4; uint64_t bl:2; uint64_t qoff:1; uint64_t tdqs:1; uint64_t wlev:1; uint64_t al:2; uint64_t dll:1; uint64_t mpr:1; uint64_t mprloc:2; uint64_t cwl:3; #else uint64_t cwl:3; uint64_t mprloc:2; uint64_t mpr:1; uint64_t dll:1; uint64_t al:2; uint64_t wlev:1; uint64_t tdqs:1; uint64_t qoff:1; uint64_t bl:2; uint64_t cl:4; uint64_t rbt:1; uint64_t tm:1; uint64_t dllr:1; uint64_t wrp:3; uint64_t ppd:1; uint64_t reserved_25_63:39; #endif } s; struct cvmx_lmcx_modereg_params0_s cn61xx; struct cvmx_lmcx_modereg_params0_s cn63xx; struct cvmx_lmcx_modereg_params0_s cn63xxp1; struct cvmx_lmcx_modereg_params0_s cn66xx; struct cvmx_lmcx_modereg_params0_s cn68xx; struct cvmx_lmcx_modereg_params0_s cn68xxp1; struct cvmx_lmcx_modereg_params0_s cnf71xx; }; union cvmx_lmcx_modereg_params1 { uint64_t u64; struct cvmx_lmcx_modereg_params1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_48_63:16; uint64_t rtt_nom_11:3; uint64_t dic_11:2; uint64_t rtt_wr_11:2; uint64_t srt_11:1; uint64_t asr_11:1; uint64_t pasr_11:3; uint64_t rtt_nom_10:3; uint64_t dic_10:2; uint64_t rtt_wr_10:2; uint64_t srt_10:1; uint64_t asr_10:1; uint64_t pasr_10:3; uint64_t rtt_nom_01:3; uint64_t dic_01:2; uint64_t rtt_wr_01:2; uint64_t srt_01:1; uint64_t asr_01:1; uint64_t pasr_01:3; uint64_t rtt_nom_00:3; uint64_t dic_00:2; uint64_t rtt_wr_00:2; uint64_t srt_00:1; uint64_t asr_00:1; uint64_t pasr_00:3; #else uint64_t pasr_00:3; uint64_t asr_00:1; uint64_t srt_00:1; uint64_t rtt_wr_00:2; uint64_t dic_00:2; uint64_t rtt_nom_00:3; uint64_t pasr_01:3; uint64_t asr_01:1; uint64_t srt_01:1; uint64_t rtt_wr_01:2; uint64_t dic_01:2; uint64_t rtt_nom_01:3; uint64_t pasr_10:3; uint64_t asr_10:1; uint64_t srt_10:1; uint64_t rtt_wr_10:2; uint64_t dic_10:2; uint64_t rtt_nom_10:3; uint64_t pasr_11:3; uint64_t asr_11:1; uint64_t srt_11:1; uint64_t rtt_wr_11:2; uint64_t dic_11:2; uint64_t rtt_nom_11:3; uint64_t reserved_48_63:16; #endif } s; struct cvmx_lmcx_modereg_params1_s cn61xx; struct cvmx_lmcx_modereg_params1_s cn63xx; struct cvmx_lmcx_modereg_params1_s cn63xxp1; struct cvmx_lmcx_modereg_params1_s cn66xx; struct cvmx_lmcx_modereg_params1_s cn68xx; struct cvmx_lmcx_modereg_params1_s cn68xxp1; struct cvmx_lmcx_modereg_params1_s cnf71xx; }; union cvmx_lmcx_nxm { uint64_t u64; struct cvmx_lmcx_nxm_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_40_63:24; uint64_t mem_msb_d3_r1:4; uint64_t mem_msb_d3_r0:4; uint64_t mem_msb_d2_r1:4; uint64_t mem_msb_d2_r0:4; uint64_t mem_msb_d1_r1:4; uint64_t mem_msb_d1_r0:4; uint64_t mem_msb_d0_r1:4; uint64_t mem_msb_d0_r0:4; uint64_t cs_mask:8; #else uint64_t cs_mask:8; uint64_t mem_msb_d0_r0:4; uint64_t mem_msb_d0_r1:4; uint64_t mem_msb_d1_r0:4; uint64_t mem_msb_d1_r1:4; uint64_t mem_msb_d2_r0:4; uint64_t mem_msb_d2_r1:4; uint64_t mem_msb_d3_r0:4; uint64_t mem_msb_d3_r1:4; uint64_t reserved_40_63:24; #endif } s; struct cvmx_lmcx_nxm_cn52xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_8_63:56; uint64_t cs_mask:8; #else uint64_t cs_mask:8; uint64_t reserved_8_63:56; #endif } cn52xx; struct cvmx_lmcx_nxm_cn52xx cn56xx; struct cvmx_lmcx_nxm_cn52xx cn58xx; struct cvmx_lmcx_nxm_s cn61xx; struct cvmx_lmcx_nxm_s cn63xx; struct cvmx_lmcx_nxm_s cn63xxp1; struct cvmx_lmcx_nxm_s cn66xx; struct cvmx_lmcx_nxm_s cn68xx; struct cvmx_lmcx_nxm_s cn68xxp1; struct cvmx_lmcx_nxm_s cnf71xx; }; union cvmx_lmcx_ops_cnt { uint64_t u64; struct cvmx_lmcx_ops_cnt_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t opscnt:64; #else uint64_t opscnt:64; #endif } s; struct cvmx_lmcx_ops_cnt_s cn61xx; struct cvmx_lmcx_ops_cnt_s cn63xx; struct cvmx_lmcx_ops_cnt_s cn63xxp1; struct cvmx_lmcx_ops_cnt_s cn66xx; struct cvmx_lmcx_ops_cnt_s cn68xx; struct cvmx_lmcx_ops_cnt_s cn68xxp1; struct cvmx_lmcx_ops_cnt_s cnf71xx; }; union cvmx_lmcx_ops_cnt_hi { uint64_t u64; struct cvmx_lmcx_ops_cnt_hi_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t opscnt_hi:32; #else uint64_t opscnt_hi:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ops_cnt_hi_s cn30xx; struct cvmx_lmcx_ops_cnt_hi_s cn31xx; struct cvmx_lmcx_ops_cnt_hi_s cn38xx; struct cvmx_lmcx_ops_cnt_hi_s cn38xxp2; struct cvmx_lmcx_ops_cnt_hi_s cn50xx; struct cvmx_lmcx_ops_cnt_hi_s cn52xx; struct cvmx_lmcx_ops_cnt_hi_s cn52xxp1; struct cvmx_lmcx_ops_cnt_hi_s cn56xx; struct cvmx_lmcx_ops_cnt_hi_s cn56xxp1; struct cvmx_lmcx_ops_cnt_hi_s cn58xx; struct cvmx_lmcx_ops_cnt_hi_s cn58xxp1; }; union cvmx_lmcx_ops_cnt_lo { uint64_t u64; struct cvmx_lmcx_ops_cnt_lo_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t opscnt_lo:32; #else uint64_t opscnt_lo:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_ops_cnt_lo_s cn30xx; struct cvmx_lmcx_ops_cnt_lo_s cn31xx; struct cvmx_lmcx_ops_cnt_lo_s cn38xx; struct cvmx_lmcx_ops_cnt_lo_s cn38xxp2; struct cvmx_lmcx_ops_cnt_lo_s cn50xx; struct cvmx_lmcx_ops_cnt_lo_s cn52xx; struct cvmx_lmcx_ops_cnt_lo_s cn52xxp1; struct cvmx_lmcx_ops_cnt_lo_s cn56xx; struct cvmx_lmcx_ops_cnt_lo_s cn56xxp1; struct cvmx_lmcx_ops_cnt_lo_s cn58xx; struct cvmx_lmcx_ops_cnt_lo_s cn58xxp1; }; union cvmx_lmcx_phy_ctl { uint64_t u64; struct cvmx_lmcx_phy_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_15_63:49; uint64_t rx_always_on:1; uint64_t lv_mode:1; uint64_t ck_tune1:1; uint64_t ck_dlyout1:4; uint64_t ck_tune0:1; uint64_t ck_dlyout0:4; uint64_t loopback:1; uint64_t loopback_pos:1; uint64_t ts_stagger:1; #else uint64_t ts_stagger:1; uint64_t loopback_pos:1; uint64_t loopback:1; uint64_t ck_dlyout0:4; uint64_t ck_tune0:1; uint64_t ck_dlyout1:4; uint64_t ck_tune1:1; uint64_t lv_mode:1; uint64_t rx_always_on:1; uint64_t reserved_15_63:49; #endif } s; struct cvmx_lmcx_phy_ctl_s cn61xx; struct cvmx_lmcx_phy_ctl_s cn63xx; struct cvmx_lmcx_phy_ctl_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_14_63:50; uint64_t lv_mode:1; uint64_t ck_tune1:1; uint64_t ck_dlyout1:4; uint64_t ck_tune0:1; uint64_t ck_dlyout0:4; uint64_t loopback:1; uint64_t loopback_pos:1; uint64_t ts_stagger:1; #else uint64_t ts_stagger:1; uint64_t loopback_pos:1; uint64_t loopback:1; uint64_t ck_dlyout0:4; uint64_t ck_tune0:1; uint64_t ck_dlyout1:4; uint64_t ck_tune1:1; uint64_t lv_mode:1; uint64_t reserved_14_63:50; #endif } cn63xxp1; struct cvmx_lmcx_phy_ctl_s cn66xx; struct cvmx_lmcx_phy_ctl_s cn68xx; struct cvmx_lmcx_phy_ctl_s cn68xxp1; struct cvmx_lmcx_phy_ctl_s cnf71xx; }; union cvmx_lmcx_pll_bwctl { uint64_t u64; struct cvmx_lmcx_pll_bwctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_5_63:59; uint64_t bwupd:1; uint64_t bwctl:4; #else uint64_t bwctl:4; uint64_t bwupd:1; uint64_t reserved_5_63:59; #endif } s; struct cvmx_lmcx_pll_bwctl_s cn30xx; struct cvmx_lmcx_pll_bwctl_s cn31xx; struct cvmx_lmcx_pll_bwctl_s cn38xx; struct cvmx_lmcx_pll_bwctl_s cn38xxp2; }; union cvmx_lmcx_pll_ctl { uint64_t u64; struct cvmx_lmcx_pll_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_30_63:34; uint64_t bypass:1; uint64_t fasten_n:1; uint64_t div_reset:1; uint64_t reset_n:1; uint64_t clkf:12; uint64_t clkr:6; uint64_t reserved_6_7:2; uint64_t en16:1; uint64_t en12:1; uint64_t en8:1; uint64_t en6:1; uint64_t en4:1; uint64_t en2:1; #else uint64_t en2:1; uint64_t en4:1; uint64_t en6:1; uint64_t en8:1; uint64_t en12:1; uint64_t en16:1; uint64_t reserved_6_7:2; uint64_t clkr:6; uint64_t clkf:12; uint64_t reset_n:1; uint64_t div_reset:1; uint64_t fasten_n:1; uint64_t bypass:1; uint64_t reserved_30_63:34; #endif } s; struct cvmx_lmcx_pll_ctl_cn50xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_29_63:35; uint64_t fasten_n:1; uint64_t div_reset:1; uint64_t reset_n:1; uint64_t clkf:12; uint64_t clkr:6; uint64_t reserved_6_7:2; uint64_t en16:1; uint64_t en12:1; uint64_t en8:1; uint64_t en6:1; uint64_t en4:1; uint64_t en2:1; #else uint64_t en2:1; uint64_t en4:1; uint64_t en6:1; uint64_t en8:1; uint64_t en12:1; uint64_t en16:1; uint64_t reserved_6_7:2; uint64_t clkr:6; uint64_t clkf:12; uint64_t reset_n:1; uint64_t div_reset:1; uint64_t fasten_n:1; uint64_t reserved_29_63:35; #endif } cn50xx; struct cvmx_lmcx_pll_ctl_s cn52xx; struct cvmx_lmcx_pll_ctl_s cn52xxp1; struct cvmx_lmcx_pll_ctl_cn50xx cn56xx; struct cvmx_lmcx_pll_ctl_cn56xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_28_63:36; uint64_t div_reset:1; uint64_t reset_n:1; uint64_t clkf:12; uint64_t clkr:6; uint64_t reserved_6_7:2; uint64_t en16:1; uint64_t en12:1; uint64_t en8:1; uint64_t en6:1; uint64_t en4:1; uint64_t en2:1; #else uint64_t en2:1; uint64_t en4:1; uint64_t en6:1; uint64_t en8:1; uint64_t en12:1; uint64_t en16:1; uint64_t reserved_6_7:2; uint64_t clkr:6; uint64_t clkf:12; uint64_t reset_n:1; uint64_t div_reset:1; uint64_t reserved_28_63:36; #endif } cn56xxp1; struct cvmx_lmcx_pll_ctl_cn56xxp1 cn58xx; struct cvmx_lmcx_pll_ctl_cn56xxp1 cn58xxp1; }; union cvmx_lmcx_pll_status { uint64_t u64; struct cvmx_lmcx_pll_status_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ddr__nctl:5; uint64_t ddr__pctl:5; uint64_t reserved_2_21:20; uint64_t rfslip:1; uint64_t fbslip:1; #else uint64_t fbslip:1; uint64_t rfslip:1; uint64_t reserved_2_21:20; uint64_t ddr__pctl:5; uint64_t ddr__nctl:5; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_pll_status_s cn50xx; struct cvmx_lmcx_pll_status_s cn52xx; struct cvmx_lmcx_pll_status_s cn52xxp1; struct cvmx_lmcx_pll_status_s cn56xx; struct cvmx_lmcx_pll_status_s cn56xxp1; struct cvmx_lmcx_pll_status_s cn58xx; struct cvmx_lmcx_pll_status_cn58xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_2_63:62; uint64_t rfslip:1; uint64_t fbslip:1; #else uint64_t fbslip:1; uint64_t rfslip:1; uint64_t reserved_2_63:62; #endif } cn58xxp1; }; union cvmx_lmcx_read_level_ctl { uint64_t u64; struct cvmx_lmcx_read_level_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_44_63:20; uint64_t rankmask:4; uint64_t pattern:8; uint64_t row:16; uint64_t col:12; uint64_t reserved_3_3:1; uint64_t bnk:3; #else uint64_t bnk:3; uint64_t reserved_3_3:1; uint64_t col:12; uint64_t row:16; uint64_t pattern:8; uint64_t rankmask:4; uint64_t reserved_44_63:20; #endif } s; struct cvmx_lmcx_read_level_ctl_s cn52xx; struct cvmx_lmcx_read_level_ctl_s cn52xxp1; struct cvmx_lmcx_read_level_ctl_s cn56xx; struct cvmx_lmcx_read_level_ctl_s cn56xxp1; }; union cvmx_lmcx_read_level_dbg { uint64_t u64; struct cvmx_lmcx_read_level_dbg_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t bitmask:16; uint64_t reserved_4_15:12; uint64_t byte:4; #else uint64_t byte:4; uint64_t reserved_4_15:12; uint64_t bitmask:16; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_read_level_dbg_s cn52xx; struct cvmx_lmcx_read_level_dbg_s cn52xxp1; struct cvmx_lmcx_read_level_dbg_s cn56xx; struct cvmx_lmcx_read_level_dbg_s cn56xxp1; }; union cvmx_lmcx_read_level_rankx { uint64_t u64; struct cvmx_lmcx_read_level_rankx_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_38_63:26; uint64_t status:2; uint64_t byte8:4; uint64_t byte7:4; uint64_t byte6:4; uint64_t byte5:4; uint64_t byte4:4; uint64_t byte3:4; uint64_t byte2:4; uint64_t byte1:4; uint64_t byte0:4; #else uint64_t byte0:4; uint64_t byte1:4; uint64_t byte2:4; uint64_t byte3:4; uint64_t byte4:4; uint64_t byte5:4; uint64_t byte6:4; uint64_t byte7:4; uint64_t byte8:4; uint64_t status:2; uint64_t reserved_38_63:26; #endif } s; struct cvmx_lmcx_read_level_rankx_s cn52xx; struct cvmx_lmcx_read_level_rankx_s cn52xxp1; struct cvmx_lmcx_read_level_rankx_s cn56xx; struct cvmx_lmcx_read_level_rankx_s cn56xxp1; }; union cvmx_lmcx_reset_ctl { uint64_t u64; struct cvmx_lmcx_reset_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_4_63:60; uint64_t ddr3psv:1; uint64_t ddr3psoft:1; uint64_t ddr3pwarm:1; uint64_t ddr3rst:1; #else uint64_t ddr3rst:1; uint64_t ddr3pwarm:1; uint64_t ddr3psoft:1; uint64_t ddr3psv:1; uint64_t reserved_4_63:60; #endif } s; struct cvmx_lmcx_reset_ctl_s cn61xx; struct cvmx_lmcx_reset_ctl_s cn63xx; struct cvmx_lmcx_reset_ctl_s cn63xxp1; struct cvmx_lmcx_reset_ctl_s cn66xx; struct cvmx_lmcx_reset_ctl_s cn68xx; struct cvmx_lmcx_reset_ctl_s cn68xxp1; struct cvmx_lmcx_reset_ctl_s cnf71xx; }; union cvmx_lmcx_rlevel_ctl { uint64_t u64; struct cvmx_lmcx_rlevel_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_22_63:42; uint64_t delay_unload_3:1; uint64_t delay_unload_2:1; uint64_t delay_unload_1:1; uint64_t delay_unload_0:1; uint64_t bitmask:8; uint64_t or_dis:1; uint64_t offset_en:1; uint64_t offset:4; uint64_t byte:4; #else uint64_t byte:4; uint64_t offset:4; uint64_t offset_en:1; uint64_t or_dis:1; uint64_t bitmask:8; uint64_t delay_unload_0:1; uint64_t delay_unload_1:1; uint64_t delay_unload_2:1; uint64_t delay_unload_3:1; uint64_t reserved_22_63:42; #endif } s; struct cvmx_lmcx_rlevel_ctl_s cn61xx; struct cvmx_lmcx_rlevel_ctl_s cn63xx; struct cvmx_lmcx_rlevel_ctl_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_9_63:55; uint64_t offset_en:1; uint64_t offset:4; uint64_t byte:4; #else uint64_t byte:4; uint64_t offset:4; uint64_t offset_en:1; uint64_t reserved_9_63:55; #endif } cn63xxp1; struct cvmx_lmcx_rlevel_ctl_s cn66xx; struct cvmx_lmcx_rlevel_ctl_s cn68xx; struct cvmx_lmcx_rlevel_ctl_s cn68xxp1; struct cvmx_lmcx_rlevel_ctl_s cnf71xx; }; union cvmx_lmcx_rlevel_dbg { uint64_t u64; struct cvmx_lmcx_rlevel_dbg_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t bitmask:64; #else uint64_t bitmask:64; #endif } s; struct cvmx_lmcx_rlevel_dbg_s cn61xx; struct cvmx_lmcx_rlevel_dbg_s cn63xx; struct cvmx_lmcx_rlevel_dbg_s cn63xxp1; struct cvmx_lmcx_rlevel_dbg_s cn66xx; struct cvmx_lmcx_rlevel_dbg_s cn68xx; struct cvmx_lmcx_rlevel_dbg_s cn68xxp1; struct cvmx_lmcx_rlevel_dbg_s cnf71xx; }; union cvmx_lmcx_rlevel_rankx { uint64_t u64; struct cvmx_lmcx_rlevel_rankx_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_56_63:8; uint64_t status:2; uint64_t byte8:6; uint64_t byte7:6; uint64_t byte6:6; uint64_t byte5:6; uint64_t byte4:6; uint64_t byte3:6; uint64_t byte2:6; uint64_t byte1:6; uint64_t byte0:6; #else uint64_t byte0:6; uint64_t byte1:6; uint64_t byte2:6; uint64_t byte3:6; uint64_t byte4:6; uint64_t byte5:6; uint64_t byte6:6; uint64_t byte7:6; uint64_t byte8:6; uint64_t status:2; uint64_t reserved_56_63:8; #endif } s; struct cvmx_lmcx_rlevel_rankx_s cn61xx; struct cvmx_lmcx_rlevel_rankx_s cn63xx; struct cvmx_lmcx_rlevel_rankx_s cn63xxp1; struct cvmx_lmcx_rlevel_rankx_s cn66xx; struct cvmx_lmcx_rlevel_rankx_s cn68xx; struct cvmx_lmcx_rlevel_rankx_s cn68xxp1; struct cvmx_lmcx_rlevel_rankx_s cnf71xx; }; union cvmx_lmcx_rodt_comp_ctl { uint64_t u64; struct cvmx_lmcx_rodt_comp_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_17_63:47; uint64_t enable:1; uint64_t reserved_12_15:4; uint64_t nctl:4; uint64_t reserved_5_7:3; uint64_t pctl:5; #else uint64_t pctl:5; uint64_t reserved_5_7:3; uint64_t nctl:4; uint64_t reserved_12_15:4; uint64_t enable:1; uint64_t reserved_17_63:47; #endif } s; struct cvmx_lmcx_rodt_comp_ctl_s cn50xx; struct cvmx_lmcx_rodt_comp_ctl_s cn52xx; struct cvmx_lmcx_rodt_comp_ctl_s cn52xxp1; struct cvmx_lmcx_rodt_comp_ctl_s cn56xx; struct cvmx_lmcx_rodt_comp_ctl_s cn56xxp1; struct cvmx_lmcx_rodt_comp_ctl_s cn58xx; struct cvmx_lmcx_rodt_comp_ctl_s cn58xxp1; }; union cvmx_lmcx_rodt_ctl { uint64_t u64; struct cvmx_lmcx_rodt_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t rodt_hi3:4; uint64_t rodt_hi2:4; uint64_t rodt_hi1:4; uint64_t rodt_hi0:4; uint64_t rodt_lo3:4; uint64_t rodt_lo2:4; uint64_t rodt_lo1:4; uint64_t rodt_lo0:4; #else uint64_t rodt_lo0:4; uint64_t rodt_lo1:4; uint64_t rodt_lo2:4; uint64_t rodt_lo3:4; uint64_t rodt_hi0:4; uint64_t rodt_hi1:4; uint64_t rodt_hi2:4; uint64_t rodt_hi3:4; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_rodt_ctl_s cn30xx; struct cvmx_lmcx_rodt_ctl_s cn31xx; struct cvmx_lmcx_rodt_ctl_s cn38xx; struct cvmx_lmcx_rodt_ctl_s cn38xxp2; struct cvmx_lmcx_rodt_ctl_s cn50xx; struct cvmx_lmcx_rodt_ctl_s cn52xx; struct cvmx_lmcx_rodt_ctl_s cn52xxp1; struct cvmx_lmcx_rodt_ctl_s cn56xx; struct cvmx_lmcx_rodt_ctl_s cn56xxp1; struct cvmx_lmcx_rodt_ctl_s cn58xx; struct cvmx_lmcx_rodt_ctl_s cn58xxp1; }; union cvmx_lmcx_rodt_mask { uint64_t u64; struct cvmx_lmcx_rodt_mask_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t rodt_d3_r1:8; uint64_t rodt_d3_r0:8; uint64_t rodt_d2_r1:8; uint64_t rodt_d2_r0:8; uint64_t rodt_d1_r1:8; uint64_t rodt_d1_r0:8; uint64_t rodt_d0_r1:8; uint64_t rodt_d0_r0:8; #else uint64_t rodt_d0_r0:8; uint64_t rodt_d0_r1:8; uint64_t rodt_d1_r0:8; uint64_t rodt_d1_r1:8; uint64_t rodt_d2_r0:8; uint64_t rodt_d2_r1:8; uint64_t rodt_d3_r0:8; uint64_t rodt_d3_r1:8; #endif } s; struct cvmx_lmcx_rodt_mask_s cn61xx; struct cvmx_lmcx_rodt_mask_s cn63xx; struct cvmx_lmcx_rodt_mask_s cn63xxp1; struct cvmx_lmcx_rodt_mask_s cn66xx; struct cvmx_lmcx_rodt_mask_s cn68xx; struct cvmx_lmcx_rodt_mask_s cn68xxp1; struct cvmx_lmcx_rodt_mask_s cnf71xx; }; union cvmx_lmcx_scramble_cfg0 { uint64_t u64; struct cvmx_lmcx_scramble_cfg0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t key:64; #else uint64_t key:64; #endif } s; struct cvmx_lmcx_scramble_cfg0_s cn61xx; struct cvmx_lmcx_scramble_cfg0_s cn66xx; struct cvmx_lmcx_scramble_cfg0_s cnf71xx; }; union cvmx_lmcx_scramble_cfg1 { uint64_t u64; struct cvmx_lmcx_scramble_cfg1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t key:64; #else uint64_t key:64; #endif } s; struct cvmx_lmcx_scramble_cfg1_s cn61xx; struct cvmx_lmcx_scramble_cfg1_s cn66xx; struct cvmx_lmcx_scramble_cfg1_s cnf71xx; }; union cvmx_lmcx_scrambled_fadr { uint64_t u64; struct cvmx_lmcx_scrambled_fadr_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_36_63:28; uint64_t fdimm:2; uint64_t fbunk:1; uint64_t fbank:3; uint64_t frow:16; uint64_t fcol:14; #else uint64_t fcol:14; uint64_t frow:16; uint64_t fbank:3; uint64_t fbunk:1; uint64_t fdimm:2; uint64_t reserved_36_63:28; #endif } s; struct cvmx_lmcx_scrambled_fadr_s cn61xx; struct cvmx_lmcx_scrambled_fadr_s cn66xx; struct cvmx_lmcx_scrambled_fadr_s cnf71xx; }; union cvmx_lmcx_slot_ctl0 { uint64_t u64; struct cvmx_lmcx_slot_ctl0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_24_63:40; uint64_t w2w_init:6; uint64_t w2r_init:6; uint64_t r2w_init:6; uint64_t r2r_init:6; #else uint64_t r2r_init:6; uint64_t r2w_init:6; uint64_t w2r_init:6; uint64_t w2w_init:6; uint64_t reserved_24_63:40; #endif } s; struct cvmx_lmcx_slot_ctl0_s cn61xx; struct cvmx_lmcx_slot_ctl0_s cn63xx; struct cvmx_lmcx_slot_ctl0_s cn63xxp1; struct cvmx_lmcx_slot_ctl0_s cn66xx; struct cvmx_lmcx_slot_ctl0_s cn68xx; struct cvmx_lmcx_slot_ctl0_s cn68xxp1; struct cvmx_lmcx_slot_ctl0_s cnf71xx; }; union cvmx_lmcx_slot_ctl1 { uint64_t u64; struct cvmx_lmcx_slot_ctl1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_24_63:40; uint64_t w2w_xrank_init:6; uint64_t w2r_xrank_init:6; uint64_t r2w_xrank_init:6; uint64_t r2r_xrank_init:6; #else uint64_t r2r_xrank_init:6; uint64_t r2w_xrank_init:6; uint64_t w2r_xrank_init:6; uint64_t w2w_xrank_init:6; uint64_t reserved_24_63:40; #endif } s; struct cvmx_lmcx_slot_ctl1_s cn61xx; struct cvmx_lmcx_slot_ctl1_s cn63xx; struct cvmx_lmcx_slot_ctl1_s cn63xxp1; struct cvmx_lmcx_slot_ctl1_s cn66xx; struct cvmx_lmcx_slot_ctl1_s cn68xx; struct cvmx_lmcx_slot_ctl1_s cn68xxp1; struct cvmx_lmcx_slot_ctl1_s cnf71xx; }; union cvmx_lmcx_slot_ctl2 { uint64_t u64; struct cvmx_lmcx_slot_ctl2_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_24_63:40; uint64_t w2w_xdimm_init:6; uint64_t w2r_xdimm_init:6; uint64_t r2w_xdimm_init:6; uint64_t r2r_xdimm_init:6; #else uint64_t r2r_xdimm_init:6; uint64_t r2w_xdimm_init:6; uint64_t w2r_xdimm_init:6; uint64_t w2w_xdimm_init:6; uint64_t reserved_24_63:40; #endif } s; struct cvmx_lmcx_slot_ctl2_s cn61xx; struct cvmx_lmcx_slot_ctl2_s cn63xx; struct cvmx_lmcx_slot_ctl2_s cn63xxp1; struct cvmx_lmcx_slot_ctl2_s cn66xx; struct cvmx_lmcx_slot_ctl2_s cn68xx; struct cvmx_lmcx_slot_ctl2_s cn68xxp1; struct cvmx_lmcx_slot_ctl2_s cnf71xx; }; union cvmx_lmcx_timing_params0 { uint64_t u64; struct cvmx_lmcx_timing_params0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_47_63:17; uint64_t trp_ext:1; uint64_t tcksre:4; uint64_t trp:4; uint64_t tzqinit:4; uint64_t tdllk:4; uint64_t tmod:4; uint64_t tmrd:4; uint64_t txpr:4; uint64_t tcke:4; uint64_t tzqcs:4; uint64_t tckeon:10; #else uint64_t tckeon:10; uint64_t tzqcs:4; uint64_t tcke:4; uint64_t txpr:4; uint64_t tmrd:4; uint64_t tmod:4; uint64_t tdllk:4; uint64_t tzqinit:4; uint64_t trp:4; uint64_t tcksre:4; uint64_t trp_ext:1; uint64_t reserved_47_63:17; #endif } s; struct cvmx_lmcx_timing_params0_cn61xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_47_63:17; uint64_t trp_ext:1; uint64_t tcksre:4; uint64_t trp:4; uint64_t tzqinit:4; uint64_t tdllk:4; uint64_t tmod:4; uint64_t tmrd:4; uint64_t txpr:4; uint64_t tcke:4; uint64_t tzqcs:4; uint64_t reserved_0_9:10; #else uint64_t reserved_0_9:10; uint64_t tzqcs:4; uint64_t tcke:4; uint64_t txpr:4; uint64_t tmrd:4; uint64_t tmod:4; uint64_t tdllk:4; uint64_t tzqinit:4; uint64_t trp:4; uint64_t tcksre:4; uint64_t trp_ext:1; uint64_t reserved_47_63:17; #endif } cn61xx; struct cvmx_lmcx_timing_params0_cn61xx cn63xx; struct cvmx_lmcx_timing_params0_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_46_63:18; uint64_t tcksre:4; uint64_t trp:4; uint64_t tzqinit:4; uint64_t tdllk:4; uint64_t tmod:4; uint64_t tmrd:4; uint64_t txpr:4; uint64_t tcke:4; uint64_t tzqcs:4; uint64_t tckeon:10; #else uint64_t tckeon:10; uint64_t tzqcs:4; uint64_t tcke:4; uint64_t txpr:4; uint64_t tmrd:4; uint64_t tmod:4; uint64_t tdllk:4; uint64_t tzqinit:4; uint64_t trp:4; uint64_t tcksre:4; uint64_t reserved_46_63:18; #endif } cn63xxp1; struct cvmx_lmcx_timing_params0_cn61xx cn66xx; struct cvmx_lmcx_timing_params0_cn61xx cn68xx; struct cvmx_lmcx_timing_params0_cn61xx cn68xxp1; struct cvmx_lmcx_timing_params0_cn61xx cnf71xx; }; union cvmx_lmcx_timing_params1 { uint64_t u64; struct cvmx_lmcx_timing_params1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_47_63:17; uint64_t tras_ext:1; uint64_t txpdll:5; uint64_t tfaw:5; uint64_t twldqsen:4; uint64_t twlmrd:4; uint64_t txp:3; uint64_t trrd:3; uint64_t trfc:5; uint64_t twtr:4; uint64_t trcd:4; uint64_t tras:5; uint64_t tmprr:4; #else uint64_t tmprr:4; uint64_t tras:5; uint64_t trcd:4; uint64_t twtr:4; uint64_t trfc:5; uint64_t trrd:3; uint64_t txp:3; uint64_t twlmrd:4; uint64_t twldqsen:4; uint64_t tfaw:5; uint64_t txpdll:5; uint64_t tras_ext:1; uint64_t reserved_47_63:17; #endif } s; struct cvmx_lmcx_timing_params1_s cn61xx; struct cvmx_lmcx_timing_params1_s cn63xx; struct cvmx_lmcx_timing_params1_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_46_63:18; uint64_t txpdll:5; uint64_t tfaw:5; uint64_t twldqsen:4; uint64_t twlmrd:4; uint64_t txp:3; uint64_t trrd:3; uint64_t trfc:5; uint64_t twtr:4; uint64_t trcd:4; uint64_t tras:5; uint64_t tmprr:4; #else uint64_t tmprr:4; uint64_t tras:5; uint64_t trcd:4; uint64_t twtr:4; uint64_t trfc:5; uint64_t trrd:3; uint64_t txp:3; uint64_t twlmrd:4; uint64_t twldqsen:4; uint64_t tfaw:5; uint64_t txpdll:5; uint64_t reserved_46_63:18; #endif } cn63xxp1; struct cvmx_lmcx_timing_params1_s cn66xx; struct cvmx_lmcx_timing_params1_s cn68xx; struct cvmx_lmcx_timing_params1_s cn68xxp1; struct cvmx_lmcx_timing_params1_s cnf71xx; }; union cvmx_lmcx_tro_ctl { uint64_t u64; struct cvmx_lmcx_tro_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_33_63:31; uint64_t rclk_cnt:32; uint64_t treset:1; #else uint64_t treset:1; uint64_t rclk_cnt:32; uint64_t reserved_33_63:31; #endif } s; struct cvmx_lmcx_tro_ctl_s cn61xx; struct cvmx_lmcx_tro_ctl_s cn63xx; struct cvmx_lmcx_tro_ctl_s cn63xxp1; struct cvmx_lmcx_tro_ctl_s cn66xx; struct cvmx_lmcx_tro_ctl_s cn68xx; struct cvmx_lmcx_tro_ctl_s cn68xxp1; struct cvmx_lmcx_tro_ctl_s cnf71xx; }; union cvmx_lmcx_tro_stat { uint64_t u64; struct cvmx_lmcx_tro_stat_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t ring_cnt:32; #else uint64_t ring_cnt:32; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_tro_stat_s cn61xx; struct cvmx_lmcx_tro_stat_s cn63xx; struct cvmx_lmcx_tro_stat_s cn63xxp1; struct cvmx_lmcx_tro_stat_s cn66xx; struct cvmx_lmcx_tro_stat_s cn68xx; struct cvmx_lmcx_tro_stat_s cn68xxp1; struct cvmx_lmcx_tro_stat_s cnf71xx; }; union cvmx_lmcx_wlevel_ctl { uint64_t u64; struct cvmx_lmcx_wlevel_ctl_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_22_63:42; uint64_t rtt_nom:3; uint64_t bitmask:8; uint64_t or_dis:1; uint64_t sset:1; uint64_t lanemask:9; #else uint64_t lanemask:9; uint64_t sset:1; uint64_t or_dis:1; uint64_t bitmask:8; uint64_t rtt_nom:3; uint64_t reserved_22_63:42; #endif } s; struct cvmx_lmcx_wlevel_ctl_s cn61xx; struct cvmx_lmcx_wlevel_ctl_s cn63xx; struct cvmx_lmcx_wlevel_ctl_cn63xxp1 { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_10_63:54; uint64_t sset:1; uint64_t lanemask:9; #else uint64_t lanemask:9; uint64_t sset:1; uint64_t reserved_10_63:54; #endif } cn63xxp1; struct cvmx_lmcx_wlevel_ctl_s cn66xx; struct cvmx_lmcx_wlevel_ctl_s cn68xx; struct cvmx_lmcx_wlevel_ctl_s cn68xxp1; struct cvmx_lmcx_wlevel_ctl_s cnf71xx; }; union cvmx_lmcx_wlevel_dbg { uint64_t u64; struct cvmx_lmcx_wlevel_dbg_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_12_63:52; uint64_t bitmask:8; uint64_t byte:4; #else uint64_t byte:4; uint64_t bitmask:8; uint64_t reserved_12_63:52; #endif } s; struct cvmx_lmcx_wlevel_dbg_s cn61xx; struct cvmx_lmcx_wlevel_dbg_s cn63xx; struct cvmx_lmcx_wlevel_dbg_s cn63xxp1; struct cvmx_lmcx_wlevel_dbg_s cn66xx; struct cvmx_lmcx_wlevel_dbg_s cn68xx; struct cvmx_lmcx_wlevel_dbg_s cn68xxp1; struct cvmx_lmcx_wlevel_dbg_s cnf71xx; }; union cvmx_lmcx_wlevel_rankx { uint64_t u64; struct cvmx_lmcx_wlevel_rankx_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_47_63:17; uint64_t status:2; uint64_t byte8:5; uint64_t byte7:5; uint64_t byte6:5; uint64_t byte5:5; uint64_t byte4:5; uint64_t byte3:5; uint64_t byte2:5; uint64_t byte1:5; uint64_t byte0:5; #else uint64_t byte0:5; uint64_t byte1:5; uint64_t byte2:5; uint64_t byte3:5; uint64_t byte4:5; uint64_t byte5:5; uint64_t byte6:5; uint64_t byte7:5; uint64_t byte8:5; uint64_t status:2; uint64_t reserved_47_63:17; #endif } s; struct cvmx_lmcx_wlevel_rankx_s cn61xx; struct cvmx_lmcx_wlevel_rankx_s cn63xx; struct cvmx_lmcx_wlevel_rankx_s cn63xxp1; struct cvmx_lmcx_wlevel_rankx_s cn66xx; struct cvmx_lmcx_wlevel_rankx_s cn68xx; struct cvmx_lmcx_wlevel_rankx_s cn68xxp1; struct cvmx_lmcx_wlevel_rankx_s cnf71xx; }; union cvmx_lmcx_wodt_ctl0 { uint64_t u64; struct cvmx_lmcx_wodt_ctl0_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_0_63:64; #else uint64_t reserved_0_63:64; #endif } s; struct cvmx_lmcx_wodt_ctl0_cn30xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t wodt_d1_r1:8; uint64_t wodt_d1_r0:8; uint64_t wodt_d0_r1:8; uint64_t wodt_d0_r0:8; #else uint64_t wodt_d0_r0:8; uint64_t wodt_d0_r1:8; uint64_t wodt_d1_r0:8; uint64_t wodt_d1_r1:8; uint64_t reserved_32_63:32; #endif } cn30xx; struct cvmx_lmcx_wodt_ctl0_cn30xx cn31xx; struct cvmx_lmcx_wodt_ctl0_cn38xx { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t wodt_hi3:4; uint64_t wodt_hi2:4; uint64_t wodt_hi1:4; uint64_t wodt_hi0:4; uint64_t wodt_lo3:4; uint64_t wodt_lo2:4; uint64_t wodt_lo1:4; uint64_t wodt_lo0:4; #else uint64_t wodt_lo0:4; uint64_t wodt_lo1:4; uint64_t wodt_lo2:4; uint64_t wodt_lo3:4; uint64_t wodt_hi0:4; uint64_t wodt_hi1:4; uint64_t wodt_hi2:4; uint64_t wodt_hi3:4; uint64_t reserved_32_63:32; #endif } cn38xx; struct cvmx_lmcx_wodt_ctl0_cn38xx cn38xxp2; struct cvmx_lmcx_wodt_ctl0_cn38xx cn50xx; struct cvmx_lmcx_wodt_ctl0_cn30xx cn52xx; struct cvmx_lmcx_wodt_ctl0_cn30xx cn52xxp1; struct cvmx_lmcx_wodt_ctl0_cn30xx cn56xx; struct cvmx_lmcx_wodt_ctl0_cn30xx cn56xxp1; struct cvmx_lmcx_wodt_ctl0_cn38xx cn58xx; struct cvmx_lmcx_wodt_ctl0_cn38xx cn58xxp1; }; union cvmx_lmcx_wodt_ctl1 { uint64_t u64; struct cvmx_lmcx_wodt_ctl1_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t reserved_32_63:32; uint64_t wodt_d3_r1:8; uint64_t wodt_d3_r0:8; uint64_t wodt_d2_r1:8; uint64_t wodt_d2_r0:8; #else uint64_t wodt_d2_r0:8; uint64_t wodt_d2_r1:8; uint64_t wodt_d3_r0:8; uint64_t wodt_d3_r1:8; uint64_t reserved_32_63:32; #endif } s; struct cvmx_lmcx_wodt_ctl1_s cn30xx; struct cvmx_lmcx_wodt_ctl1_s cn31xx; struct cvmx_lmcx_wodt_ctl1_s cn52xx; struct cvmx_lmcx_wodt_ctl1_s cn52xxp1; struct cvmx_lmcx_wodt_ctl1_s cn56xx; struct cvmx_lmcx_wodt_ctl1_s cn56xxp1; }; union cvmx_lmcx_wodt_mask { uint64_t u64; struct cvmx_lmcx_wodt_mask_s { #ifdef __BIG_ENDIAN_BITFIELD uint64_t wodt_d3_r1:8; uint64_t wodt_d3_r0:8; uint64_t wodt_d2_r1:8; uint64_t wodt_d2_r0:8; uint64_t wodt_d1_r1:8; uint64_t wodt_d1_r0:8; uint64_t wodt_d0_r1:8; uint64_t wodt_d0_r0:8; #else uint64_t wodt_d0_r0:8; uint64_t wodt_d0_r1:8; uint64_t wodt_d1_r0:8; uint64_t wodt_d1_r1:8; uint64_t wodt_d2_r0:8; uint64_t wodt_d2_r1:8; uint64_t wodt_d3_r0:8; uint64_t wodt_d3_r1:8; #endif } s; struct cvmx_lmcx_wodt_mask_s cn61xx; struct cvmx_lmcx_wodt_mask_s cn63xx; struct cvmx_lmcx_wodt_mask_s cn63xxp1; struct cvmx_lmcx_wodt_mask_s cn66xx; struct cvmx_lmcx_wodt_mask_s cn68xx; struct cvmx_lmcx_wodt_mask_s cn68xxp1; struct cvmx_lmcx_wodt_mask_s cnf71xx; }; #endif