0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #ifndef __CVMX_LMCX_DEFS_H__
0029 #define __CVMX_LMCX_DEFS_H__
0030
0031 #define CVMX_LMCX_BIST_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F0ull) + ((block_id) & 1) * 0x60000000ull)
0032 #define CVMX_LMCX_BIST_RESULT(block_id) (CVMX_ADD_IO_SEG(0x00011800880000F8ull) + ((block_id) & 1) * 0x60000000ull)
0033 #define CVMX_LMCX_CHAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000220ull) + ((block_id) & 3) * 0x1000000ull)
0034 #define CVMX_LMCX_CHAR_MASK0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000228ull) + ((block_id) & 3) * 0x1000000ull)
0035 #define CVMX_LMCX_CHAR_MASK1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000230ull) + ((block_id) & 3) * 0x1000000ull)
0036 #define CVMX_LMCX_CHAR_MASK2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000238ull) + ((block_id) & 3) * 0x1000000ull)
0037 #define CVMX_LMCX_CHAR_MASK3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000240ull) + ((block_id) & 3) * 0x1000000ull)
0038 #define CVMX_LMCX_CHAR_MASK4(block_id) (CVMX_ADD_IO_SEG(0x0001180088000318ull) + ((block_id) & 3) * 0x1000000ull)
0039 #define CVMX_LMCX_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000028ull) + ((block_id) & 1) * 0x60000000ull)
0040 #define CVMX_LMCX_COMP_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B8ull) + ((block_id) & 3) * 0x1000000ull)
0041 #define CVMX_LMCX_CONFIG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000188ull) + ((block_id) & 3) * 0x1000000ull)
0042 #define CVMX_LMCX_CONTROL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000190ull) + ((block_id) & 3) * 0x1000000ull)
0043 #define CVMX_LMCX_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000010ull) + ((block_id) & 1) * 0x60000000ull)
0044 #define CVMX_LMCX_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000090ull) + ((block_id) & 1) * 0x60000000ull)
0045 #define CVMX_LMCX_DCLK_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E0ull) + ((block_id) & 3) * 0x1000000ull)
0046 #define CVMX_LMCX_DCLK_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000070ull) + ((block_id) & 1) * 0x60000000ull)
0047 #define CVMX_LMCX_DCLK_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000068ull) + ((block_id) & 1) * 0x60000000ull)
0048 #define CVMX_LMCX_DCLK_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B8ull) + ((block_id) & 1) * 0x60000000ull)
0049 #define CVMX_LMCX_DDR2_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000018ull) + ((block_id) & 1) * 0x60000000ull)
0050 #define CVMX_LMCX_DDR_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000258ull) + ((block_id) & 3) * 0x1000000ull)
0051 #define CVMX_LMCX_DELAY_CFG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000088ull) + ((block_id) & 1) * 0x60000000ull)
0052 #define CVMX_LMCX_DIMMX_PARAMS(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000270ull) + (((offset) & 1) + ((block_id) & 3) * 0x200000ull) * 8)
0053 #define CVMX_LMCX_DIMM_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000310ull) + ((block_id) & 3) * 0x1000000ull)
0054 #define CVMX_LMCX_DLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000C0ull) + ((block_id) & 1) * 0x60000000ull)
0055 #define CVMX_LMCX_DLL_CTL2(block_id) (CVMX_ADD_IO_SEG(0x00011800880001C8ull) + ((block_id) & 3) * 0x1000000ull)
0056 #define CVMX_LMCX_DLL_CTL3(block_id) (CVMX_ADD_IO_SEG(0x0001180088000218ull) + ((block_id) & 3) * 0x1000000ull)
0057 static inline uint64_t CVMX_LMCX_DUAL_MEMCFG(unsigned long block_id)
0058 {
0059 switch (cvmx_get_octeon_family()) {
0060 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
0061 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
0062 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
0063 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
0064 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
0065 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
0066 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
0067 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
0068 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
0069 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
0070 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
0071 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x1000000ull;
0072 }
0073 return CVMX_ADD_IO_SEG(0x0001180088000098ull) + (block_id) * 0x60000000ull;
0074 }
0075
0076 static inline uint64_t CVMX_LMCX_ECC_SYND(unsigned long block_id)
0077 {
0078 switch (cvmx_get_octeon_family()) {
0079 case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
0080 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
0081 case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
0082 case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
0083 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
0084 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
0085 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
0086 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
0087 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
0088 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
0089 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
0090 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
0091 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
0092 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
0093 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x1000000ull;
0094 }
0095 return CVMX_ADD_IO_SEG(0x0001180088000038ull) + (block_id) * 0x60000000ull;
0096 }
0097
0098 static inline uint64_t CVMX_LMCX_FADR(unsigned long block_id)
0099 {
0100 switch (cvmx_get_octeon_family()) {
0101 case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
0102 case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
0103 case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
0104 case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
0105 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
0106 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
0107 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
0108 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
0109 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
0110 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
0111 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
0112 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
0113 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
0114 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
0115 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x1000000ull;
0116 }
0117 return CVMX_ADD_IO_SEG(0x0001180088000020ull) + (block_id) * 0x60000000ull;
0118 }
0119
0120 #define CVMX_LMCX_IFB_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D0ull) + ((block_id) & 3) * 0x1000000ull)
0121 #define CVMX_LMCX_IFB_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000050ull) + ((block_id) & 1) * 0x60000000ull)
0122 #define CVMX_LMCX_IFB_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000048ull) + ((block_id) & 1) * 0x60000000ull)
0123 #define CVMX_LMCX_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F0ull) + ((block_id) & 3) * 0x1000000ull)
0124 #define CVMX_LMCX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800880001E8ull) + ((block_id) & 3) * 0x1000000ull)
0125 #define CVMX_LMCX_MEM_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000000ull) + ((block_id) & 1) * 0x60000000ull)
0126 #define CVMX_LMCX_MEM_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000008ull) + ((block_id) & 1) * 0x60000000ull)
0127 #define CVMX_LMCX_MODEREG_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A8ull) + ((block_id) & 3) * 0x1000000ull)
0128 #define CVMX_LMCX_MODEREG_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000260ull) + ((block_id) & 3) * 0x1000000ull)
0129 static inline uint64_t CVMX_LMCX_NXM(unsigned long block_id)
0130 {
0131 switch (cvmx_get_octeon_family()) {
0132 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
0133 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
0134 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
0135 case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
0136 case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
0137 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
0138 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
0139 case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
0140 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
0141 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
0142 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x1000000ull;
0143 }
0144 return CVMX_ADD_IO_SEG(0x00011800880000C8ull) + (block_id) * 0x60000000ull;
0145 }
0146
0147 #define CVMX_LMCX_OPS_CNT(block_id) (CVMX_ADD_IO_SEG(0x00011800880001D8ull) + ((block_id) & 3) * 0x1000000ull)
0148 #define CVMX_LMCX_OPS_CNT_HI(block_id) (CVMX_ADD_IO_SEG(0x0001180088000060ull) + ((block_id) & 1) * 0x60000000ull)
0149 #define CVMX_LMCX_OPS_CNT_LO(block_id) (CVMX_ADD_IO_SEG(0x0001180088000058ull) + ((block_id) & 1) * 0x60000000ull)
0150 #define CVMX_LMCX_PHY_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000210ull) + ((block_id) & 3) * 0x1000000ull)
0151 #define CVMX_LMCX_PLL_BWCTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000040ull))
0152 #define CVMX_LMCX_PLL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A8ull) + ((block_id) & 1) * 0x60000000ull)
0153 #define CVMX_LMCX_PLL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800880000B0ull) + ((block_id) & 1) * 0x60000000ull)
0154 #define CVMX_LMCX_READ_LEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000140ull) + ((block_id) & 1) * 0x60000000ull)
0155 #define CVMX_LMCX_READ_LEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000148ull) + ((block_id) & 1) * 0x60000000ull)
0156 #define CVMX_LMCX_READ_LEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000100ull) + (((offset) & 3) + ((block_id) & 1) * 0xC000000ull) * 8)
0157 #define CVMX_LMCX_RESET_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000180ull) + ((block_id) & 3) * 0x1000000ull)
0158 #define CVMX_LMCX_RLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A0ull) + ((block_id) & 3) * 0x1000000ull)
0159 #define CVMX_LMCX_RLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x00011800880002A8ull) + ((block_id) & 3) * 0x1000000ull)
0160 #define CVMX_LMCX_RLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180088000280ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8)
0161 #define CVMX_LMCX_RODT_COMP_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800880000A0ull) + ((block_id) & 1) * 0x60000000ull)
0162 #define CVMX_LMCX_RODT_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000078ull) + ((block_id) & 1) * 0x60000000ull)
0163 #define CVMX_LMCX_RODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x0001180088000268ull) + ((block_id) & 3) * 0x1000000ull)
0164 #define CVMX_LMCX_SCRAMBLED_FADR(block_id) (CVMX_ADD_IO_SEG(0x0001180088000330ull))
0165 #define CVMX_LMCX_SCRAMBLE_CFG0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000320ull))
0166 #define CVMX_LMCX_SCRAMBLE_CFG1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000328ull))
0167 #define CVMX_LMCX_SLOT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x00011800880001F8ull) + ((block_id) & 3) * 0x1000000ull)
0168 #define CVMX_LMCX_SLOT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000200ull) + ((block_id) & 3) * 0x1000000ull)
0169 #define CVMX_LMCX_SLOT_CTL2(block_id) (CVMX_ADD_IO_SEG(0x0001180088000208ull) + ((block_id) & 3) * 0x1000000ull)
0170 #define CVMX_LMCX_TIMING_PARAMS0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000198ull) + ((block_id) & 3) * 0x1000000ull)
0171 #define CVMX_LMCX_TIMING_PARAMS1(block_id) (CVMX_ADD_IO_SEG(0x00011800880001A0ull) + ((block_id) & 3) * 0x1000000ull)
0172 #define CVMX_LMCX_TRO_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000248ull) + ((block_id) & 3) * 0x1000000ull)
0173 #define CVMX_LMCX_TRO_STAT(block_id) (CVMX_ADD_IO_SEG(0x0001180088000250ull) + ((block_id) & 3) * 0x1000000ull)
0174 #define CVMX_LMCX_WLEVEL_CTL(block_id) (CVMX_ADD_IO_SEG(0x0001180088000300ull) + ((block_id) & 3) * 0x1000000ull)
0175 #define CVMX_LMCX_WLEVEL_DBG(block_id) (CVMX_ADD_IO_SEG(0x0001180088000308ull) + ((block_id) & 3) * 0x1000000ull)
0176 #define CVMX_LMCX_WLEVEL_RANKX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800880002B0ull) + (((offset) & 3) + ((block_id) & 3) * 0x200000ull) * 8)
0177 #define CVMX_LMCX_WODT_CTL0(block_id) (CVMX_ADD_IO_SEG(0x0001180088000030ull) + ((block_id) & 1) * 0x60000000ull)
0178 #define CVMX_LMCX_WODT_CTL1(block_id) (CVMX_ADD_IO_SEG(0x0001180088000080ull) + ((block_id) & 1) * 0x60000000ull)
0179 #define CVMX_LMCX_WODT_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800880001B0ull) + ((block_id) & 3) * 0x1000000ull)
0180
0181 union cvmx_lmcx_bist_ctl {
0182 uint64_t u64;
0183 struct cvmx_lmcx_bist_ctl_s {
0184 #ifdef __BIG_ENDIAN_BITFIELD
0185 uint64_t reserved_1_63:63;
0186 uint64_t start:1;
0187 #else
0188 uint64_t start:1;
0189 uint64_t reserved_1_63:63;
0190 #endif
0191 } s;
0192 };
0193
0194 union cvmx_lmcx_bist_result {
0195 uint64_t u64;
0196 struct cvmx_lmcx_bist_result_s {
0197 #ifdef __BIG_ENDIAN_BITFIELD
0198 uint64_t reserved_11_63:53;
0199 uint64_t csrd2e:1;
0200 uint64_t csre2d:1;
0201 uint64_t mwf:1;
0202 uint64_t mwd:3;
0203 uint64_t mwc:1;
0204 uint64_t mrf:1;
0205 uint64_t mrd:3;
0206 #else
0207 uint64_t mrd:3;
0208 uint64_t mrf:1;
0209 uint64_t mwc:1;
0210 uint64_t mwd:3;
0211 uint64_t mwf:1;
0212 uint64_t csre2d:1;
0213 uint64_t csrd2e:1;
0214 uint64_t reserved_11_63:53;
0215 #endif
0216 } s;
0217 struct cvmx_lmcx_bist_result_cn50xx {
0218 #ifdef __BIG_ENDIAN_BITFIELD
0219 uint64_t reserved_9_63:55;
0220 uint64_t mwf:1;
0221 uint64_t mwd:3;
0222 uint64_t mwc:1;
0223 uint64_t mrf:1;
0224 uint64_t mrd:3;
0225 #else
0226 uint64_t mrd:3;
0227 uint64_t mrf:1;
0228 uint64_t mwc:1;
0229 uint64_t mwd:3;
0230 uint64_t mwf:1;
0231 uint64_t reserved_9_63:55;
0232 #endif
0233 } cn50xx;
0234 };
0235
0236 union cvmx_lmcx_char_ctl {
0237 uint64_t u64;
0238 struct cvmx_lmcx_char_ctl_s {
0239 #ifdef __BIG_ENDIAN_BITFIELD
0240 uint64_t reserved_44_63:20;
0241 uint64_t dr:1;
0242 uint64_t skew_on:1;
0243 uint64_t en:1;
0244 uint64_t sel:1;
0245 uint64_t prog:8;
0246 uint64_t prbs:32;
0247 #else
0248 uint64_t prbs:32;
0249 uint64_t prog:8;
0250 uint64_t sel:1;
0251 uint64_t en:1;
0252 uint64_t skew_on:1;
0253 uint64_t dr:1;
0254 uint64_t reserved_44_63:20;
0255 #endif
0256 } s;
0257 struct cvmx_lmcx_char_ctl_cn63xx {
0258 #ifdef __BIG_ENDIAN_BITFIELD
0259 uint64_t reserved_42_63:22;
0260 uint64_t en:1;
0261 uint64_t sel:1;
0262 uint64_t prog:8;
0263 uint64_t prbs:32;
0264 #else
0265 uint64_t prbs:32;
0266 uint64_t prog:8;
0267 uint64_t sel:1;
0268 uint64_t en:1;
0269 uint64_t reserved_42_63:22;
0270 #endif
0271 } cn63xx;
0272 };
0273
0274 union cvmx_lmcx_char_mask0 {
0275 uint64_t u64;
0276 struct cvmx_lmcx_char_mask0_s {
0277 #ifdef __BIG_ENDIAN_BITFIELD
0278 uint64_t mask:64;
0279 #else
0280 uint64_t mask:64;
0281 #endif
0282 } s;
0283 };
0284
0285 union cvmx_lmcx_char_mask1 {
0286 uint64_t u64;
0287 struct cvmx_lmcx_char_mask1_s {
0288 #ifdef __BIG_ENDIAN_BITFIELD
0289 uint64_t reserved_8_63:56;
0290 uint64_t mask:8;
0291 #else
0292 uint64_t mask:8;
0293 uint64_t reserved_8_63:56;
0294 #endif
0295 } s;
0296 };
0297
0298 union cvmx_lmcx_char_mask2 {
0299 uint64_t u64;
0300 struct cvmx_lmcx_char_mask2_s {
0301 #ifdef __BIG_ENDIAN_BITFIELD
0302 uint64_t mask:64;
0303 #else
0304 uint64_t mask:64;
0305 #endif
0306 } s;
0307 };
0308
0309 union cvmx_lmcx_char_mask3 {
0310 uint64_t u64;
0311 struct cvmx_lmcx_char_mask3_s {
0312 #ifdef __BIG_ENDIAN_BITFIELD
0313 uint64_t reserved_8_63:56;
0314 uint64_t mask:8;
0315 #else
0316 uint64_t mask:8;
0317 uint64_t reserved_8_63:56;
0318 #endif
0319 } s;
0320 };
0321
0322 union cvmx_lmcx_char_mask4 {
0323 uint64_t u64;
0324 struct cvmx_lmcx_char_mask4_s {
0325 #ifdef __BIG_ENDIAN_BITFIELD
0326 uint64_t reserved_33_63:31;
0327 uint64_t reset_n_mask:1;
0328 uint64_t a_mask:16;
0329 uint64_t ba_mask:3;
0330 uint64_t we_n_mask:1;
0331 uint64_t cas_n_mask:1;
0332 uint64_t ras_n_mask:1;
0333 uint64_t odt1_mask:2;
0334 uint64_t odt0_mask:2;
0335 uint64_t cs1_n_mask:2;
0336 uint64_t cs0_n_mask:2;
0337 uint64_t cke_mask:2;
0338 #else
0339 uint64_t cke_mask:2;
0340 uint64_t cs0_n_mask:2;
0341 uint64_t cs1_n_mask:2;
0342 uint64_t odt0_mask:2;
0343 uint64_t odt1_mask:2;
0344 uint64_t ras_n_mask:1;
0345 uint64_t cas_n_mask:1;
0346 uint64_t we_n_mask:1;
0347 uint64_t ba_mask:3;
0348 uint64_t a_mask:16;
0349 uint64_t reset_n_mask:1;
0350 uint64_t reserved_33_63:31;
0351 #endif
0352 } s;
0353 };
0354
0355 union cvmx_lmcx_comp_ctl {
0356 uint64_t u64;
0357 struct cvmx_lmcx_comp_ctl_s {
0358 #ifdef __BIG_ENDIAN_BITFIELD
0359 uint64_t reserved_32_63:32;
0360 uint64_t nctl_csr:4;
0361 uint64_t nctl_clk:4;
0362 uint64_t nctl_cmd:4;
0363 uint64_t nctl_dat:4;
0364 uint64_t pctl_csr:4;
0365 uint64_t pctl_clk:4;
0366 uint64_t reserved_0_7:8;
0367 #else
0368 uint64_t reserved_0_7:8;
0369 uint64_t pctl_clk:4;
0370 uint64_t pctl_csr:4;
0371 uint64_t nctl_dat:4;
0372 uint64_t nctl_cmd:4;
0373 uint64_t nctl_clk:4;
0374 uint64_t nctl_csr:4;
0375 uint64_t reserved_32_63:32;
0376 #endif
0377 } s;
0378 struct cvmx_lmcx_comp_ctl_cn30xx {
0379 #ifdef __BIG_ENDIAN_BITFIELD
0380 uint64_t reserved_32_63:32;
0381 uint64_t nctl_csr:4;
0382 uint64_t nctl_clk:4;
0383 uint64_t nctl_cmd:4;
0384 uint64_t nctl_dat:4;
0385 uint64_t pctl_csr:4;
0386 uint64_t pctl_clk:4;
0387 uint64_t pctl_cmd:4;
0388 uint64_t pctl_dat:4;
0389 #else
0390 uint64_t pctl_dat:4;
0391 uint64_t pctl_cmd:4;
0392 uint64_t pctl_clk:4;
0393 uint64_t pctl_csr:4;
0394 uint64_t nctl_dat:4;
0395 uint64_t nctl_cmd:4;
0396 uint64_t nctl_clk:4;
0397 uint64_t nctl_csr:4;
0398 uint64_t reserved_32_63:32;
0399 #endif
0400 } cn30xx;
0401 struct cvmx_lmcx_comp_ctl_cn50xx {
0402 #ifdef __BIG_ENDIAN_BITFIELD
0403 uint64_t reserved_32_63:32;
0404 uint64_t nctl_csr:4;
0405 uint64_t reserved_20_27:8;
0406 uint64_t nctl_dat:4;
0407 uint64_t pctl_csr:4;
0408 uint64_t reserved_5_11:7;
0409 uint64_t pctl_dat:5;
0410 #else
0411 uint64_t pctl_dat:5;
0412 uint64_t reserved_5_11:7;
0413 uint64_t pctl_csr:4;
0414 uint64_t nctl_dat:4;
0415 uint64_t reserved_20_27:8;
0416 uint64_t nctl_csr:4;
0417 uint64_t reserved_32_63:32;
0418 #endif
0419 } cn50xx;
0420 struct cvmx_lmcx_comp_ctl_cn58xxp1 {
0421 #ifdef __BIG_ENDIAN_BITFIELD
0422 uint64_t reserved_32_63:32;
0423 uint64_t nctl_csr:4;
0424 uint64_t reserved_20_27:8;
0425 uint64_t nctl_dat:4;
0426 uint64_t pctl_csr:4;
0427 uint64_t reserved_4_11:8;
0428 uint64_t pctl_dat:4;
0429 #else
0430 uint64_t pctl_dat:4;
0431 uint64_t reserved_4_11:8;
0432 uint64_t pctl_csr:4;
0433 uint64_t nctl_dat:4;
0434 uint64_t reserved_20_27:8;
0435 uint64_t nctl_csr:4;
0436 uint64_t reserved_32_63:32;
0437 #endif
0438 } cn58xxp1;
0439 };
0440
0441 union cvmx_lmcx_comp_ctl2 {
0442 uint64_t u64;
0443 struct cvmx_lmcx_comp_ctl2_s {
0444 #ifdef __BIG_ENDIAN_BITFIELD
0445 uint64_t reserved_34_63:30;
0446 uint64_t ddr__ptune:4;
0447 uint64_t ddr__ntune:4;
0448 uint64_t m180:1;
0449 uint64_t byp:1;
0450 uint64_t ptune:4;
0451 uint64_t ntune:4;
0452 uint64_t rodt_ctl:4;
0453 uint64_t cmd_ctl:4;
0454 uint64_t ck_ctl:4;
0455 uint64_t dqx_ctl:4;
0456 #else
0457 uint64_t dqx_ctl:4;
0458 uint64_t ck_ctl:4;
0459 uint64_t cmd_ctl:4;
0460 uint64_t rodt_ctl:4;
0461 uint64_t ntune:4;
0462 uint64_t ptune:4;
0463 uint64_t byp:1;
0464 uint64_t m180:1;
0465 uint64_t ddr__ntune:4;
0466 uint64_t ddr__ptune:4;
0467 uint64_t reserved_34_63:30;
0468 #endif
0469 } s;
0470 };
0471
0472 union cvmx_lmcx_config {
0473 uint64_t u64;
0474 struct cvmx_lmcx_config_s {
0475 #ifdef __BIG_ENDIAN_BITFIELD
0476 uint64_t reserved_61_63:3;
0477 uint64_t mode32b:1;
0478 uint64_t scrz:1;
0479 uint64_t early_unload_d1_r1:1;
0480 uint64_t early_unload_d1_r0:1;
0481 uint64_t early_unload_d0_r1:1;
0482 uint64_t early_unload_d0_r0:1;
0483 uint64_t init_status:4;
0484 uint64_t mirrmask:4;
0485 uint64_t rankmask:4;
0486 uint64_t rank_ena:1;
0487 uint64_t sref_with_dll:1;
0488 uint64_t early_dqx:1;
0489 uint64_t sequence:3;
0490 uint64_t ref_zqcs_int:19;
0491 uint64_t reset:1;
0492 uint64_t ecc_adr:1;
0493 uint64_t forcewrite:4;
0494 uint64_t idlepower:3;
0495 uint64_t pbank_lsb:4;
0496 uint64_t row_lsb:3;
0497 uint64_t ecc_ena:1;
0498 uint64_t init_start:1;
0499 #else
0500 uint64_t init_start:1;
0501 uint64_t ecc_ena:1;
0502 uint64_t row_lsb:3;
0503 uint64_t pbank_lsb:4;
0504 uint64_t idlepower:3;
0505 uint64_t forcewrite:4;
0506 uint64_t ecc_adr:1;
0507 uint64_t reset:1;
0508 uint64_t ref_zqcs_int:19;
0509 uint64_t sequence:3;
0510 uint64_t early_dqx:1;
0511 uint64_t sref_with_dll:1;
0512 uint64_t rank_ena:1;
0513 uint64_t rankmask:4;
0514 uint64_t mirrmask:4;
0515 uint64_t init_status:4;
0516 uint64_t early_unload_d0_r0:1;
0517 uint64_t early_unload_d0_r1:1;
0518 uint64_t early_unload_d1_r0:1;
0519 uint64_t early_unload_d1_r1:1;
0520 uint64_t scrz:1;
0521 uint64_t mode32b:1;
0522 uint64_t reserved_61_63:3;
0523 #endif
0524 } s;
0525 struct cvmx_lmcx_config_cn63xx {
0526 #ifdef __BIG_ENDIAN_BITFIELD
0527 uint64_t reserved_59_63:5;
0528 uint64_t early_unload_d1_r1:1;
0529 uint64_t early_unload_d1_r0:1;
0530 uint64_t early_unload_d0_r1:1;
0531 uint64_t early_unload_d0_r0:1;
0532 uint64_t init_status:4;
0533 uint64_t mirrmask:4;
0534 uint64_t rankmask:4;
0535 uint64_t rank_ena:1;
0536 uint64_t sref_with_dll:1;
0537 uint64_t early_dqx:1;
0538 uint64_t sequence:3;
0539 uint64_t ref_zqcs_int:19;
0540 uint64_t reset:1;
0541 uint64_t ecc_adr:1;
0542 uint64_t forcewrite:4;
0543 uint64_t idlepower:3;
0544 uint64_t pbank_lsb:4;
0545 uint64_t row_lsb:3;
0546 uint64_t ecc_ena:1;
0547 uint64_t init_start:1;
0548 #else
0549 uint64_t init_start:1;
0550 uint64_t ecc_ena:1;
0551 uint64_t row_lsb:3;
0552 uint64_t pbank_lsb:4;
0553 uint64_t idlepower:3;
0554 uint64_t forcewrite:4;
0555 uint64_t ecc_adr:1;
0556 uint64_t reset:1;
0557 uint64_t ref_zqcs_int:19;
0558 uint64_t sequence:3;
0559 uint64_t early_dqx:1;
0560 uint64_t sref_with_dll:1;
0561 uint64_t rank_ena:1;
0562 uint64_t rankmask:4;
0563 uint64_t mirrmask:4;
0564 uint64_t init_status:4;
0565 uint64_t early_unload_d0_r0:1;
0566 uint64_t early_unload_d0_r1:1;
0567 uint64_t early_unload_d1_r0:1;
0568 uint64_t early_unload_d1_r1:1;
0569 uint64_t reserved_59_63:5;
0570 #endif
0571 } cn63xx;
0572 struct cvmx_lmcx_config_cn63xxp1 {
0573 #ifdef __BIG_ENDIAN_BITFIELD
0574 uint64_t reserved_55_63:9;
0575 uint64_t init_status:4;
0576 uint64_t mirrmask:4;
0577 uint64_t rankmask:4;
0578 uint64_t rank_ena:1;
0579 uint64_t sref_with_dll:1;
0580 uint64_t early_dqx:1;
0581 uint64_t sequence:3;
0582 uint64_t ref_zqcs_int:19;
0583 uint64_t reset:1;
0584 uint64_t ecc_adr:1;
0585 uint64_t forcewrite:4;
0586 uint64_t idlepower:3;
0587 uint64_t pbank_lsb:4;
0588 uint64_t row_lsb:3;
0589 uint64_t ecc_ena:1;
0590 uint64_t init_start:1;
0591 #else
0592 uint64_t init_start:1;
0593 uint64_t ecc_ena:1;
0594 uint64_t row_lsb:3;
0595 uint64_t pbank_lsb:4;
0596 uint64_t idlepower:3;
0597 uint64_t forcewrite:4;
0598 uint64_t ecc_adr:1;
0599 uint64_t reset:1;
0600 uint64_t ref_zqcs_int:19;
0601 uint64_t sequence:3;
0602 uint64_t early_dqx:1;
0603 uint64_t sref_with_dll:1;
0604 uint64_t rank_ena:1;
0605 uint64_t rankmask:4;
0606 uint64_t mirrmask:4;
0607 uint64_t init_status:4;
0608 uint64_t reserved_55_63:9;
0609 #endif
0610 } cn63xxp1;
0611 struct cvmx_lmcx_config_cn66xx {
0612 #ifdef __BIG_ENDIAN_BITFIELD
0613 uint64_t reserved_60_63:4;
0614 uint64_t scrz:1;
0615 uint64_t early_unload_d1_r1:1;
0616 uint64_t early_unload_d1_r0:1;
0617 uint64_t early_unload_d0_r1:1;
0618 uint64_t early_unload_d0_r0:1;
0619 uint64_t init_status:4;
0620 uint64_t mirrmask:4;
0621 uint64_t rankmask:4;
0622 uint64_t rank_ena:1;
0623 uint64_t sref_with_dll:1;
0624 uint64_t early_dqx:1;
0625 uint64_t sequence:3;
0626 uint64_t ref_zqcs_int:19;
0627 uint64_t reset:1;
0628 uint64_t ecc_adr:1;
0629 uint64_t forcewrite:4;
0630 uint64_t idlepower:3;
0631 uint64_t pbank_lsb:4;
0632 uint64_t row_lsb:3;
0633 uint64_t ecc_ena:1;
0634 uint64_t init_start:1;
0635 #else
0636 uint64_t init_start:1;
0637 uint64_t ecc_ena:1;
0638 uint64_t row_lsb:3;
0639 uint64_t pbank_lsb:4;
0640 uint64_t idlepower:3;
0641 uint64_t forcewrite:4;
0642 uint64_t ecc_adr:1;
0643 uint64_t reset:1;
0644 uint64_t ref_zqcs_int:19;
0645 uint64_t sequence:3;
0646 uint64_t early_dqx:1;
0647 uint64_t sref_with_dll:1;
0648 uint64_t rank_ena:1;
0649 uint64_t rankmask:4;
0650 uint64_t mirrmask:4;
0651 uint64_t init_status:4;
0652 uint64_t early_unload_d0_r0:1;
0653 uint64_t early_unload_d0_r1:1;
0654 uint64_t early_unload_d1_r0:1;
0655 uint64_t early_unload_d1_r1:1;
0656 uint64_t scrz:1;
0657 uint64_t reserved_60_63:4;
0658 #endif
0659 } cn66xx;
0660 };
0661
0662 union cvmx_lmcx_control {
0663 uint64_t u64;
0664 struct cvmx_lmcx_control_s {
0665 #ifdef __BIG_ENDIAN_BITFIELD
0666 uint64_t scramble_ena:1;
0667 uint64_t thrcnt:12;
0668 uint64_t persub:8;
0669 uint64_t thrmax:4;
0670 uint64_t crm_cnt:5;
0671 uint64_t crm_thr:5;
0672 uint64_t crm_max:5;
0673 uint64_t rodt_bprch:1;
0674 uint64_t wodt_bprch:1;
0675 uint64_t bprch:2;
0676 uint64_t ext_zqcs_dis:1;
0677 uint64_t int_zqcs_dis:1;
0678 uint64_t auto_dclkdis:1;
0679 uint64_t xor_bank:1;
0680 uint64_t max_write_batch:4;
0681 uint64_t nxm_write_en:1;
0682 uint64_t elev_prio_dis:1;
0683 uint64_t inorder_wr:1;
0684 uint64_t inorder_rd:1;
0685 uint64_t throttle_wr:1;
0686 uint64_t throttle_rd:1;
0687 uint64_t fprch2:2;
0688 uint64_t pocas:1;
0689 uint64_t ddr2t:1;
0690 uint64_t bwcnt:1;
0691 uint64_t rdimm_ena:1;
0692 #else
0693 uint64_t rdimm_ena:1;
0694 uint64_t bwcnt:1;
0695 uint64_t ddr2t:1;
0696 uint64_t pocas:1;
0697 uint64_t fprch2:2;
0698 uint64_t throttle_rd:1;
0699 uint64_t throttle_wr:1;
0700 uint64_t inorder_rd:1;
0701 uint64_t inorder_wr:1;
0702 uint64_t elev_prio_dis:1;
0703 uint64_t nxm_write_en:1;
0704 uint64_t max_write_batch:4;
0705 uint64_t xor_bank:1;
0706 uint64_t auto_dclkdis:1;
0707 uint64_t int_zqcs_dis:1;
0708 uint64_t ext_zqcs_dis:1;
0709 uint64_t bprch:2;
0710 uint64_t wodt_bprch:1;
0711 uint64_t rodt_bprch:1;
0712 uint64_t crm_max:5;
0713 uint64_t crm_thr:5;
0714 uint64_t crm_cnt:5;
0715 uint64_t thrmax:4;
0716 uint64_t persub:8;
0717 uint64_t thrcnt:12;
0718 uint64_t scramble_ena:1;
0719 #endif
0720 } s;
0721 struct cvmx_lmcx_control_cn63xx {
0722 #ifdef __BIG_ENDIAN_BITFIELD
0723 uint64_t reserved_24_63:40;
0724 uint64_t rodt_bprch:1;
0725 uint64_t wodt_bprch:1;
0726 uint64_t bprch:2;
0727 uint64_t ext_zqcs_dis:1;
0728 uint64_t int_zqcs_dis:1;
0729 uint64_t auto_dclkdis:1;
0730 uint64_t xor_bank:1;
0731 uint64_t max_write_batch:4;
0732 uint64_t nxm_write_en:1;
0733 uint64_t elev_prio_dis:1;
0734 uint64_t inorder_wr:1;
0735 uint64_t inorder_rd:1;
0736 uint64_t throttle_wr:1;
0737 uint64_t throttle_rd:1;
0738 uint64_t fprch2:2;
0739 uint64_t pocas:1;
0740 uint64_t ddr2t:1;
0741 uint64_t bwcnt:1;
0742 uint64_t rdimm_ena:1;
0743 #else
0744 uint64_t rdimm_ena:1;
0745 uint64_t bwcnt:1;
0746 uint64_t ddr2t:1;
0747 uint64_t pocas:1;
0748 uint64_t fprch2:2;
0749 uint64_t throttle_rd:1;
0750 uint64_t throttle_wr:1;
0751 uint64_t inorder_rd:1;
0752 uint64_t inorder_wr:1;
0753 uint64_t elev_prio_dis:1;
0754 uint64_t nxm_write_en:1;
0755 uint64_t max_write_batch:4;
0756 uint64_t xor_bank:1;
0757 uint64_t auto_dclkdis:1;
0758 uint64_t int_zqcs_dis:1;
0759 uint64_t ext_zqcs_dis:1;
0760 uint64_t bprch:2;
0761 uint64_t wodt_bprch:1;
0762 uint64_t rodt_bprch:1;
0763 uint64_t reserved_24_63:40;
0764 #endif
0765 } cn63xx;
0766 struct cvmx_lmcx_control_cn66xx {
0767 #ifdef __BIG_ENDIAN_BITFIELD
0768 uint64_t scramble_ena:1;
0769 uint64_t reserved_24_62:39;
0770 uint64_t rodt_bprch:1;
0771 uint64_t wodt_bprch:1;
0772 uint64_t bprch:2;
0773 uint64_t ext_zqcs_dis:1;
0774 uint64_t int_zqcs_dis:1;
0775 uint64_t auto_dclkdis:1;
0776 uint64_t xor_bank:1;
0777 uint64_t max_write_batch:4;
0778 uint64_t nxm_write_en:1;
0779 uint64_t elev_prio_dis:1;
0780 uint64_t inorder_wr:1;
0781 uint64_t inorder_rd:1;
0782 uint64_t throttle_wr:1;
0783 uint64_t throttle_rd:1;
0784 uint64_t fprch2:2;
0785 uint64_t pocas:1;
0786 uint64_t ddr2t:1;
0787 uint64_t bwcnt:1;
0788 uint64_t rdimm_ena:1;
0789 #else
0790 uint64_t rdimm_ena:1;
0791 uint64_t bwcnt:1;
0792 uint64_t ddr2t:1;
0793 uint64_t pocas:1;
0794 uint64_t fprch2:2;
0795 uint64_t throttle_rd:1;
0796 uint64_t throttle_wr:1;
0797 uint64_t inorder_rd:1;
0798 uint64_t inorder_wr:1;
0799 uint64_t elev_prio_dis:1;
0800 uint64_t nxm_write_en:1;
0801 uint64_t max_write_batch:4;
0802 uint64_t xor_bank:1;
0803 uint64_t auto_dclkdis:1;
0804 uint64_t int_zqcs_dis:1;
0805 uint64_t ext_zqcs_dis:1;
0806 uint64_t bprch:2;
0807 uint64_t wodt_bprch:1;
0808 uint64_t rodt_bprch:1;
0809 uint64_t reserved_24_62:39;
0810 uint64_t scramble_ena:1;
0811 #endif
0812 } cn66xx;
0813 struct cvmx_lmcx_control_cn68xx {
0814 #ifdef __BIG_ENDIAN_BITFIELD
0815 uint64_t reserved_63_63:1;
0816 uint64_t thrcnt:12;
0817 uint64_t persub:8;
0818 uint64_t thrmax:4;
0819 uint64_t crm_cnt:5;
0820 uint64_t crm_thr:5;
0821 uint64_t crm_max:5;
0822 uint64_t rodt_bprch:1;
0823 uint64_t wodt_bprch:1;
0824 uint64_t bprch:2;
0825 uint64_t ext_zqcs_dis:1;
0826 uint64_t int_zqcs_dis:1;
0827 uint64_t auto_dclkdis:1;
0828 uint64_t xor_bank:1;
0829 uint64_t max_write_batch:4;
0830 uint64_t nxm_write_en:1;
0831 uint64_t elev_prio_dis:1;
0832 uint64_t inorder_wr:1;
0833 uint64_t inorder_rd:1;
0834 uint64_t throttle_wr:1;
0835 uint64_t throttle_rd:1;
0836 uint64_t fprch2:2;
0837 uint64_t pocas:1;
0838 uint64_t ddr2t:1;
0839 uint64_t bwcnt:1;
0840 uint64_t rdimm_ena:1;
0841 #else
0842 uint64_t rdimm_ena:1;
0843 uint64_t bwcnt:1;
0844 uint64_t ddr2t:1;
0845 uint64_t pocas:1;
0846 uint64_t fprch2:2;
0847 uint64_t throttle_rd:1;
0848 uint64_t throttle_wr:1;
0849 uint64_t inorder_rd:1;
0850 uint64_t inorder_wr:1;
0851 uint64_t elev_prio_dis:1;
0852 uint64_t nxm_write_en:1;
0853 uint64_t max_write_batch:4;
0854 uint64_t xor_bank:1;
0855 uint64_t auto_dclkdis:1;
0856 uint64_t int_zqcs_dis:1;
0857 uint64_t ext_zqcs_dis:1;
0858 uint64_t bprch:2;
0859 uint64_t wodt_bprch:1;
0860 uint64_t rodt_bprch:1;
0861 uint64_t crm_max:5;
0862 uint64_t crm_thr:5;
0863 uint64_t crm_cnt:5;
0864 uint64_t thrmax:4;
0865 uint64_t persub:8;
0866 uint64_t thrcnt:12;
0867 uint64_t reserved_63_63:1;
0868 #endif
0869 } cn68xx;
0870 };
0871
0872 union cvmx_lmcx_ctl {
0873 uint64_t u64;
0874 struct cvmx_lmcx_ctl_s {
0875 #ifdef __BIG_ENDIAN_BITFIELD
0876 uint64_t reserved_32_63:32;
0877 uint64_t ddr__nctl:4;
0878 uint64_t ddr__pctl:4;
0879 uint64_t slow_scf:1;
0880 uint64_t xor_bank:1;
0881 uint64_t max_write_batch:4;
0882 uint64_t pll_div2:1;
0883 uint64_t pll_bypass:1;
0884 uint64_t rdimm_ena:1;
0885 uint64_t r2r_slot:1;
0886 uint64_t inorder_mwf:1;
0887 uint64_t inorder_mrf:1;
0888 uint64_t reserved_10_11:2;
0889 uint64_t fprch2:1;
0890 uint64_t bprch:1;
0891 uint64_t sil_lat:2;
0892 uint64_t tskw:2;
0893 uint64_t qs_dic:2;
0894 uint64_t dic:2;
0895 #else
0896 uint64_t dic:2;
0897 uint64_t qs_dic:2;
0898 uint64_t tskw:2;
0899 uint64_t sil_lat:2;
0900 uint64_t bprch:1;
0901 uint64_t fprch2:1;
0902 uint64_t reserved_10_11:2;
0903 uint64_t inorder_mrf:1;
0904 uint64_t inorder_mwf:1;
0905 uint64_t r2r_slot:1;
0906 uint64_t rdimm_ena:1;
0907 uint64_t pll_bypass:1;
0908 uint64_t pll_div2:1;
0909 uint64_t max_write_batch:4;
0910 uint64_t xor_bank:1;
0911 uint64_t slow_scf:1;
0912 uint64_t ddr__pctl:4;
0913 uint64_t ddr__nctl:4;
0914 uint64_t reserved_32_63:32;
0915 #endif
0916 } s;
0917 struct cvmx_lmcx_ctl_cn30xx {
0918 #ifdef __BIG_ENDIAN_BITFIELD
0919 uint64_t reserved_32_63:32;
0920 uint64_t ddr__nctl:4;
0921 uint64_t ddr__pctl:4;
0922 uint64_t slow_scf:1;
0923 uint64_t xor_bank:1;
0924 uint64_t max_write_batch:4;
0925 uint64_t pll_div2:1;
0926 uint64_t pll_bypass:1;
0927 uint64_t rdimm_ena:1;
0928 uint64_t r2r_slot:1;
0929 uint64_t inorder_mwf:1;
0930 uint64_t inorder_mrf:1;
0931 uint64_t dreset:1;
0932 uint64_t mode32b:1;
0933 uint64_t fprch2:1;
0934 uint64_t bprch:1;
0935 uint64_t sil_lat:2;
0936 uint64_t tskw:2;
0937 uint64_t qs_dic:2;
0938 uint64_t dic:2;
0939 #else
0940 uint64_t dic:2;
0941 uint64_t qs_dic:2;
0942 uint64_t tskw:2;
0943 uint64_t sil_lat:2;
0944 uint64_t bprch:1;
0945 uint64_t fprch2:1;
0946 uint64_t mode32b:1;
0947 uint64_t dreset:1;
0948 uint64_t inorder_mrf:1;
0949 uint64_t inorder_mwf:1;
0950 uint64_t r2r_slot:1;
0951 uint64_t rdimm_ena:1;
0952 uint64_t pll_bypass:1;
0953 uint64_t pll_div2:1;
0954 uint64_t max_write_batch:4;
0955 uint64_t xor_bank:1;
0956 uint64_t slow_scf:1;
0957 uint64_t ddr__pctl:4;
0958 uint64_t ddr__nctl:4;
0959 uint64_t reserved_32_63:32;
0960 #endif
0961 } cn30xx;
0962 struct cvmx_lmcx_ctl_cn38xx {
0963 #ifdef __BIG_ENDIAN_BITFIELD
0964 uint64_t reserved_32_63:32;
0965 uint64_t ddr__nctl:4;
0966 uint64_t ddr__pctl:4;
0967 uint64_t slow_scf:1;
0968 uint64_t xor_bank:1;
0969 uint64_t max_write_batch:4;
0970 uint64_t reserved_16_17:2;
0971 uint64_t rdimm_ena:1;
0972 uint64_t r2r_slot:1;
0973 uint64_t inorder_mwf:1;
0974 uint64_t inorder_mrf:1;
0975 uint64_t set_zero:1;
0976 uint64_t mode128b:1;
0977 uint64_t fprch2:1;
0978 uint64_t bprch:1;
0979 uint64_t sil_lat:2;
0980 uint64_t tskw:2;
0981 uint64_t qs_dic:2;
0982 uint64_t dic:2;
0983 #else
0984 uint64_t dic:2;
0985 uint64_t qs_dic:2;
0986 uint64_t tskw:2;
0987 uint64_t sil_lat:2;
0988 uint64_t bprch:1;
0989 uint64_t fprch2:1;
0990 uint64_t mode128b:1;
0991 uint64_t set_zero:1;
0992 uint64_t inorder_mrf:1;
0993 uint64_t inorder_mwf:1;
0994 uint64_t r2r_slot:1;
0995 uint64_t rdimm_ena:1;
0996 uint64_t reserved_16_17:2;
0997 uint64_t max_write_batch:4;
0998 uint64_t xor_bank:1;
0999 uint64_t slow_scf:1;
1000 uint64_t ddr__pctl:4;
1001 uint64_t ddr__nctl:4;
1002 uint64_t reserved_32_63:32;
1003 #endif
1004 } cn38xx;
1005 struct cvmx_lmcx_ctl_cn50xx {
1006 #ifdef __BIG_ENDIAN_BITFIELD
1007 uint64_t reserved_32_63:32;
1008 uint64_t ddr__nctl:4;
1009 uint64_t ddr__pctl:4;
1010 uint64_t slow_scf:1;
1011 uint64_t xor_bank:1;
1012 uint64_t max_write_batch:4;
1013 uint64_t reserved_17_17:1;
1014 uint64_t pll_bypass:1;
1015 uint64_t rdimm_ena:1;
1016 uint64_t r2r_slot:1;
1017 uint64_t inorder_mwf:1;
1018 uint64_t inorder_mrf:1;
1019 uint64_t dreset:1;
1020 uint64_t mode32b:1;
1021 uint64_t fprch2:1;
1022 uint64_t bprch:1;
1023 uint64_t sil_lat:2;
1024 uint64_t tskw:2;
1025 uint64_t qs_dic:2;
1026 uint64_t dic:2;
1027 #else
1028 uint64_t dic:2;
1029 uint64_t qs_dic:2;
1030 uint64_t tskw:2;
1031 uint64_t sil_lat:2;
1032 uint64_t bprch:1;
1033 uint64_t fprch2:1;
1034 uint64_t mode32b:1;
1035 uint64_t dreset:1;
1036 uint64_t inorder_mrf:1;
1037 uint64_t inorder_mwf:1;
1038 uint64_t r2r_slot:1;
1039 uint64_t rdimm_ena:1;
1040 uint64_t pll_bypass:1;
1041 uint64_t reserved_17_17:1;
1042 uint64_t max_write_batch:4;
1043 uint64_t xor_bank:1;
1044 uint64_t slow_scf:1;
1045 uint64_t ddr__pctl:4;
1046 uint64_t ddr__nctl:4;
1047 uint64_t reserved_32_63:32;
1048 #endif
1049 } cn50xx;
1050 struct cvmx_lmcx_ctl_cn52xx {
1051 #ifdef __BIG_ENDIAN_BITFIELD
1052 uint64_t reserved_32_63:32;
1053 uint64_t ddr__nctl:4;
1054 uint64_t ddr__pctl:4;
1055 uint64_t slow_scf:1;
1056 uint64_t xor_bank:1;
1057 uint64_t max_write_batch:4;
1058 uint64_t reserved_16_17:2;
1059 uint64_t rdimm_ena:1;
1060 uint64_t r2r_slot:1;
1061 uint64_t inorder_mwf:1;
1062 uint64_t inorder_mrf:1;
1063 uint64_t dreset:1;
1064 uint64_t mode32b:1;
1065 uint64_t fprch2:1;
1066 uint64_t bprch:1;
1067 uint64_t sil_lat:2;
1068 uint64_t tskw:2;
1069 uint64_t qs_dic:2;
1070 uint64_t dic:2;
1071 #else
1072 uint64_t dic:2;
1073 uint64_t qs_dic:2;
1074 uint64_t tskw:2;
1075 uint64_t sil_lat:2;
1076 uint64_t bprch:1;
1077 uint64_t fprch2:1;
1078 uint64_t mode32b:1;
1079 uint64_t dreset:1;
1080 uint64_t inorder_mrf:1;
1081 uint64_t inorder_mwf:1;
1082 uint64_t r2r_slot:1;
1083 uint64_t rdimm_ena:1;
1084 uint64_t reserved_16_17:2;
1085 uint64_t max_write_batch:4;
1086 uint64_t xor_bank:1;
1087 uint64_t slow_scf:1;
1088 uint64_t ddr__pctl:4;
1089 uint64_t ddr__nctl:4;
1090 uint64_t reserved_32_63:32;
1091 #endif
1092 } cn52xx;
1093 struct cvmx_lmcx_ctl_cn58xx {
1094 #ifdef __BIG_ENDIAN_BITFIELD
1095 uint64_t reserved_32_63:32;
1096 uint64_t ddr__nctl:4;
1097 uint64_t ddr__pctl:4;
1098 uint64_t slow_scf:1;
1099 uint64_t xor_bank:1;
1100 uint64_t max_write_batch:4;
1101 uint64_t reserved_16_17:2;
1102 uint64_t rdimm_ena:1;
1103 uint64_t r2r_slot:1;
1104 uint64_t inorder_mwf:1;
1105 uint64_t inorder_mrf:1;
1106 uint64_t dreset:1;
1107 uint64_t mode128b:1;
1108 uint64_t fprch2:1;
1109 uint64_t bprch:1;
1110 uint64_t sil_lat:2;
1111 uint64_t tskw:2;
1112 uint64_t qs_dic:2;
1113 uint64_t dic:2;
1114 #else
1115 uint64_t dic:2;
1116 uint64_t qs_dic:2;
1117 uint64_t tskw:2;
1118 uint64_t sil_lat:2;
1119 uint64_t bprch:1;
1120 uint64_t fprch2:1;
1121 uint64_t mode128b:1;
1122 uint64_t dreset:1;
1123 uint64_t inorder_mrf:1;
1124 uint64_t inorder_mwf:1;
1125 uint64_t r2r_slot:1;
1126 uint64_t rdimm_ena:1;
1127 uint64_t reserved_16_17:2;
1128 uint64_t max_write_batch:4;
1129 uint64_t xor_bank:1;
1130 uint64_t slow_scf:1;
1131 uint64_t ddr__pctl:4;
1132 uint64_t ddr__nctl:4;
1133 uint64_t reserved_32_63:32;
1134 #endif
1135 } cn58xx;
1136 };
1137
1138 union cvmx_lmcx_ctl1 {
1139 uint64_t u64;
1140 struct cvmx_lmcx_ctl1_s {
1141 #ifdef __BIG_ENDIAN_BITFIELD
1142 uint64_t reserved_21_63:43;
1143 uint64_t ecc_adr:1;
1144 uint64_t forcewrite:4;
1145 uint64_t idlepower:3;
1146 uint64_t sequence:3;
1147 uint64_t sil_mode:1;
1148 uint64_t dcc_enable:1;
1149 uint64_t reserved_2_7:6;
1150 uint64_t data_layout:2;
1151 #else
1152 uint64_t data_layout:2;
1153 uint64_t reserved_2_7:6;
1154 uint64_t dcc_enable:1;
1155 uint64_t sil_mode:1;
1156 uint64_t sequence:3;
1157 uint64_t idlepower:3;
1158 uint64_t forcewrite:4;
1159 uint64_t ecc_adr:1;
1160 uint64_t reserved_21_63:43;
1161 #endif
1162 } s;
1163 struct cvmx_lmcx_ctl1_cn30xx {
1164 #ifdef __BIG_ENDIAN_BITFIELD
1165 uint64_t reserved_2_63:62;
1166 uint64_t data_layout:2;
1167 #else
1168 uint64_t data_layout:2;
1169 uint64_t reserved_2_63:62;
1170 #endif
1171 } cn30xx;
1172 struct cvmx_lmcx_ctl1_cn50xx {
1173 #ifdef __BIG_ENDIAN_BITFIELD
1174 uint64_t reserved_10_63:54;
1175 uint64_t sil_mode:1;
1176 uint64_t dcc_enable:1;
1177 uint64_t reserved_2_7:6;
1178 uint64_t data_layout:2;
1179 #else
1180 uint64_t data_layout:2;
1181 uint64_t reserved_2_7:6;
1182 uint64_t dcc_enable:1;
1183 uint64_t sil_mode:1;
1184 uint64_t reserved_10_63:54;
1185 #endif
1186 } cn50xx;
1187 struct cvmx_lmcx_ctl1_cn52xx {
1188 #ifdef __BIG_ENDIAN_BITFIELD
1189 uint64_t reserved_21_63:43;
1190 uint64_t ecc_adr:1;
1191 uint64_t forcewrite:4;
1192 uint64_t idlepower:3;
1193 uint64_t sequence:3;
1194 uint64_t sil_mode:1;
1195 uint64_t dcc_enable:1;
1196 uint64_t reserved_0_7:8;
1197 #else
1198 uint64_t reserved_0_7:8;
1199 uint64_t dcc_enable:1;
1200 uint64_t sil_mode:1;
1201 uint64_t sequence:3;
1202 uint64_t idlepower:3;
1203 uint64_t forcewrite:4;
1204 uint64_t ecc_adr:1;
1205 uint64_t reserved_21_63:43;
1206 #endif
1207 } cn52xx;
1208 struct cvmx_lmcx_ctl1_cn58xx {
1209 #ifdef __BIG_ENDIAN_BITFIELD
1210 uint64_t reserved_10_63:54;
1211 uint64_t sil_mode:1;
1212 uint64_t dcc_enable:1;
1213 uint64_t reserved_0_7:8;
1214 #else
1215 uint64_t reserved_0_7:8;
1216 uint64_t dcc_enable:1;
1217 uint64_t sil_mode:1;
1218 uint64_t reserved_10_63:54;
1219 #endif
1220 } cn58xx;
1221 };
1222
1223 union cvmx_lmcx_dclk_cnt {
1224 uint64_t u64;
1225 struct cvmx_lmcx_dclk_cnt_s {
1226 #ifdef __BIG_ENDIAN_BITFIELD
1227 uint64_t dclkcnt:64;
1228 #else
1229 uint64_t dclkcnt:64;
1230 #endif
1231 } s;
1232 };
1233
1234 union cvmx_lmcx_dclk_cnt_hi {
1235 uint64_t u64;
1236 struct cvmx_lmcx_dclk_cnt_hi_s {
1237 #ifdef __BIG_ENDIAN_BITFIELD
1238 uint64_t reserved_32_63:32;
1239 uint64_t dclkcnt_hi:32;
1240 #else
1241 uint64_t dclkcnt_hi:32;
1242 uint64_t reserved_32_63:32;
1243 #endif
1244 } s;
1245 };
1246
1247 union cvmx_lmcx_dclk_cnt_lo {
1248 uint64_t u64;
1249 struct cvmx_lmcx_dclk_cnt_lo_s {
1250 #ifdef __BIG_ENDIAN_BITFIELD
1251 uint64_t reserved_32_63:32;
1252 uint64_t dclkcnt_lo:32;
1253 #else
1254 uint64_t dclkcnt_lo:32;
1255 uint64_t reserved_32_63:32;
1256 #endif
1257 } s;
1258 };
1259
1260 union cvmx_lmcx_dclk_ctl {
1261 uint64_t u64;
1262 struct cvmx_lmcx_dclk_ctl_s {
1263 #ifdef __BIG_ENDIAN_BITFIELD
1264 uint64_t reserved_8_63:56;
1265 uint64_t off90_ena:1;
1266 uint64_t dclk90_byp:1;
1267 uint64_t dclk90_ld:1;
1268 uint64_t dclk90_vlu:5;
1269 #else
1270 uint64_t dclk90_vlu:5;
1271 uint64_t dclk90_ld:1;
1272 uint64_t dclk90_byp:1;
1273 uint64_t off90_ena:1;
1274 uint64_t reserved_8_63:56;
1275 #endif
1276 } s;
1277 };
1278
1279 union cvmx_lmcx_ddr2_ctl {
1280 uint64_t u64;
1281 struct cvmx_lmcx_ddr2_ctl_s {
1282 #ifdef __BIG_ENDIAN_BITFIELD
1283 uint64_t reserved_32_63:32;
1284 uint64_t bank8:1;
1285 uint64_t burst8:1;
1286 uint64_t addlat:3;
1287 uint64_t pocas:1;
1288 uint64_t bwcnt:1;
1289 uint64_t twr:3;
1290 uint64_t silo_hc:1;
1291 uint64_t ddr_eof:4;
1292 uint64_t tfaw:5;
1293 uint64_t crip_mode:1;
1294 uint64_t ddr2t:1;
1295 uint64_t odt_ena:1;
1296 uint64_t qdll_ena:1;
1297 uint64_t dll90_vlu:5;
1298 uint64_t dll90_byp:1;
1299 uint64_t rdqs:1;
1300 uint64_t ddr2:1;
1301 #else
1302 uint64_t ddr2:1;
1303 uint64_t rdqs:1;
1304 uint64_t dll90_byp:1;
1305 uint64_t dll90_vlu:5;
1306 uint64_t qdll_ena:1;
1307 uint64_t odt_ena:1;
1308 uint64_t ddr2t:1;
1309 uint64_t crip_mode:1;
1310 uint64_t tfaw:5;
1311 uint64_t ddr_eof:4;
1312 uint64_t silo_hc:1;
1313 uint64_t twr:3;
1314 uint64_t bwcnt:1;
1315 uint64_t pocas:1;
1316 uint64_t addlat:3;
1317 uint64_t burst8:1;
1318 uint64_t bank8:1;
1319 uint64_t reserved_32_63:32;
1320 #endif
1321 } s;
1322 struct cvmx_lmcx_ddr2_ctl_cn30xx {
1323 #ifdef __BIG_ENDIAN_BITFIELD
1324 uint64_t reserved_32_63:32;
1325 uint64_t bank8:1;
1326 uint64_t burst8:1;
1327 uint64_t addlat:3;
1328 uint64_t pocas:1;
1329 uint64_t bwcnt:1;
1330 uint64_t twr:3;
1331 uint64_t silo_hc:1;
1332 uint64_t ddr_eof:4;
1333 uint64_t tfaw:5;
1334 uint64_t crip_mode:1;
1335 uint64_t ddr2t:1;
1336 uint64_t odt_ena:1;
1337 uint64_t qdll_ena:1;
1338 uint64_t dll90_vlu:5;
1339 uint64_t dll90_byp:1;
1340 uint64_t reserved_1_1:1;
1341 uint64_t ddr2:1;
1342 #else
1343 uint64_t ddr2:1;
1344 uint64_t reserved_1_1:1;
1345 uint64_t dll90_byp:1;
1346 uint64_t dll90_vlu:5;
1347 uint64_t qdll_ena:1;
1348 uint64_t odt_ena:1;
1349 uint64_t ddr2t:1;
1350 uint64_t crip_mode:1;
1351 uint64_t tfaw:5;
1352 uint64_t ddr_eof:4;
1353 uint64_t silo_hc:1;
1354 uint64_t twr:3;
1355 uint64_t bwcnt:1;
1356 uint64_t pocas:1;
1357 uint64_t addlat:3;
1358 uint64_t burst8:1;
1359 uint64_t bank8:1;
1360 uint64_t reserved_32_63:32;
1361 #endif
1362 } cn30xx;
1363 };
1364
1365 union cvmx_lmcx_ddr_pll_ctl {
1366 uint64_t u64;
1367 struct cvmx_lmcx_ddr_pll_ctl_s {
1368 #ifdef __BIG_ENDIAN_BITFIELD
1369 uint64_t reserved_27_63:37;
1370 uint64_t jtg_test_mode:1;
1371 uint64_t dfm_div_reset:1;
1372 uint64_t dfm_ps_en:3;
1373 uint64_t ddr_div_reset:1;
1374 uint64_t ddr_ps_en:3;
1375 uint64_t diffamp:4;
1376 uint64_t cps:3;
1377 uint64_t cpb:3;
1378 uint64_t reset_n:1;
1379 uint64_t clkf:7;
1380 #else
1381 uint64_t clkf:7;
1382 uint64_t reset_n:1;
1383 uint64_t cpb:3;
1384 uint64_t cps:3;
1385 uint64_t diffamp:4;
1386 uint64_t ddr_ps_en:3;
1387 uint64_t ddr_div_reset:1;
1388 uint64_t dfm_ps_en:3;
1389 uint64_t dfm_div_reset:1;
1390 uint64_t jtg_test_mode:1;
1391 uint64_t reserved_27_63:37;
1392 #endif
1393 } s;
1394 };
1395
1396 union cvmx_lmcx_delay_cfg {
1397 uint64_t u64;
1398 struct cvmx_lmcx_delay_cfg_s {
1399 #ifdef __BIG_ENDIAN_BITFIELD
1400 uint64_t reserved_15_63:49;
1401 uint64_t dq:5;
1402 uint64_t cmd:5;
1403 uint64_t clk:5;
1404 #else
1405 uint64_t clk:5;
1406 uint64_t cmd:5;
1407 uint64_t dq:5;
1408 uint64_t reserved_15_63:49;
1409 #endif
1410 } s;
1411 struct cvmx_lmcx_delay_cfg_cn38xx {
1412 #ifdef __BIG_ENDIAN_BITFIELD
1413 uint64_t reserved_14_63:50;
1414 uint64_t dq:4;
1415 uint64_t reserved_9_9:1;
1416 uint64_t cmd:4;
1417 uint64_t reserved_4_4:1;
1418 uint64_t clk:4;
1419 #else
1420 uint64_t clk:4;
1421 uint64_t reserved_4_4:1;
1422 uint64_t cmd:4;
1423 uint64_t reserved_9_9:1;
1424 uint64_t dq:4;
1425 uint64_t reserved_14_63:50;
1426 #endif
1427 } cn38xx;
1428 };
1429
1430 union cvmx_lmcx_dimmx_params {
1431 uint64_t u64;
1432 struct cvmx_lmcx_dimmx_params_s {
1433 #ifdef __BIG_ENDIAN_BITFIELD
1434 uint64_t rc15:4;
1435 uint64_t rc14:4;
1436 uint64_t rc13:4;
1437 uint64_t rc12:4;
1438 uint64_t rc11:4;
1439 uint64_t rc10:4;
1440 uint64_t rc9:4;
1441 uint64_t rc8:4;
1442 uint64_t rc7:4;
1443 uint64_t rc6:4;
1444 uint64_t rc5:4;
1445 uint64_t rc4:4;
1446 uint64_t rc3:4;
1447 uint64_t rc2:4;
1448 uint64_t rc1:4;
1449 uint64_t rc0:4;
1450 #else
1451 uint64_t rc0:4;
1452 uint64_t rc1:4;
1453 uint64_t rc2:4;
1454 uint64_t rc3:4;
1455 uint64_t rc4:4;
1456 uint64_t rc5:4;
1457 uint64_t rc6:4;
1458 uint64_t rc7:4;
1459 uint64_t rc8:4;
1460 uint64_t rc9:4;
1461 uint64_t rc10:4;
1462 uint64_t rc11:4;
1463 uint64_t rc12:4;
1464 uint64_t rc13:4;
1465 uint64_t rc14:4;
1466 uint64_t rc15:4;
1467 #endif
1468 } s;
1469 };
1470
1471 union cvmx_lmcx_dimm_ctl {
1472 uint64_t u64;
1473 struct cvmx_lmcx_dimm_ctl_s {
1474 #ifdef __BIG_ENDIAN_BITFIELD
1475 uint64_t reserved_46_63:18;
1476 uint64_t parity:1;
1477 uint64_t tcws:13;
1478 uint64_t dimm1_wmask:16;
1479 uint64_t dimm0_wmask:16;
1480 #else
1481 uint64_t dimm0_wmask:16;
1482 uint64_t dimm1_wmask:16;
1483 uint64_t tcws:13;
1484 uint64_t parity:1;
1485 uint64_t reserved_46_63:18;
1486 #endif
1487 } s;
1488 };
1489
1490 union cvmx_lmcx_dll_ctl {
1491 uint64_t u64;
1492 struct cvmx_lmcx_dll_ctl_s {
1493 #ifdef __BIG_ENDIAN_BITFIELD
1494 uint64_t reserved_8_63:56;
1495 uint64_t dreset:1;
1496 uint64_t dll90_byp:1;
1497 uint64_t dll90_ena:1;
1498 uint64_t dll90_vlu:5;
1499 #else
1500 uint64_t dll90_vlu:5;
1501 uint64_t dll90_ena:1;
1502 uint64_t dll90_byp:1;
1503 uint64_t dreset:1;
1504 uint64_t reserved_8_63:56;
1505 #endif
1506 } s;
1507 };
1508
1509 union cvmx_lmcx_dll_ctl2 {
1510 uint64_t u64;
1511 struct cvmx_lmcx_dll_ctl2_s {
1512 #ifdef __BIG_ENDIAN_BITFIELD
1513 uint64_t reserved_16_63:48;
1514 uint64_t intf_en:1;
1515 uint64_t dll_bringup:1;
1516 uint64_t dreset:1;
1517 uint64_t quad_dll_ena:1;
1518 uint64_t byp_sel:4;
1519 uint64_t byp_setting:8;
1520 #else
1521 uint64_t byp_setting:8;
1522 uint64_t byp_sel:4;
1523 uint64_t quad_dll_ena:1;
1524 uint64_t dreset:1;
1525 uint64_t dll_bringup:1;
1526 uint64_t intf_en:1;
1527 uint64_t reserved_16_63:48;
1528 #endif
1529 } s;
1530 struct cvmx_lmcx_dll_ctl2_cn63xx {
1531 #ifdef __BIG_ENDIAN_BITFIELD
1532 uint64_t reserved_15_63:49;
1533 uint64_t dll_bringup:1;
1534 uint64_t dreset:1;
1535 uint64_t quad_dll_ena:1;
1536 uint64_t byp_sel:4;
1537 uint64_t byp_setting:8;
1538 #else
1539 uint64_t byp_setting:8;
1540 uint64_t byp_sel:4;
1541 uint64_t quad_dll_ena:1;
1542 uint64_t dreset:1;
1543 uint64_t dll_bringup:1;
1544 uint64_t reserved_15_63:49;
1545 #endif
1546 } cn63xx;
1547 };
1548
1549 union cvmx_lmcx_dll_ctl3 {
1550 uint64_t u64;
1551 struct cvmx_lmcx_dll_ctl3_s {
1552 #ifdef __BIG_ENDIAN_BITFIELD
1553 uint64_t reserved_41_63:23;
1554 uint64_t dclk90_fwd:1;
1555 uint64_t ddr_90_dly_byp:1;
1556 uint64_t dclk90_recal_dis:1;
1557 uint64_t dclk90_byp_sel:1;
1558 uint64_t dclk90_byp_setting:8;
1559 uint64_t dll_fast:1;
1560 uint64_t dll90_setting:8;
1561 uint64_t fine_tune_mode:1;
1562 uint64_t dll_mode:1;
1563 uint64_t dll90_byte_sel:4;
1564 uint64_t offset_ena:1;
1565 uint64_t load_offset:1;
1566 uint64_t mode_sel:2;
1567 uint64_t byte_sel:4;
1568 uint64_t offset:6;
1569 #else
1570 uint64_t offset:6;
1571 uint64_t byte_sel:4;
1572 uint64_t mode_sel:2;
1573 uint64_t load_offset:1;
1574 uint64_t offset_ena:1;
1575 uint64_t dll90_byte_sel:4;
1576 uint64_t dll_mode:1;
1577 uint64_t fine_tune_mode:1;
1578 uint64_t dll90_setting:8;
1579 uint64_t dll_fast:1;
1580 uint64_t dclk90_byp_setting:8;
1581 uint64_t dclk90_byp_sel:1;
1582 uint64_t dclk90_recal_dis:1;
1583 uint64_t ddr_90_dly_byp:1;
1584 uint64_t dclk90_fwd:1;
1585 uint64_t reserved_41_63:23;
1586 #endif
1587 } s;
1588 struct cvmx_lmcx_dll_ctl3_cn63xx {
1589 #ifdef __BIG_ENDIAN_BITFIELD
1590 uint64_t reserved_29_63:35;
1591 uint64_t dll_fast:1;
1592 uint64_t dll90_setting:8;
1593 uint64_t fine_tune_mode:1;
1594 uint64_t dll_mode:1;
1595 uint64_t dll90_byte_sel:4;
1596 uint64_t offset_ena:1;
1597 uint64_t load_offset:1;
1598 uint64_t mode_sel:2;
1599 uint64_t byte_sel:4;
1600 uint64_t offset:6;
1601 #else
1602 uint64_t offset:6;
1603 uint64_t byte_sel:4;
1604 uint64_t mode_sel:2;
1605 uint64_t load_offset:1;
1606 uint64_t offset_ena:1;
1607 uint64_t dll90_byte_sel:4;
1608 uint64_t dll_mode:1;
1609 uint64_t fine_tune_mode:1;
1610 uint64_t dll90_setting:8;
1611 uint64_t dll_fast:1;
1612 uint64_t reserved_29_63:35;
1613 #endif
1614 } cn63xx;
1615 };
1616
1617 union cvmx_lmcx_dual_memcfg {
1618 uint64_t u64;
1619 struct cvmx_lmcx_dual_memcfg_s {
1620 #ifdef __BIG_ENDIAN_BITFIELD
1621 uint64_t reserved_20_63:44;
1622 uint64_t bank8:1;
1623 uint64_t row_lsb:3;
1624 uint64_t reserved_8_15:8;
1625 uint64_t cs_mask:8;
1626 #else
1627 uint64_t cs_mask:8;
1628 uint64_t reserved_8_15:8;
1629 uint64_t row_lsb:3;
1630 uint64_t bank8:1;
1631 uint64_t reserved_20_63:44;
1632 #endif
1633 } s;
1634 struct cvmx_lmcx_dual_memcfg_cn61xx {
1635 #ifdef __BIG_ENDIAN_BITFIELD
1636 uint64_t reserved_19_63:45;
1637 uint64_t row_lsb:3;
1638 uint64_t reserved_8_15:8;
1639 uint64_t cs_mask:8;
1640 #else
1641 uint64_t cs_mask:8;
1642 uint64_t reserved_8_15:8;
1643 uint64_t row_lsb:3;
1644 uint64_t reserved_19_63:45;
1645 #endif
1646 } cn61xx;
1647 };
1648
1649 union cvmx_lmcx_ecc_synd {
1650 uint64_t u64;
1651 struct cvmx_lmcx_ecc_synd_s {
1652 #ifdef __BIG_ENDIAN_BITFIELD
1653 uint64_t reserved_32_63:32;
1654 uint64_t mrdsyn3:8;
1655 uint64_t mrdsyn2:8;
1656 uint64_t mrdsyn1:8;
1657 uint64_t mrdsyn0:8;
1658 #else
1659 uint64_t mrdsyn0:8;
1660 uint64_t mrdsyn1:8;
1661 uint64_t mrdsyn2:8;
1662 uint64_t mrdsyn3:8;
1663 uint64_t reserved_32_63:32;
1664 #endif
1665 } s;
1666 };
1667
1668 union cvmx_lmcx_fadr {
1669 uint64_t u64;
1670 struct cvmx_lmcx_fadr_s {
1671 #ifdef __BIG_ENDIAN_BITFIELD
1672 uint64_t reserved_0_63:64;
1673 #else
1674 uint64_t reserved_0_63:64;
1675 #endif
1676 } s;
1677 struct cvmx_lmcx_fadr_cn30xx {
1678 #ifdef __BIG_ENDIAN_BITFIELD
1679 uint64_t reserved_32_63:32;
1680 uint64_t fdimm:2;
1681 uint64_t fbunk:1;
1682 uint64_t fbank:3;
1683 uint64_t frow:14;
1684 uint64_t fcol:12;
1685 #else
1686 uint64_t fcol:12;
1687 uint64_t frow:14;
1688 uint64_t fbank:3;
1689 uint64_t fbunk:1;
1690 uint64_t fdimm:2;
1691 uint64_t reserved_32_63:32;
1692 #endif
1693 } cn30xx;
1694 struct cvmx_lmcx_fadr_cn61xx {
1695 #ifdef __BIG_ENDIAN_BITFIELD
1696 uint64_t reserved_36_63:28;
1697 uint64_t fdimm:2;
1698 uint64_t fbunk:1;
1699 uint64_t fbank:3;
1700 uint64_t frow:16;
1701 uint64_t fcol:14;
1702 #else
1703 uint64_t fcol:14;
1704 uint64_t frow:16;
1705 uint64_t fbank:3;
1706 uint64_t fbunk:1;
1707 uint64_t fdimm:2;
1708 uint64_t reserved_36_63:28;
1709 #endif
1710 } cn61xx;
1711 };
1712
1713 union cvmx_lmcx_ifb_cnt {
1714 uint64_t u64;
1715 struct cvmx_lmcx_ifb_cnt_s {
1716 #ifdef __BIG_ENDIAN_BITFIELD
1717 uint64_t ifbcnt:64;
1718 #else
1719 uint64_t ifbcnt:64;
1720 #endif
1721 } s;
1722 };
1723
1724 union cvmx_lmcx_ifb_cnt_hi {
1725 uint64_t u64;
1726 struct cvmx_lmcx_ifb_cnt_hi_s {
1727 #ifdef __BIG_ENDIAN_BITFIELD
1728 uint64_t reserved_32_63:32;
1729 uint64_t ifbcnt_hi:32;
1730 #else
1731 uint64_t ifbcnt_hi:32;
1732 uint64_t reserved_32_63:32;
1733 #endif
1734 } s;
1735 };
1736
1737 union cvmx_lmcx_ifb_cnt_lo {
1738 uint64_t u64;
1739 struct cvmx_lmcx_ifb_cnt_lo_s {
1740 #ifdef __BIG_ENDIAN_BITFIELD
1741 uint64_t reserved_32_63:32;
1742 uint64_t ifbcnt_lo:32;
1743 #else
1744 uint64_t ifbcnt_lo:32;
1745 uint64_t reserved_32_63:32;
1746 #endif
1747 } s;
1748 };
1749
1750 union cvmx_lmcx_int {
1751 uint64_t u64;
1752 struct cvmx_lmcx_int_s {
1753 #ifdef __BIG_ENDIAN_BITFIELD
1754 uint64_t reserved_9_63:55;
1755 uint64_t ded_err:4;
1756 uint64_t sec_err:4;
1757 uint64_t nxm_wr_err:1;
1758 #else
1759 uint64_t nxm_wr_err:1;
1760 uint64_t sec_err:4;
1761 uint64_t ded_err:4;
1762 uint64_t reserved_9_63:55;
1763 #endif
1764 } s;
1765 };
1766
1767 union cvmx_lmcx_int_en {
1768 uint64_t u64;
1769 struct cvmx_lmcx_int_en_s {
1770 #ifdef __BIG_ENDIAN_BITFIELD
1771 uint64_t reserved_3_63:61;
1772 uint64_t intr_ded_ena:1;
1773 uint64_t intr_sec_ena:1;
1774 uint64_t intr_nxm_wr_ena:1;
1775 #else
1776 uint64_t intr_nxm_wr_ena:1;
1777 uint64_t intr_sec_ena:1;
1778 uint64_t intr_ded_ena:1;
1779 uint64_t reserved_3_63:61;
1780 #endif
1781 } s;
1782 };
1783
1784 union cvmx_lmcx_mem_cfg0 {
1785 uint64_t u64;
1786 struct cvmx_lmcx_mem_cfg0_s {
1787 #ifdef __BIG_ENDIAN_BITFIELD
1788 uint64_t reserved_32_63:32;
1789 uint64_t reset:1;
1790 uint64_t silo_qc:1;
1791 uint64_t bunk_ena:1;
1792 uint64_t ded_err:4;
1793 uint64_t sec_err:4;
1794 uint64_t intr_ded_ena:1;
1795 uint64_t intr_sec_ena:1;
1796 uint64_t tcl:4;
1797 uint64_t ref_int:6;
1798 uint64_t pbank_lsb:4;
1799 uint64_t row_lsb:3;
1800 uint64_t ecc_ena:1;
1801 uint64_t init_start:1;
1802 #else
1803 uint64_t init_start:1;
1804 uint64_t ecc_ena:1;
1805 uint64_t row_lsb:3;
1806 uint64_t pbank_lsb:4;
1807 uint64_t ref_int:6;
1808 uint64_t tcl:4;
1809 uint64_t intr_sec_ena:1;
1810 uint64_t intr_ded_ena:1;
1811 uint64_t sec_err:4;
1812 uint64_t ded_err:4;
1813 uint64_t bunk_ena:1;
1814 uint64_t silo_qc:1;
1815 uint64_t reset:1;
1816 uint64_t reserved_32_63:32;
1817 #endif
1818 } s;
1819 };
1820
1821 union cvmx_lmcx_mem_cfg1 {
1822 uint64_t u64;
1823 struct cvmx_lmcx_mem_cfg1_s {
1824 #ifdef __BIG_ENDIAN_BITFIELD
1825 uint64_t reserved_32_63:32;
1826 uint64_t comp_bypass:1;
1827 uint64_t trrd:3;
1828 uint64_t caslat:3;
1829 uint64_t tmrd:3;
1830 uint64_t trfc:5;
1831 uint64_t trp:4;
1832 uint64_t twtr:4;
1833 uint64_t trcd:4;
1834 uint64_t tras:5;
1835 #else
1836 uint64_t tras:5;
1837 uint64_t trcd:4;
1838 uint64_t twtr:4;
1839 uint64_t trp:4;
1840 uint64_t trfc:5;
1841 uint64_t tmrd:3;
1842 uint64_t caslat:3;
1843 uint64_t trrd:3;
1844 uint64_t comp_bypass:1;
1845 uint64_t reserved_32_63:32;
1846 #endif
1847 } s;
1848 struct cvmx_lmcx_mem_cfg1_cn38xx {
1849 #ifdef __BIG_ENDIAN_BITFIELD
1850 uint64_t reserved_31_63:33;
1851 uint64_t trrd:3;
1852 uint64_t caslat:3;
1853 uint64_t tmrd:3;
1854 uint64_t trfc:5;
1855 uint64_t trp:4;
1856 uint64_t twtr:4;
1857 uint64_t trcd:4;
1858 uint64_t tras:5;
1859 #else
1860 uint64_t tras:5;
1861 uint64_t trcd:4;
1862 uint64_t twtr:4;
1863 uint64_t trp:4;
1864 uint64_t trfc:5;
1865 uint64_t tmrd:3;
1866 uint64_t caslat:3;
1867 uint64_t trrd:3;
1868 uint64_t reserved_31_63:33;
1869 #endif
1870 } cn38xx;
1871 };
1872
1873 union cvmx_lmcx_modereg_params0 {
1874 uint64_t u64;
1875 struct cvmx_lmcx_modereg_params0_s {
1876 #ifdef __BIG_ENDIAN_BITFIELD
1877 uint64_t reserved_25_63:39;
1878 uint64_t ppd:1;
1879 uint64_t wrp:3;
1880 uint64_t dllr:1;
1881 uint64_t tm:1;
1882 uint64_t rbt:1;
1883 uint64_t cl:4;
1884 uint64_t bl:2;
1885 uint64_t qoff:1;
1886 uint64_t tdqs:1;
1887 uint64_t wlev:1;
1888 uint64_t al:2;
1889 uint64_t dll:1;
1890 uint64_t mpr:1;
1891 uint64_t mprloc:2;
1892 uint64_t cwl:3;
1893 #else
1894 uint64_t cwl:3;
1895 uint64_t mprloc:2;
1896 uint64_t mpr:1;
1897 uint64_t dll:1;
1898 uint64_t al:2;
1899 uint64_t wlev:1;
1900 uint64_t tdqs:1;
1901 uint64_t qoff:1;
1902 uint64_t bl:2;
1903 uint64_t cl:4;
1904 uint64_t rbt:1;
1905 uint64_t tm:1;
1906 uint64_t dllr:1;
1907 uint64_t wrp:3;
1908 uint64_t ppd:1;
1909 uint64_t reserved_25_63:39;
1910 #endif
1911 } s;
1912 };
1913
1914 union cvmx_lmcx_modereg_params1 {
1915 uint64_t u64;
1916 struct cvmx_lmcx_modereg_params1_s {
1917 #ifdef __BIG_ENDIAN_BITFIELD
1918 uint64_t reserved_48_63:16;
1919 uint64_t rtt_nom_11:3;
1920 uint64_t dic_11:2;
1921 uint64_t rtt_wr_11:2;
1922 uint64_t srt_11:1;
1923 uint64_t asr_11:1;
1924 uint64_t pasr_11:3;
1925 uint64_t rtt_nom_10:3;
1926 uint64_t dic_10:2;
1927 uint64_t rtt_wr_10:2;
1928 uint64_t srt_10:1;
1929 uint64_t asr_10:1;
1930 uint64_t pasr_10:3;
1931 uint64_t rtt_nom_01:3;
1932 uint64_t dic_01:2;
1933 uint64_t rtt_wr_01:2;
1934 uint64_t srt_01:1;
1935 uint64_t asr_01:1;
1936 uint64_t pasr_01:3;
1937 uint64_t rtt_nom_00:3;
1938 uint64_t dic_00:2;
1939 uint64_t rtt_wr_00:2;
1940 uint64_t srt_00:1;
1941 uint64_t asr_00:1;
1942 uint64_t pasr_00:3;
1943 #else
1944 uint64_t pasr_00:3;
1945 uint64_t asr_00:1;
1946 uint64_t srt_00:1;
1947 uint64_t rtt_wr_00:2;
1948 uint64_t dic_00:2;
1949 uint64_t rtt_nom_00:3;
1950 uint64_t pasr_01:3;
1951 uint64_t asr_01:1;
1952 uint64_t srt_01:1;
1953 uint64_t rtt_wr_01:2;
1954 uint64_t dic_01:2;
1955 uint64_t rtt_nom_01:3;
1956 uint64_t pasr_10:3;
1957 uint64_t asr_10:1;
1958 uint64_t srt_10:1;
1959 uint64_t rtt_wr_10:2;
1960 uint64_t dic_10:2;
1961 uint64_t rtt_nom_10:3;
1962 uint64_t pasr_11:3;
1963 uint64_t asr_11:1;
1964 uint64_t srt_11:1;
1965 uint64_t rtt_wr_11:2;
1966 uint64_t dic_11:2;
1967 uint64_t rtt_nom_11:3;
1968 uint64_t reserved_48_63:16;
1969 #endif
1970 } s;
1971 };
1972
1973 union cvmx_lmcx_nxm {
1974 uint64_t u64;
1975 struct cvmx_lmcx_nxm_s {
1976 #ifdef __BIG_ENDIAN_BITFIELD
1977 uint64_t reserved_40_63:24;
1978 uint64_t mem_msb_d3_r1:4;
1979 uint64_t mem_msb_d3_r0:4;
1980 uint64_t mem_msb_d2_r1:4;
1981 uint64_t mem_msb_d2_r0:4;
1982 uint64_t mem_msb_d1_r1:4;
1983 uint64_t mem_msb_d1_r0:4;
1984 uint64_t mem_msb_d0_r1:4;
1985 uint64_t mem_msb_d0_r0:4;
1986 uint64_t cs_mask:8;
1987 #else
1988 uint64_t cs_mask:8;
1989 uint64_t mem_msb_d0_r0:4;
1990 uint64_t mem_msb_d0_r1:4;
1991 uint64_t mem_msb_d1_r0:4;
1992 uint64_t mem_msb_d1_r1:4;
1993 uint64_t mem_msb_d2_r0:4;
1994 uint64_t mem_msb_d2_r1:4;
1995 uint64_t mem_msb_d3_r0:4;
1996 uint64_t mem_msb_d3_r1:4;
1997 uint64_t reserved_40_63:24;
1998 #endif
1999 } s;
2000 struct cvmx_lmcx_nxm_cn52xx {
2001 #ifdef __BIG_ENDIAN_BITFIELD
2002 uint64_t reserved_8_63:56;
2003 uint64_t cs_mask:8;
2004 #else
2005 uint64_t cs_mask:8;
2006 uint64_t reserved_8_63:56;
2007 #endif
2008 } cn52xx;
2009 };
2010
2011 union cvmx_lmcx_ops_cnt {
2012 uint64_t u64;
2013 struct cvmx_lmcx_ops_cnt_s {
2014 #ifdef __BIG_ENDIAN_BITFIELD
2015 uint64_t opscnt:64;
2016 #else
2017 uint64_t opscnt:64;
2018 #endif
2019 } s;
2020 };
2021
2022 union cvmx_lmcx_ops_cnt_hi {
2023 uint64_t u64;
2024 struct cvmx_lmcx_ops_cnt_hi_s {
2025 #ifdef __BIG_ENDIAN_BITFIELD
2026 uint64_t reserved_32_63:32;
2027 uint64_t opscnt_hi:32;
2028 #else
2029 uint64_t opscnt_hi:32;
2030 uint64_t reserved_32_63:32;
2031 #endif
2032 } s;
2033 };
2034
2035 union cvmx_lmcx_ops_cnt_lo {
2036 uint64_t u64;
2037 struct cvmx_lmcx_ops_cnt_lo_s {
2038 #ifdef __BIG_ENDIAN_BITFIELD
2039 uint64_t reserved_32_63:32;
2040 uint64_t opscnt_lo:32;
2041 #else
2042 uint64_t opscnt_lo:32;
2043 uint64_t reserved_32_63:32;
2044 #endif
2045 } s;
2046 };
2047
2048 union cvmx_lmcx_phy_ctl {
2049 uint64_t u64;
2050 struct cvmx_lmcx_phy_ctl_s {
2051 #ifdef __BIG_ENDIAN_BITFIELD
2052 uint64_t reserved_15_63:49;
2053 uint64_t rx_always_on:1;
2054 uint64_t lv_mode:1;
2055 uint64_t ck_tune1:1;
2056 uint64_t ck_dlyout1:4;
2057 uint64_t ck_tune0:1;
2058 uint64_t ck_dlyout0:4;
2059 uint64_t loopback:1;
2060 uint64_t loopback_pos:1;
2061 uint64_t ts_stagger:1;
2062 #else
2063 uint64_t ts_stagger:1;
2064 uint64_t loopback_pos:1;
2065 uint64_t loopback:1;
2066 uint64_t ck_dlyout0:4;
2067 uint64_t ck_tune0:1;
2068 uint64_t ck_dlyout1:4;
2069 uint64_t ck_tune1:1;
2070 uint64_t lv_mode:1;
2071 uint64_t rx_always_on:1;
2072 uint64_t reserved_15_63:49;
2073 #endif
2074 } s;
2075 struct cvmx_lmcx_phy_ctl_cn63xxp1 {
2076 #ifdef __BIG_ENDIAN_BITFIELD
2077 uint64_t reserved_14_63:50;
2078 uint64_t lv_mode:1;
2079 uint64_t ck_tune1:1;
2080 uint64_t ck_dlyout1:4;
2081 uint64_t ck_tune0:1;
2082 uint64_t ck_dlyout0:4;
2083 uint64_t loopback:1;
2084 uint64_t loopback_pos:1;
2085 uint64_t ts_stagger:1;
2086 #else
2087 uint64_t ts_stagger:1;
2088 uint64_t loopback_pos:1;
2089 uint64_t loopback:1;
2090 uint64_t ck_dlyout0:4;
2091 uint64_t ck_tune0:1;
2092 uint64_t ck_dlyout1:4;
2093 uint64_t ck_tune1:1;
2094 uint64_t lv_mode:1;
2095 uint64_t reserved_14_63:50;
2096 #endif
2097 } cn63xxp1;
2098 };
2099
2100 union cvmx_lmcx_pll_bwctl {
2101 uint64_t u64;
2102 struct cvmx_lmcx_pll_bwctl_s {
2103 #ifdef __BIG_ENDIAN_BITFIELD
2104 uint64_t reserved_5_63:59;
2105 uint64_t bwupd:1;
2106 uint64_t bwctl:4;
2107 #else
2108 uint64_t bwctl:4;
2109 uint64_t bwupd:1;
2110 uint64_t reserved_5_63:59;
2111 #endif
2112 } s;
2113 };
2114
2115 union cvmx_lmcx_pll_ctl {
2116 uint64_t u64;
2117 struct cvmx_lmcx_pll_ctl_s {
2118 #ifdef __BIG_ENDIAN_BITFIELD
2119 uint64_t reserved_30_63:34;
2120 uint64_t bypass:1;
2121 uint64_t fasten_n:1;
2122 uint64_t div_reset:1;
2123 uint64_t reset_n:1;
2124 uint64_t clkf:12;
2125 uint64_t clkr:6;
2126 uint64_t reserved_6_7:2;
2127 uint64_t en16:1;
2128 uint64_t en12:1;
2129 uint64_t en8:1;
2130 uint64_t en6:1;
2131 uint64_t en4:1;
2132 uint64_t en2:1;
2133 #else
2134 uint64_t en2:1;
2135 uint64_t en4:1;
2136 uint64_t en6:1;
2137 uint64_t en8:1;
2138 uint64_t en12:1;
2139 uint64_t en16:1;
2140 uint64_t reserved_6_7:2;
2141 uint64_t clkr:6;
2142 uint64_t clkf:12;
2143 uint64_t reset_n:1;
2144 uint64_t div_reset:1;
2145 uint64_t fasten_n:1;
2146 uint64_t bypass:1;
2147 uint64_t reserved_30_63:34;
2148 #endif
2149 } s;
2150 struct cvmx_lmcx_pll_ctl_cn50xx {
2151 #ifdef __BIG_ENDIAN_BITFIELD
2152 uint64_t reserved_29_63:35;
2153 uint64_t fasten_n:1;
2154 uint64_t div_reset:1;
2155 uint64_t reset_n:1;
2156 uint64_t clkf:12;
2157 uint64_t clkr:6;
2158 uint64_t reserved_6_7:2;
2159 uint64_t en16:1;
2160 uint64_t en12:1;
2161 uint64_t en8:1;
2162 uint64_t en6:1;
2163 uint64_t en4:1;
2164 uint64_t en2:1;
2165 #else
2166 uint64_t en2:1;
2167 uint64_t en4:1;
2168 uint64_t en6:1;
2169 uint64_t en8:1;
2170 uint64_t en12:1;
2171 uint64_t en16:1;
2172 uint64_t reserved_6_7:2;
2173 uint64_t clkr:6;
2174 uint64_t clkf:12;
2175 uint64_t reset_n:1;
2176 uint64_t div_reset:1;
2177 uint64_t fasten_n:1;
2178 uint64_t reserved_29_63:35;
2179 #endif
2180 } cn50xx;
2181 struct cvmx_lmcx_pll_ctl_cn56xxp1 {
2182 #ifdef __BIG_ENDIAN_BITFIELD
2183 uint64_t reserved_28_63:36;
2184 uint64_t div_reset:1;
2185 uint64_t reset_n:1;
2186 uint64_t clkf:12;
2187 uint64_t clkr:6;
2188 uint64_t reserved_6_7:2;
2189 uint64_t en16:1;
2190 uint64_t en12:1;
2191 uint64_t en8:1;
2192 uint64_t en6:1;
2193 uint64_t en4:1;
2194 uint64_t en2:1;
2195 #else
2196 uint64_t en2:1;
2197 uint64_t en4:1;
2198 uint64_t en6:1;
2199 uint64_t en8:1;
2200 uint64_t en12:1;
2201 uint64_t en16:1;
2202 uint64_t reserved_6_7:2;
2203 uint64_t clkr:6;
2204 uint64_t clkf:12;
2205 uint64_t reset_n:1;
2206 uint64_t div_reset:1;
2207 uint64_t reserved_28_63:36;
2208 #endif
2209 } cn56xxp1;
2210 };
2211
2212 union cvmx_lmcx_pll_status {
2213 uint64_t u64;
2214 struct cvmx_lmcx_pll_status_s {
2215 #ifdef __BIG_ENDIAN_BITFIELD
2216 uint64_t reserved_32_63:32;
2217 uint64_t ddr__nctl:5;
2218 uint64_t ddr__pctl:5;
2219 uint64_t reserved_2_21:20;
2220 uint64_t rfslip:1;
2221 uint64_t fbslip:1;
2222 #else
2223 uint64_t fbslip:1;
2224 uint64_t rfslip:1;
2225 uint64_t reserved_2_21:20;
2226 uint64_t ddr__pctl:5;
2227 uint64_t ddr__nctl:5;
2228 uint64_t reserved_32_63:32;
2229 #endif
2230 } s;
2231 struct cvmx_lmcx_pll_status_cn58xxp1 {
2232 #ifdef __BIG_ENDIAN_BITFIELD
2233 uint64_t reserved_2_63:62;
2234 uint64_t rfslip:1;
2235 uint64_t fbslip:1;
2236 #else
2237 uint64_t fbslip:1;
2238 uint64_t rfslip:1;
2239 uint64_t reserved_2_63:62;
2240 #endif
2241 } cn58xxp1;
2242 };
2243
2244 union cvmx_lmcx_read_level_ctl {
2245 uint64_t u64;
2246 struct cvmx_lmcx_read_level_ctl_s {
2247 #ifdef __BIG_ENDIAN_BITFIELD
2248 uint64_t reserved_44_63:20;
2249 uint64_t rankmask:4;
2250 uint64_t pattern:8;
2251 uint64_t row:16;
2252 uint64_t col:12;
2253 uint64_t reserved_3_3:1;
2254 uint64_t bnk:3;
2255 #else
2256 uint64_t bnk:3;
2257 uint64_t reserved_3_3:1;
2258 uint64_t col:12;
2259 uint64_t row:16;
2260 uint64_t pattern:8;
2261 uint64_t rankmask:4;
2262 uint64_t reserved_44_63:20;
2263 #endif
2264 } s;
2265 };
2266
2267 union cvmx_lmcx_read_level_dbg {
2268 uint64_t u64;
2269 struct cvmx_lmcx_read_level_dbg_s {
2270 #ifdef __BIG_ENDIAN_BITFIELD
2271 uint64_t reserved_32_63:32;
2272 uint64_t bitmask:16;
2273 uint64_t reserved_4_15:12;
2274 uint64_t byte:4;
2275 #else
2276 uint64_t byte:4;
2277 uint64_t reserved_4_15:12;
2278 uint64_t bitmask:16;
2279 uint64_t reserved_32_63:32;
2280 #endif
2281 } s;
2282 };
2283
2284 union cvmx_lmcx_read_level_rankx {
2285 uint64_t u64;
2286 struct cvmx_lmcx_read_level_rankx_s {
2287 #ifdef __BIG_ENDIAN_BITFIELD
2288 uint64_t reserved_38_63:26;
2289 uint64_t status:2;
2290 uint64_t byte8:4;
2291 uint64_t byte7:4;
2292 uint64_t byte6:4;
2293 uint64_t byte5:4;
2294 uint64_t byte4:4;
2295 uint64_t byte3:4;
2296 uint64_t byte2:4;
2297 uint64_t byte1:4;
2298 uint64_t byte0:4;
2299 #else
2300 uint64_t byte0:4;
2301 uint64_t byte1:4;
2302 uint64_t byte2:4;
2303 uint64_t byte3:4;
2304 uint64_t byte4:4;
2305 uint64_t byte5:4;
2306 uint64_t byte6:4;
2307 uint64_t byte7:4;
2308 uint64_t byte8:4;
2309 uint64_t status:2;
2310 uint64_t reserved_38_63:26;
2311 #endif
2312 } s;
2313 };
2314
2315 union cvmx_lmcx_reset_ctl {
2316 uint64_t u64;
2317 struct cvmx_lmcx_reset_ctl_s {
2318 #ifdef __BIG_ENDIAN_BITFIELD
2319 uint64_t reserved_4_63:60;
2320 uint64_t ddr3psv:1;
2321 uint64_t ddr3psoft:1;
2322 uint64_t ddr3pwarm:1;
2323 uint64_t ddr3rst:1;
2324 #else
2325 uint64_t ddr3rst:1;
2326 uint64_t ddr3pwarm:1;
2327 uint64_t ddr3psoft:1;
2328 uint64_t ddr3psv:1;
2329 uint64_t reserved_4_63:60;
2330 #endif
2331 } s;
2332 };
2333
2334 union cvmx_lmcx_rlevel_ctl {
2335 uint64_t u64;
2336 struct cvmx_lmcx_rlevel_ctl_s {
2337 #ifdef __BIG_ENDIAN_BITFIELD
2338 uint64_t reserved_22_63:42;
2339 uint64_t delay_unload_3:1;
2340 uint64_t delay_unload_2:1;
2341 uint64_t delay_unload_1:1;
2342 uint64_t delay_unload_0:1;
2343 uint64_t bitmask:8;
2344 uint64_t or_dis:1;
2345 uint64_t offset_en:1;
2346 uint64_t offset:4;
2347 uint64_t byte:4;
2348 #else
2349 uint64_t byte:4;
2350 uint64_t offset:4;
2351 uint64_t offset_en:1;
2352 uint64_t or_dis:1;
2353 uint64_t bitmask:8;
2354 uint64_t delay_unload_0:1;
2355 uint64_t delay_unload_1:1;
2356 uint64_t delay_unload_2:1;
2357 uint64_t delay_unload_3:1;
2358 uint64_t reserved_22_63:42;
2359 #endif
2360 } s;
2361 struct cvmx_lmcx_rlevel_ctl_cn63xxp1 {
2362 #ifdef __BIG_ENDIAN_BITFIELD
2363 uint64_t reserved_9_63:55;
2364 uint64_t offset_en:1;
2365 uint64_t offset:4;
2366 uint64_t byte:4;
2367 #else
2368 uint64_t byte:4;
2369 uint64_t offset:4;
2370 uint64_t offset_en:1;
2371 uint64_t reserved_9_63:55;
2372 #endif
2373 } cn63xxp1;
2374 };
2375
2376 union cvmx_lmcx_rlevel_dbg {
2377 uint64_t u64;
2378 struct cvmx_lmcx_rlevel_dbg_s {
2379 #ifdef __BIG_ENDIAN_BITFIELD
2380 uint64_t bitmask:64;
2381 #else
2382 uint64_t bitmask:64;
2383 #endif
2384 } s;
2385 };
2386
2387 union cvmx_lmcx_rlevel_rankx {
2388 uint64_t u64;
2389 struct cvmx_lmcx_rlevel_rankx_s {
2390 #ifdef __BIG_ENDIAN_BITFIELD
2391 uint64_t reserved_56_63:8;
2392 uint64_t status:2;
2393 uint64_t byte8:6;
2394 uint64_t byte7:6;
2395 uint64_t byte6:6;
2396 uint64_t byte5:6;
2397 uint64_t byte4:6;
2398 uint64_t byte3:6;
2399 uint64_t byte2:6;
2400 uint64_t byte1:6;
2401 uint64_t byte0:6;
2402 #else
2403 uint64_t byte0:6;
2404 uint64_t byte1:6;
2405 uint64_t byte2:6;
2406 uint64_t byte3:6;
2407 uint64_t byte4:6;
2408 uint64_t byte5:6;
2409 uint64_t byte6:6;
2410 uint64_t byte7:6;
2411 uint64_t byte8:6;
2412 uint64_t status:2;
2413 uint64_t reserved_56_63:8;
2414 #endif
2415 } s;
2416 };
2417
2418 union cvmx_lmcx_rodt_comp_ctl {
2419 uint64_t u64;
2420 struct cvmx_lmcx_rodt_comp_ctl_s {
2421 #ifdef __BIG_ENDIAN_BITFIELD
2422 uint64_t reserved_17_63:47;
2423 uint64_t enable:1;
2424 uint64_t reserved_12_15:4;
2425 uint64_t nctl:4;
2426 uint64_t reserved_5_7:3;
2427 uint64_t pctl:5;
2428 #else
2429 uint64_t pctl:5;
2430 uint64_t reserved_5_7:3;
2431 uint64_t nctl:4;
2432 uint64_t reserved_12_15:4;
2433 uint64_t enable:1;
2434 uint64_t reserved_17_63:47;
2435 #endif
2436 } s;
2437 };
2438
2439 union cvmx_lmcx_rodt_ctl {
2440 uint64_t u64;
2441 struct cvmx_lmcx_rodt_ctl_s {
2442 #ifdef __BIG_ENDIAN_BITFIELD
2443 uint64_t reserved_32_63:32;
2444 uint64_t rodt_hi3:4;
2445 uint64_t rodt_hi2:4;
2446 uint64_t rodt_hi1:4;
2447 uint64_t rodt_hi0:4;
2448 uint64_t rodt_lo3:4;
2449 uint64_t rodt_lo2:4;
2450 uint64_t rodt_lo1:4;
2451 uint64_t rodt_lo0:4;
2452 #else
2453 uint64_t rodt_lo0:4;
2454 uint64_t rodt_lo1:4;
2455 uint64_t rodt_lo2:4;
2456 uint64_t rodt_lo3:4;
2457 uint64_t rodt_hi0:4;
2458 uint64_t rodt_hi1:4;
2459 uint64_t rodt_hi2:4;
2460 uint64_t rodt_hi3:4;
2461 uint64_t reserved_32_63:32;
2462 #endif
2463 } s;
2464 };
2465
2466 union cvmx_lmcx_rodt_mask {
2467 uint64_t u64;
2468 struct cvmx_lmcx_rodt_mask_s {
2469 #ifdef __BIG_ENDIAN_BITFIELD
2470 uint64_t rodt_d3_r1:8;
2471 uint64_t rodt_d3_r0:8;
2472 uint64_t rodt_d2_r1:8;
2473 uint64_t rodt_d2_r0:8;
2474 uint64_t rodt_d1_r1:8;
2475 uint64_t rodt_d1_r0:8;
2476 uint64_t rodt_d0_r1:8;
2477 uint64_t rodt_d0_r0:8;
2478 #else
2479 uint64_t rodt_d0_r0:8;
2480 uint64_t rodt_d0_r1:8;
2481 uint64_t rodt_d1_r0:8;
2482 uint64_t rodt_d1_r1:8;
2483 uint64_t rodt_d2_r0:8;
2484 uint64_t rodt_d2_r1:8;
2485 uint64_t rodt_d3_r0:8;
2486 uint64_t rodt_d3_r1:8;
2487 #endif
2488 } s;
2489 };
2490
2491 union cvmx_lmcx_scramble_cfg0 {
2492 uint64_t u64;
2493 struct cvmx_lmcx_scramble_cfg0_s {
2494 #ifdef __BIG_ENDIAN_BITFIELD
2495 uint64_t key:64;
2496 #else
2497 uint64_t key:64;
2498 #endif
2499 } s;
2500 };
2501
2502 union cvmx_lmcx_scramble_cfg1 {
2503 uint64_t u64;
2504 struct cvmx_lmcx_scramble_cfg1_s {
2505 #ifdef __BIG_ENDIAN_BITFIELD
2506 uint64_t key:64;
2507 #else
2508 uint64_t key:64;
2509 #endif
2510 } s;
2511 };
2512
2513 union cvmx_lmcx_scrambled_fadr {
2514 uint64_t u64;
2515 struct cvmx_lmcx_scrambled_fadr_s {
2516 #ifdef __BIG_ENDIAN_BITFIELD
2517 uint64_t reserved_36_63:28;
2518 uint64_t fdimm:2;
2519 uint64_t fbunk:1;
2520 uint64_t fbank:3;
2521 uint64_t frow:16;
2522 uint64_t fcol:14;
2523 #else
2524 uint64_t fcol:14;
2525 uint64_t frow:16;
2526 uint64_t fbank:3;
2527 uint64_t fbunk:1;
2528 uint64_t fdimm:2;
2529 uint64_t reserved_36_63:28;
2530 #endif
2531 } s;
2532 };
2533
2534 union cvmx_lmcx_slot_ctl0 {
2535 uint64_t u64;
2536 struct cvmx_lmcx_slot_ctl0_s {
2537 #ifdef __BIG_ENDIAN_BITFIELD
2538 uint64_t reserved_24_63:40;
2539 uint64_t w2w_init:6;
2540 uint64_t w2r_init:6;
2541 uint64_t r2w_init:6;
2542 uint64_t r2r_init:6;
2543 #else
2544 uint64_t r2r_init:6;
2545 uint64_t r2w_init:6;
2546 uint64_t w2r_init:6;
2547 uint64_t w2w_init:6;
2548 uint64_t reserved_24_63:40;
2549 #endif
2550 } s;
2551 };
2552
2553 union cvmx_lmcx_slot_ctl1 {
2554 uint64_t u64;
2555 struct cvmx_lmcx_slot_ctl1_s {
2556 #ifdef __BIG_ENDIAN_BITFIELD
2557 uint64_t reserved_24_63:40;
2558 uint64_t w2w_xrank_init:6;
2559 uint64_t w2r_xrank_init:6;
2560 uint64_t r2w_xrank_init:6;
2561 uint64_t r2r_xrank_init:6;
2562 #else
2563 uint64_t r2r_xrank_init:6;
2564 uint64_t r2w_xrank_init:6;
2565 uint64_t w2r_xrank_init:6;
2566 uint64_t w2w_xrank_init:6;
2567 uint64_t reserved_24_63:40;
2568 #endif
2569 } s;
2570 };
2571
2572 union cvmx_lmcx_slot_ctl2 {
2573 uint64_t u64;
2574 struct cvmx_lmcx_slot_ctl2_s {
2575 #ifdef __BIG_ENDIAN_BITFIELD
2576 uint64_t reserved_24_63:40;
2577 uint64_t w2w_xdimm_init:6;
2578 uint64_t w2r_xdimm_init:6;
2579 uint64_t r2w_xdimm_init:6;
2580 uint64_t r2r_xdimm_init:6;
2581 #else
2582 uint64_t r2r_xdimm_init:6;
2583 uint64_t r2w_xdimm_init:6;
2584 uint64_t w2r_xdimm_init:6;
2585 uint64_t w2w_xdimm_init:6;
2586 uint64_t reserved_24_63:40;
2587 #endif
2588 } s;
2589 };
2590
2591 union cvmx_lmcx_timing_params0 {
2592 uint64_t u64;
2593 struct cvmx_lmcx_timing_params0_s {
2594 #ifdef __BIG_ENDIAN_BITFIELD
2595 uint64_t reserved_47_63:17;
2596 uint64_t trp_ext:1;
2597 uint64_t tcksre:4;
2598 uint64_t trp:4;
2599 uint64_t tzqinit:4;
2600 uint64_t tdllk:4;
2601 uint64_t tmod:4;
2602 uint64_t tmrd:4;
2603 uint64_t txpr:4;
2604 uint64_t tcke:4;
2605 uint64_t tzqcs:4;
2606 uint64_t tckeon:10;
2607 #else
2608 uint64_t tckeon:10;
2609 uint64_t tzqcs:4;
2610 uint64_t tcke:4;
2611 uint64_t txpr:4;
2612 uint64_t tmrd:4;
2613 uint64_t tmod:4;
2614 uint64_t tdllk:4;
2615 uint64_t tzqinit:4;
2616 uint64_t trp:4;
2617 uint64_t tcksre:4;
2618 uint64_t trp_ext:1;
2619 uint64_t reserved_47_63:17;
2620 #endif
2621 } s;
2622 struct cvmx_lmcx_timing_params0_cn61xx {
2623 #ifdef __BIG_ENDIAN_BITFIELD
2624 uint64_t reserved_47_63:17;
2625 uint64_t trp_ext:1;
2626 uint64_t tcksre:4;
2627 uint64_t trp:4;
2628 uint64_t tzqinit:4;
2629 uint64_t tdllk:4;
2630 uint64_t tmod:4;
2631 uint64_t tmrd:4;
2632 uint64_t txpr:4;
2633 uint64_t tcke:4;
2634 uint64_t tzqcs:4;
2635 uint64_t reserved_0_9:10;
2636 #else
2637 uint64_t reserved_0_9:10;
2638 uint64_t tzqcs:4;
2639 uint64_t tcke:4;
2640 uint64_t txpr:4;
2641 uint64_t tmrd:4;
2642 uint64_t tmod:4;
2643 uint64_t tdllk:4;
2644 uint64_t tzqinit:4;
2645 uint64_t trp:4;
2646 uint64_t tcksre:4;
2647 uint64_t trp_ext:1;
2648 uint64_t reserved_47_63:17;
2649 #endif
2650 } cn61xx;
2651 struct cvmx_lmcx_timing_params0_cn63xxp1 {
2652 #ifdef __BIG_ENDIAN_BITFIELD
2653 uint64_t reserved_46_63:18;
2654 uint64_t tcksre:4;
2655 uint64_t trp:4;
2656 uint64_t tzqinit:4;
2657 uint64_t tdllk:4;
2658 uint64_t tmod:4;
2659 uint64_t tmrd:4;
2660 uint64_t txpr:4;
2661 uint64_t tcke:4;
2662 uint64_t tzqcs:4;
2663 uint64_t tckeon:10;
2664 #else
2665 uint64_t tckeon:10;
2666 uint64_t tzqcs:4;
2667 uint64_t tcke:4;
2668 uint64_t txpr:4;
2669 uint64_t tmrd:4;
2670 uint64_t tmod:4;
2671 uint64_t tdllk:4;
2672 uint64_t tzqinit:4;
2673 uint64_t trp:4;
2674 uint64_t tcksre:4;
2675 uint64_t reserved_46_63:18;
2676 #endif
2677 } cn63xxp1;
2678 };
2679
2680 union cvmx_lmcx_timing_params1 {
2681 uint64_t u64;
2682 struct cvmx_lmcx_timing_params1_s {
2683 #ifdef __BIG_ENDIAN_BITFIELD
2684 uint64_t reserved_47_63:17;
2685 uint64_t tras_ext:1;
2686 uint64_t txpdll:5;
2687 uint64_t tfaw:5;
2688 uint64_t twldqsen:4;
2689 uint64_t twlmrd:4;
2690 uint64_t txp:3;
2691 uint64_t trrd:3;
2692 uint64_t trfc:5;
2693 uint64_t twtr:4;
2694 uint64_t trcd:4;
2695 uint64_t tras:5;
2696 uint64_t tmprr:4;
2697 #else
2698 uint64_t tmprr:4;
2699 uint64_t tras:5;
2700 uint64_t trcd:4;
2701 uint64_t twtr:4;
2702 uint64_t trfc:5;
2703 uint64_t trrd:3;
2704 uint64_t txp:3;
2705 uint64_t twlmrd:4;
2706 uint64_t twldqsen:4;
2707 uint64_t tfaw:5;
2708 uint64_t txpdll:5;
2709 uint64_t tras_ext:1;
2710 uint64_t reserved_47_63:17;
2711 #endif
2712 } s;
2713 struct cvmx_lmcx_timing_params1_cn63xxp1 {
2714 #ifdef __BIG_ENDIAN_BITFIELD
2715 uint64_t reserved_46_63:18;
2716 uint64_t txpdll:5;
2717 uint64_t tfaw:5;
2718 uint64_t twldqsen:4;
2719 uint64_t twlmrd:4;
2720 uint64_t txp:3;
2721 uint64_t trrd:3;
2722 uint64_t trfc:5;
2723 uint64_t twtr:4;
2724 uint64_t trcd:4;
2725 uint64_t tras:5;
2726 uint64_t tmprr:4;
2727 #else
2728 uint64_t tmprr:4;
2729 uint64_t tras:5;
2730 uint64_t trcd:4;
2731 uint64_t twtr:4;
2732 uint64_t trfc:5;
2733 uint64_t trrd:3;
2734 uint64_t txp:3;
2735 uint64_t twlmrd:4;
2736 uint64_t twldqsen:4;
2737 uint64_t tfaw:5;
2738 uint64_t txpdll:5;
2739 uint64_t reserved_46_63:18;
2740 #endif
2741 } cn63xxp1;
2742 };
2743
2744 union cvmx_lmcx_tro_ctl {
2745 uint64_t u64;
2746 struct cvmx_lmcx_tro_ctl_s {
2747 #ifdef __BIG_ENDIAN_BITFIELD
2748 uint64_t reserved_33_63:31;
2749 uint64_t rclk_cnt:32;
2750 uint64_t treset:1;
2751 #else
2752 uint64_t treset:1;
2753 uint64_t rclk_cnt:32;
2754 uint64_t reserved_33_63:31;
2755 #endif
2756 } s;
2757 };
2758
2759 union cvmx_lmcx_tro_stat {
2760 uint64_t u64;
2761 struct cvmx_lmcx_tro_stat_s {
2762 #ifdef __BIG_ENDIAN_BITFIELD
2763 uint64_t reserved_32_63:32;
2764 uint64_t ring_cnt:32;
2765 #else
2766 uint64_t ring_cnt:32;
2767 uint64_t reserved_32_63:32;
2768 #endif
2769 } s;
2770 };
2771
2772 union cvmx_lmcx_wlevel_ctl {
2773 uint64_t u64;
2774 struct cvmx_lmcx_wlevel_ctl_s {
2775 #ifdef __BIG_ENDIAN_BITFIELD
2776 uint64_t reserved_22_63:42;
2777 uint64_t rtt_nom:3;
2778 uint64_t bitmask:8;
2779 uint64_t or_dis:1;
2780 uint64_t sset:1;
2781 uint64_t lanemask:9;
2782 #else
2783 uint64_t lanemask:9;
2784 uint64_t sset:1;
2785 uint64_t or_dis:1;
2786 uint64_t bitmask:8;
2787 uint64_t rtt_nom:3;
2788 uint64_t reserved_22_63:42;
2789 #endif
2790 } s;
2791 struct cvmx_lmcx_wlevel_ctl_cn63xxp1 {
2792 #ifdef __BIG_ENDIAN_BITFIELD
2793 uint64_t reserved_10_63:54;
2794 uint64_t sset:1;
2795 uint64_t lanemask:9;
2796 #else
2797 uint64_t lanemask:9;
2798 uint64_t sset:1;
2799 uint64_t reserved_10_63:54;
2800 #endif
2801 } cn63xxp1;
2802 };
2803
2804 union cvmx_lmcx_wlevel_dbg {
2805 uint64_t u64;
2806 struct cvmx_lmcx_wlevel_dbg_s {
2807 #ifdef __BIG_ENDIAN_BITFIELD
2808 uint64_t reserved_12_63:52;
2809 uint64_t bitmask:8;
2810 uint64_t byte:4;
2811 #else
2812 uint64_t byte:4;
2813 uint64_t bitmask:8;
2814 uint64_t reserved_12_63:52;
2815 #endif
2816 } s;
2817 };
2818
2819 union cvmx_lmcx_wlevel_rankx {
2820 uint64_t u64;
2821 struct cvmx_lmcx_wlevel_rankx_s {
2822 #ifdef __BIG_ENDIAN_BITFIELD
2823 uint64_t reserved_47_63:17;
2824 uint64_t status:2;
2825 uint64_t byte8:5;
2826 uint64_t byte7:5;
2827 uint64_t byte6:5;
2828 uint64_t byte5:5;
2829 uint64_t byte4:5;
2830 uint64_t byte3:5;
2831 uint64_t byte2:5;
2832 uint64_t byte1:5;
2833 uint64_t byte0:5;
2834 #else
2835 uint64_t byte0:5;
2836 uint64_t byte1:5;
2837 uint64_t byte2:5;
2838 uint64_t byte3:5;
2839 uint64_t byte4:5;
2840 uint64_t byte5:5;
2841 uint64_t byte6:5;
2842 uint64_t byte7:5;
2843 uint64_t byte8:5;
2844 uint64_t status:2;
2845 uint64_t reserved_47_63:17;
2846 #endif
2847 } s;
2848 };
2849
2850 union cvmx_lmcx_wodt_ctl0 {
2851 uint64_t u64;
2852 struct cvmx_lmcx_wodt_ctl0_s {
2853 #ifdef __BIG_ENDIAN_BITFIELD
2854 uint64_t reserved_0_63:64;
2855 #else
2856 uint64_t reserved_0_63:64;
2857 #endif
2858 } s;
2859 struct cvmx_lmcx_wodt_ctl0_cn30xx {
2860 #ifdef __BIG_ENDIAN_BITFIELD
2861 uint64_t reserved_32_63:32;
2862 uint64_t wodt_d1_r1:8;
2863 uint64_t wodt_d1_r0:8;
2864 uint64_t wodt_d0_r1:8;
2865 uint64_t wodt_d0_r0:8;
2866 #else
2867 uint64_t wodt_d0_r0:8;
2868 uint64_t wodt_d0_r1:8;
2869 uint64_t wodt_d1_r0:8;
2870 uint64_t wodt_d1_r1:8;
2871 uint64_t reserved_32_63:32;
2872 #endif
2873 } cn30xx;
2874 struct cvmx_lmcx_wodt_ctl0_cn38xx {
2875 #ifdef __BIG_ENDIAN_BITFIELD
2876 uint64_t reserved_32_63:32;
2877 uint64_t wodt_hi3:4;
2878 uint64_t wodt_hi2:4;
2879 uint64_t wodt_hi1:4;
2880 uint64_t wodt_hi0:4;
2881 uint64_t wodt_lo3:4;
2882 uint64_t wodt_lo2:4;
2883 uint64_t wodt_lo1:4;
2884 uint64_t wodt_lo0:4;
2885 #else
2886 uint64_t wodt_lo0:4;
2887 uint64_t wodt_lo1:4;
2888 uint64_t wodt_lo2:4;
2889 uint64_t wodt_lo3:4;
2890 uint64_t wodt_hi0:4;
2891 uint64_t wodt_hi1:4;
2892 uint64_t wodt_hi2:4;
2893 uint64_t wodt_hi3:4;
2894 uint64_t reserved_32_63:32;
2895 #endif
2896 } cn38xx;
2897 };
2898
2899 union cvmx_lmcx_wodt_ctl1 {
2900 uint64_t u64;
2901 struct cvmx_lmcx_wodt_ctl1_s {
2902 #ifdef __BIG_ENDIAN_BITFIELD
2903 uint64_t reserved_32_63:32;
2904 uint64_t wodt_d3_r1:8;
2905 uint64_t wodt_d3_r0:8;
2906 uint64_t wodt_d2_r1:8;
2907 uint64_t wodt_d2_r0:8;
2908 #else
2909 uint64_t wodt_d2_r0:8;
2910 uint64_t wodt_d2_r1:8;
2911 uint64_t wodt_d3_r0:8;
2912 uint64_t wodt_d3_r1:8;
2913 uint64_t reserved_32_63:32;
2914 #endif
2915 } s;
2916 };
2917
2918 union cvmx_lmcx_wodt_mask {
2919 uint64_t u64;
2920 struct cvmx_lmcx_wodt_mask_s {
2921 #ifdef __BIG_ENDIAN_BITFIELD
2922 uint64_t wodt_d3_r1:8;
2923 uint64_t wodt_d3_r0:8;
2924 uint64_t wodt_d2_r1:8;
2925 uint64_t wodt_d2_r0:8;
2926 uint64_t wodt_d1_r1:8;
2927 uint64_t wodt_d1_r0:8;
2928 uint64_t wodt_d0_r1:8;
2929 uint64_t wodt_d0_r0:8;
2930 #else
2931 uint64_t wodt_d0_r0:8;
2932 uint64_t wodt_d0_r1:8;
2933 uint64_t wodt_d1_r0:8;
2934 uint64_t wodt_d1_r1:8;
2935 uint64_t wodt_d2_r0:8;
2936 uint64_t wodt_d2_r1:8;
2937 uint64_t wodt_d3_r0:8;
2938 uint64_t wodt_d3_r1:8;
2939 #endif
2940 } s;
2941 };
2942
2943 #endif