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