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_L2C_DEFS_H__
0029 #define __CVMX_L2C_DEFS_H__
0030
0031 #include <uapi/asm/bitfield.h>
0032
0033 #define CVMX_L2C_DBG (CVMX_ADD_IO_SEG(0x0001180080000030ull))
0034 #define CVMX_L2C_CFG (CVMX_ADD_IO_SEG(0x0001180080000000ull))
0035 #define CVMX_L2C_CTL (CVMX_ADD_IO_SEG(0x0001180080800000ull))
0036 #define CVMX_L2C_ERR_TDTX(block_id) \
0037 (CVMX_ADD_IO_SEG(0x0001180080A007E0ull) + ((block_id) & 3) * 0x40000ull)
0038 #define CVMX_L2C_ERR_TTGX(block_id) \
0039 (CVMX_ADD_IO_SEG(0x0001180080A007E8ull) + ((block_id) & 3) * 0x40000ull)
0040 #define CVMX_L2C_LCKBASE (CVMX_ADD_IO_SEG(0x0001180080000058ull))
0041 #define CVMX_L2C_LCKOFF (CVMX_ADD_IO_SEG(0x0001180080000060ull))
0042 #define CVMX_L2C_PFCTL (CVMX_ADD_IO_SEG(0x0001180080000090ull))
0043 #define CVMX_L2C_PFCX(offset) (CVMX_ADD_IO_SEG(0x0001180080000098ull) + \
0044 ((offset) & 3) * 8)
0045 #define CVMX_L2C_PFC0 CVMX_L2C_PFCX(0)
0046 #define CVMX_L2C_PFC1 CVMX_L2C_PFCX(1)
0047 #define CVMX_L2C_PFC2 CVMX_L2C_PFCX(2)
0048 #define CVMX_L2C_PFC3 CVMX_L2C_PFCX(3)
0049 #define CVMX_L2C_SPAR0 (CVMX_ADD_IO_SEG(0x0001180080000068ull))
0050 #define CVMX_L2C_SPAR1 (CVMX_ADD_IO_SEG(0x0001180080000070ull))
0051 #define CVMX_L2C_SPAR2 (CVMX_ADD_IO_SEG(0x0001180080000078ull))
0052 #define CVMX_L2C_SPAR3 (CVMX_ADD_IO_SEG(0x0001180080000080ull))
0053 #define CVMX_L2C_SPAR4 (CVMX_ADD_IO_SEG(0x0001180080000088ull))
0054 #define CVMX_L2C_TADX_PFCX(offset, block_id) \
0055 (CVMX_ADD_IO_SEG(0x0001180080A00400ull) + (((offset) & 3) + \
0056 ((block_id) & 7) * 0x8000ull) * 8)
0057 #define CVMX_L2C_TADX_PFC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00400ull) + \
0058 ((block_id) & 3) * 0x40000ull)
0059 #define CVMX_L2C_TADX_PFC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00408ull) + \
0060 ((block_id) & 3) * 0x40000ull)
0061 #define CVMX_L2C_TADX_PFC2(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00410ull) + \
0062 ((block_id) & 3) * 0x40000ull)
0063 #define CVMX_L2C_TADX_PFC3(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00418ull) + \
0064 ((block_id) & 3) * 0x40000ull)
0065 #define CVMX_L2C_TADX_PRF(offset) (CVMX_ADD_IO_SEG(0x0001180080A00008ull) + \
0066 ((offset) & 7) * 0x40000ull)
0067 #define CVMX_L2C_TADX_TAG(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00010ull) + \
0068 ((block_id) & 3) * 0x40000ull)
0069 #define CVMX_L2C_WPAR_IOBX(offset) (CVMX_ADD_IO_SEG(0x0001180080840200ull) + \
0070 ((offset) & 1) * 8)
0071 #define CVMX_L2C_WPAR_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080840000ull) + \
0072 ((offset) & 31) * 8)
0073
0074
0075 union cvmx_l2c_err_tdtx {
0076 uint64_t u64;
0077 struct cvmx_l2c_err_tdtx_s {
0078 __BITFIELD_FIELD(uint64_t dbe:1,
0079 __BITFIELD_FIELD(uint64_t sbe:1,
0080 __BITFIELD_FIELD(uint64_t vdbe:1,
0081 __BITFIELD_FIELD(uint64_t vsbe:1,
0082 __BITFIELD_FIELD(uint64_t syn:10,
0083 __BITFIELD_FIELD(uint64_t reserved_22_49:28,
0084 __BITFIELD_FIELD(uint64_t wayidx:18,
0085 __BITFIELD_FIELD(uint64_t reserved_2_3:2,
0086 __BITFIELD_FIELD(uint64_t type:2,
0087 ;)))))))))
0088 } s;
0089 };
0090
0091 union cvmx_l2c_err_ttgx {
0092 uint64_t u64;
0093 struct cvmx_l2c_err_ttgx_s {
0094 __BITFIELD_FIELD(uint64_t dbe:1,
0095 __BITFIELD_FIELD(uint64_t sbe:1,
0096 __BITFIELD_FIELD(uint64_t noway:1,
0097 __BITFIELD_FIELD(uint64_t reserved_56_60:5,
0098 __BITFIELD_FIELD(uint64_t syn:6,
0099 __BITFIELD_FIELD(uint64_t reserved_22_49:28,
0100 __BITFIELD_FIELD(uint64_t wayidx:15,
0101 __BITFIELD_FIELD(uint64_t reserved_2_6:5,
0102 __BITFIELD_FIELD(uint64_t type:2,
0103 ;)))))))))
0104 } s;
0105 };
0106
0107 union cvmx_l2c_cfg {
0108 uint64_t u64;
0109 struct cvmx_l2c_cfg_s {
0110 __BITFIELD_FIELD(uint64_t reserved_20_63:44,
0111 __BITFIELD_FIELD(uint64_t bstrun:1,
0112 __BITFIELD_FIELD(uint64_t lbist:1,
0113 __BITFIELD_FIELD(uint64_t xor_bank:1,
0114 __BITFIELD_FIELD(uint64_t dpres1:1,
0115 __BITFIELD_FIELD(uint64_t dpres0:1,
0116 __BITFIELD_FIELD(uint64_t dfill_dis:1,
0117 __BITFIELD_FIELD(uint64_t fpexp:4,
0118 __BITFIELD_FIELD(uint64_t fpempty:1,
0119 __BITFIELD_FIELD(uint64_t fpen:1,
0120 __BITFIELD_FIELD(uint64_t idxalias:1,
0121 __BITFIELD_FIELD(uint64_t mwf_crd:4,
0122 __BITFIELD_FIELD(uint64_t rsp_arb_mode:1,
0123 __BITFIELD_FIELD(uint64_t rfb_arb_mode:1,
0124 __BITFIELD_FIELD(uint64_t lrf_arb_mode:1,
0125 ;)))))))))))))))
0126 } s;
0127 };
0128
0129 union cvmx_l2c_ctl {
0130 uint64_t u64;
0131 struct cvmx_l2c_ctl_s {
0132 __BITFIELD_FIELD(uint64_t reserved_30_63:34,
0133 __BITFIELD_FIELD(uint64_t sepcmt:1,
0134 __BITFIELD_FIELD(uint64_t rdf_fast:1,
0135 __BITFIELD_FIELD(uint64_t disstgl2i:1,
0136 __BITFIELD_FIELD(uint64_t l2dfsbe:1,
0137 __BITFIELD_FIELD(uint64_t l2dfdbe:1,
0138 __BITFIELD_FIELD(uint64_t discclk:1,
0139 __BITFIELD_FIELD(uint64_t maxvab:4,
0140 __BITFIELD_FIELD(uint64_t maxlfb:4,
0141 __BITFIELD_FIELD(uint64_t rsp_arb_mode:1,
0142 __BITFIELD_FIELD(uint64_t xmc_arb_mode:1,
0143 __BITFIELD_FIELD(uint64_t ef_ena:1,
0144 __BITFIELD_FIELD(uint64_t ef_cnt:7,
0145 __BITFIELD_FIELD(uint64_t vab_thresh:4,
0146 __BITFIELD_FIELD(uint64_t disecc:1,
0147 __BITFIELD_FIELD(uint64_t disidxalias:1,
0148 ;))))))))))))))))
0149 } s;
0150 };
0151
0152 union cvmx_l2c_dbg {
0153 uint64_t u64;
0154 struct cvmx_l2c_dbg_s {
0155 __BITFIELD_FIELD(uint64_t reserved_15_63:49,
0156 __BITFIELD_FIELD(uint64_t lfb_enum:4,
0157 __BITFIELD_FIELD(uint64_t lfb_dmp:1,
0158 __BITFIELD_FIELD(uint64_t ppnum:4,
0159 __BITFIELD_FIELD(uint64_t set:3,
0160 __BITFIELD_FIELD(uint64_t finv:1,
0161 __BITFIELD_FIELD(uint64_t l2d:1,
0162 __BITFIELD_FIELD(uint64_t l2t:1,
0163 ;))))))))
0164 } s;
0165 };
0166
0167 union cvmx_l2c_pfctl {
0168 uint64_t u64;
0169 struct cvmx_l2c_pfctl_s {
0170 __BITFIELD_FIELD(uint64_t reserved_36_63:28,
0171 __BITFIELD_FIELD(uint64_t cnt3rdclr:1,
0172 __BITFIELD_FIELD(uint64_t cnt2rdclr:1,
0173 __BITFIELD_FIELD(uint64_t cnt1rdclr:1,
0174 __BITFIELD_FIELD(uint64_t cnt0rdclr:1,
0175 __BITFIELD_FIELD(uint64_t cnt3ena:1,
0176 __BITFIELD_FIELD(uint64_t cnt3clr:1,
0177 __BITFIELD_FIELD(uint64_t cnt3sel:6,
0178 __BITFIELD_FIELD(uint64_t cnt2ena:1,
0179 __BITFIELD_FIELD(uint64_t cnt2clr:1,
0180 __BITFIELD_FIELD(uint64_t cnt2sel:6,
0181 __BITFIELD_FIELD(uint64_t cnt1ena:1,
0182 __BITFIELD_FIELD(uint64_t cnt1clr:1,
0183 __BITFIELD_FIELD(uint64_t cnt1sel:6,
0184 __BITFIELD_FIELD(uint64_t cnt0ena:1,
0185 __BITFIELD_FIELD(uint64_t cnt0clr:1,
0186 __BITFIELD_FIELD(uint64_t cnt0sel:6,
0187 ;)))))))))))))))))
0188 } s;
0189 };
0190
0191 union cvmx_l2c_tadx_prf {
0192 uint64_t u64;
0193 struct cvmx_l2c_tadx_prf_s {
0194 __BITFIELD_FIELD(uint64_t reserved_32_63:32,
0195 __BITFIELD_FIELD(uint64_t cnt3sel:8,
0196 __BITFIELD_FIELD(uint64_t cnt2sel:8,
0197 __BITFIELD_FIELD(uint64_t cnt1sel:8,
0198 __BITFIELD_FIELD(uint64_t cnt0sel:8,
0199 ;)))))
0200 } s;
0201 };
0202
0203 union cvmx_l2c_tadx_tag {
0204 uint64_t u64;
0205 struct cvmx_l2c_tadx_tag_s {
0206 __BITFIELD_FIELD(uint64_t reserved_46_63:18,
0207 __BITFIELD_FIELD(uint64_t ecc:6,
0208 __BITFIELD_FIELD(uint64_t reserved_36_39:4,
0209 __BITFIELD_FIELD(uint64_t tag:19,
0210 __BITFIELD_FIELD(uint64_t reserved_4_16:13,
0211 __BITFIELD_FIELD(uint64_t use:1,
0212 __BITFIELD_FIELD(uint64_t valid:1,
0213 __BITFIELD_FIELD(uint64_t dirty:1,
0214 __BITFIELD_FIELD(uint64_t lock:1,
0215 ;)))))))))
0216 } s;
0217 };
0218
0219 union cvmx_l2c_lckbase {
0220 uint64_t u64;
0221 struct cvmx_l2c_lckbase_s {
0222 __BITFIELD_FIELD(uint64_t reserved_31_63:33,
0223 __BITFIELD_FIELD(uint64_t lck_base:27,
0224 __BITFIELD_FIELD(uint64_t reserved_1_3:3,
0225 __BITFIELD_FIELD(uint64_t lck_ena:1,
0226 ;))))
0227 } s;
0228 };
0229
0230 union cvmx_l2c_lckoff {
0231 uint64_t u64;
0232 struct cvmx_l2c_lckoff_s {
0233 __BITFIELD_FIELD(uint64_t reserved_10_63:54,
0234 __BITFIELD_FIELD(uint64_t lck_offset:10,
0235 ;))
0236 } s;
0237 };
0238
0239 #endif