1 1.14 andvar /* $NetBSD: mipsNN.h,v 1.14 2023/05/06 21:53:26 andvar Exp $ */ 2 1.1 simonb 3 1.1 simonb /* 4 1.1 simonb * Copyright 2000, 2001 5 1.1 simonb * Broadcom Corporation. All rights reserved. 6 1.3 cgd * 7 1.1 simonb * This software is furnished under license and may be used and copied only 8 1.1 simonb * in accordance with the following terms and conditions. Subject to these 9 1.1 simonb * conditions, you may download, copy, install, use, modify and distribute 10 1.1 simonb * modified or unmodified copies of this software in source and/or binary 11 1.1 simonb * form. No title or ownership is transferred hereby. 12 1.3 cgd * 13 1.1 simonb * 1) Any source code used, modified or distributed must reproduce and 14 1.1 simonb * retain this copyright notice and list of conditions as they appear in 15 1.1 simonb * the source file. 16 1.3 cgd * 17 1.1 simonb * 2) No right is granted to use any trade name, trademark, or logo of 18 1.3 cgd * Broadcom Corporation. The "Broadcom Corporation" name may not be 19 1.3 cgd * used to endorse or promote products derived from this software 20 1.3 cgd * without the prior written permission of Broadcom Corporation. 21 1.3 cgd * 22 1.1 simonb * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR IMPLIED 23 1.1 simonb * WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF 24 1.1 simonb * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR 25 1.1 simonb * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM BE LIABLE 26 1.1 simonb * FOR ANY DAMAGES WHATSOEVER, AND IN PARTICULAR, BROADCOM SHALL NOT BE 27 1.1 simonb * LIABLE FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28 1.1 simonb * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29 1.1 simonb * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 30 1.1 simonb * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 31 1.1 simonb * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 32 1.1 simonb * OR OTHERWISE), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 1.1 simonb */ 34 1.1 simonb 35 1.1 simonb /* 36 1.1 simonb * Values related to the MIPS32/MIPS64 Privileged Resource Architecture. 37 1.1 simonb */ 38 1.1 simonb 39 1.1 simonb #define _MIPSNN_SHIFT(reg) __MIPSNN_SHIFT(reg) 40 1.1 simonb #define __MIPSNN_SHIFT(reg) MIPSNN_ ## reg ## _SHIFT 41 1.1 simonb #define _MIPSNN_MASK(reg) __MIPSNN_MASK(reg) 42 1.1 simonb #define __MIPSNN_MASK(reg) MIPSNN_ ## reg ## _MASK 43 1.1 simonb 44 1.1 simonb #define MIPSNN_GET(reg, x) \ 45 1.1 simonb ((unsigned)((x) & _MIPSNN_MASK(reg)) >> _MIPSNN_SHIFT(reg)) 46 1.1 simonb #define MIPSNN_PUT(reg, val) \ 47 1.1 simonb (((x) << _MIPSNN_SHIFT(reg)) & _MIPSNN_MASK(reg)) 48 1.1 simonb 49 1.1 simonb /* 50 1.1 simonb * Values in Configuration Register (CP0 Register 16, Select 0) 51 1.1 simonb */ 52 1.1 simonb 53 1.1 simonb /* "M" (R): Configuration Register 1 present if set. Defined as always set. */ 54 1.1 simonb #define MIPSNN_CFG_M 0x80000000 55 1.1 simonb 56 1.1 simonb /* Reserved for CPU implementations. */ 57 1.1 simonb // reserved 0x7fff0000 58 1.1 simonb 59 1.1 simonb /* "BE" (R): Big endian if set, little endian if clear. */ 60 1.1 simonb #define MIPSNN_CFG_BE 0x00008000 61 1.1 simonb 62 1.1 simonb /* "AT" (R): architecture type implemented by processor */ 63 1.1 simonb #define MIPSNN_CFG_AT_MASK 0x00006000 64 1.1 simonb #define MIPSNN_CFG_AT_SHIFT 13 65 1.1 simonb 66 1.1 simonb #define MIPSNN_CFG_AT_MIPS32 0 /* MIPS32 */ 67 1.1 simonb #define MIPSNN_CFG_AT_MIPS64S 1 /* MIPS64S */ 68 1.1 simonb #define MIPSNN_CFG_AT_MIPS64 2 /* MIPS64 */ 69 1.1 simonb // reserved 3 70 1.1 simonb 71 1.1 simonb /* "AR" (R): Architecture revision level implemented by proc. */ 72 1.1 simonb #define MIPSNN_CFG_AR_MASK 0x00001c00 73 1.1 simonb #define MIPSNN_CFG_AR_SHIFT 10 74 1.1 simonb 75 1.1 simonb #define MIPSNN_CFG_AR_REV1 0 /* Revision 1 */ 76 1.4 gdamore #define MIPSNN_CFG_AR_REV2 1 /* Revision 2 */ 77 1.1 simonb // reserved other values 78 1.1 simonb 79 1.1 simonb /* "MT" (R): MMU type implemented by processor */ 80 1.1 simonb #define MIPSNN_CFG_MT_MASK 0x00000380 81 1.1 simonb #define MIPSNN_CFG_MT_SHIFT 7 82 1.1 simonb 83 1.1 simonb #define MIPSNN_CFG_MT_NONE 0 /* No MMU */ 84 1.1 simonb #define MIPSNN_CFG_MT_TLB 1 /* Std TLB */ 85 1.1 simonb #define MIPSNN_CFG_MT_BAT 2 /* Std BAT */ 86 1.1 simonb #define MIPSNN_CFG_MT_FIXED 3 /* Std Fixed mapping */ 87 1.1 simonb // reserved other values 88 1.1 simonb 89 1.1 simonb /* Reserved. Write as 0, reads as 0. */ 90 1.2 simonb // reserved 0x00000070 91 1.2 simonb 92 1.2 simonb /* "M" (R): Virtual instruction cache if set. */ 93 1.2 simonb #define MIPSNN_CFG_VI 0x00000008 94 1.1 simonb 95 1.1 simonb /* "K0" (RW): Kseg0 coherency algorithm. (values are TLB_ATTRs) */ 96 1.1 simonb #define MIPSNN_CFG_K0_MASK 0x00000007 97 1.1 simonb #define MIPSNN_CFG_K0_SHIFT 0 98 1.1 simonb 99 1.1 simonb 100 1.1 simonb /* 101 1.1 simonb * Values in Configuration Register 1 (CP0 Register 16, Select 1) 102 1.1 simonb */ 103 1.1 simonb 104 1.4 gdamore /* M (R): Configuration Register 2 present. */ 105 1.4 gdamore #define MIPSNN_CFG1_M 0x80000000 106 1.1 simonb 107 1.1 simonb /* MS (R): Number of TLB entries - 1. */ 108 1.1 simonb #define MIPSNN_CFG1_MS_MASK 0x7e000000 109 1.1 simonb #define MIPSNN_CFG1_MS_SHIFT 25 110 1.1 simonb 111 1.1 simonb #define MIPSNN_CFG1_MS(x) (MIPSNN_GET(CFG1_MS, (x)) + 1) 112 1.1 simonb 113 1.1 simonb /* "IS" (R): (Primary) I-cache sets per way. */ 114 1.1 simonb #define MIPSNN_CFG1_IS_MASK 0x01c00000 115 1.1 simonb #define MIPSNN_CFG1_IS_SHIFT 22 116 1.1 simonb 117 1.1 simonb #define MIPSNN_CFG1_IS_RSVD 7 /* rsvd value, otherwise: */ 118 1.1 simonb #define MIPSNN_CFG1_IS(x) (64 << MIPSNN_GET(CFG1_IS, (x))) 119 1.1 simonb 120 1.1 simonb /* "IL" (R): (Primary) I-cache line size. */ 121 1.1 simonb #define MIPSNN_CFG1_IL_MASK 0x00380000 122 1.1 simonb #define MIPSNN_CFG1_IL_SHIFT 19 123 1.1 simonb 124 1.1 simonb #define MIPSNN_CFG1_IL_NONE 0 /* No I-cache, */ 125 1.1 simonb #define MIPSNN_CFG1_IL_RSVD 7 /* rsvd value, otherwise: */ 126 1.1 simonb #define MIPSNN_CFG1_IL(x) (2 << MIPSNN_GET(CFG1_IL, (x))) 127 1.1 simonb 128 1.1 simonb /* "IA" (R): (Primary) I-cache associativity (ways - 1). */ 129 1.1 simonb #define MIPSNN_CFG1_IA_MASK 0x00070000 130 1.1 simonb #define MIPSNN_CFG1_IA_SHIFT 16 131 1.1 simonb 132 1.1 simonb #define MIPSNN_CFG1_IA(x) MIPSNN_GET(CFG1_IA, (x)) 133 1.1 simonb 134 1.1 simonb /* "DS" (R): (Primary) D-cache sets per way. */ 135 1.1 simonb #define MIPSNN_CFG1_DS_MASK 0x0000e000 136 1.1 simonb #define MIPSNN_CFG1_DS_SHIFT 13 137 1.1 simonb 138 1.1 simonb #define MIPSNN_CFG1_DS_RSVD 7 /* rsvd value, otherwise: */ 139 1.1 simonb #define MIPSNN_CFG1_DS(x) (64 << MIPSNN_GET(CFG1_DS, (x))) 140 1.1 simonb 141 1.1 simonb /* "DL" (R): (Primary) D-cache line size. */ 142 1.1 simonb #define MIPSNN_CFG1_DL_MASK 0x00001c00 143 1.1 simonb #define MIPSNN_CFG1_DL_SHIFT 10 144 1.1 simonb 145 1.1 simonb #define MIPSNN_CFG1_DL_NONE 0 /* No D-cache, */ 146 1.1 simonb #define MIPSNN_CFG1_DL_RSVD 7 /* rsvd value, otherwise: */ 147 1.1 simonb #define MIPSNN_CFG1_DL(x) (2 << MIPSNN_GET(CFG1_DL, (x))) 148 1.1 simonb 149 1.1 simonb /* "DA" (R): (Primary) D-cache associativity (ways - 1). */ 150 1.1 simonb #define MIPSNN_CFG1_DA_MASK 0x00000380 151 1.1 simonb #define MIPSNN_CFG1_DA_SHIFT 7 152 1.1 simonb 153 1.1 simonb #define MIPSNN_CFG1_DA(x) MIPSNN_GET(CFG1_DA, (x)) 154 1.1 simonb 155 1.4 gdamore /* "C2" (R): Coprocessor 2 implemented if set. */ 156 1.9 simonb #define MIPSNN_CFG1_C2 0x00000040 157 1.4 gdamore 158 1.4 gdamore /* "MD" (R): MDMX ASE implemented if set. */ 159 1.9 simonb #define MIPSNN_CFG1_MD 0x00000020 160 1.1 simonb 161 1.1 simonb /* "PC" (R): Performance Counters implemented if set. */ 162 1.1 simonb #define MIPSNN_CFG1_PC 0x00000010 163 1.1 simonb 164 1.1 simonb /* "WR" (R): Watch registers implemented if set. */ 165 1.1 simonb #define MIPSNN_CFG1_WR 0x00000008 166 1.1 simonb 167 1.1 simonb /* "CA" (R): Code compressiong (MIPS16) implemented if set. */ 168 1.1 simonb #define MIPSNN_CFG1_CA 0x00000004 169 1.1 simonb 170 1.1 simonb /* "EP" (R): EJTAG implemented if set. */ 171 1.1 simonb #define MIPSNN_CFG1_EP 0x00000002 172 1.1 simonb 173 1.1 simonb /* "FP" (R): FPU implemented if set. */ 174 1.1 simonb #define MIPSNN_CFG1_FP 0x00000001 175 1.4 gdamore 176 1.4 gdamore /* 177 1.4 gdamore * Values in Configuration Register 2 (CP0 Register 16, Select 2) 178 1.4 gdamore */ 179 1.4 gdamore 180 1.4 gdamore /* "M" (R): Configuration Register 3 present. */ 181 1.4 gdamore #define MIPSNN_CFG2_M 0x80000000 182 1.4 gdamore 183 1.4 gdamore /* "TU" (RW): Implementation specific tertiary cache status and control. */ 184 1.4 gdamore #define MIPSNN_CFG2_TU_MASK 0x70000000 185 1.4 gdamore #define MIPSNN_CFG2_TU_SHIFT 28 186 1.4 gdamore 187 1.4 gdamore /* "TS" (R): Tertiary cache sets per way. */ 188 1.4 gdamore #define MIPSNN_CFG2_TS_MASK 0x07000000 189 1.4 gdamore #define MIPSNN_CFG2_TS_SHIFT 24 190 1.4 gdamore 191 1.4 gdamore #define MIPSNN_CFG2_TS(x) (64 << MIPSNN_GET(CFG2_TS, (x))) 192 1.4 gdamore 193 1.4 gdamore /* "TL" (R): Tertiary cache line size. */ 194 1.4 gdamore #define MIPSNN_CFG2_TL_MASK 0x00700000 195 1.4 gdamore #define MIPSNN_CFG2_TL_SHIFT 20 196 1.4 gdamore 197 1.4 gdamore #define MIPSNN_CFG2_TL_NONE 0 /* No Tertiary cache */ 198 1.4 gdamore #define MIPSNN_CFG2_TL(x) (2 << MIPSNN_GET(CFG2_TL, (x))) 199 1.4 gdamore 200 1.4 gdamore /* "TA" (R): Tertiary cache associativity (ways - 1). */ 201 1.4 gdamore #define MIPSNN_CFG2_TA_MASK 0x00070000 202 1.4 gdamore #define MIPSNN_CFG2_TA_SHIFT 16 203 1.4 gdamore 204 1.4 gdamore #define MIPSNN_CFG2_TA(x) MIPSNN_GET(CFG2_TA, (x)) 205 1.4 gdamore 206 1.4 gdamore /* "SU" (RW): Implementation specific secondary cache status and control. */ 207 1.4 gdamore #define MIPSNN_CFG2_SU_MASK 0x0000f000 208 1.4 gdamore #define MIPSNN_CFG2_SU_SHIFT 12 209 1.4 gdamore 210 1.4 gdamore /* "SS" (R): Secondary cache sets per way. */ 211 1.4 gdamore #define MIPSNN_CFG2_SS_MASK 0x00000700 212 1.4 gdamore #define MIPSNN_CFG2_SS_SHIFT 8 213 1.4 gdamore 214 1.4 gdamore #define MIPSNN_CFG2_SS(x) (64 << MIPSNN_GET(CFG2_SS, (x))) 215 1.4 gdamore 216 1.4 gdamore /* "SL" (R): Secdonary cache line size. */ 217 1.4 gdamore #define MIPSNN_CFG2_SL_MASK 0x00000070 218 1.4 gdamore #define MIPSNN_CFG2_SL_SHIFT 4 219 1.4 gdamore 220 1.4 gdamore #define MIPSNN_CFG2_SL_NONE 0 /* No Secondary cache */ 221 1.4 gdamore #define MIPSNN_CFG2_SL(x) (2 << MIPSNN_GET(CFG2_SL, (x))) 222 1.4 gdamore 223 1.4 gdamore /* "SA" (R): Secondary cache associativity (ways - 1). */ 224 1.4 gdamore #define MIPSNN_CFG2_SA_MASK 0x00000007 225 1.4 gdamore #define MIPSNN_CFG2_SA_SHIFT 0 226 1.4 gdamore 227 1.4 gdamore #define MIPSNN_CFG2_SA(x) MIPSNN_GET(CFG2_SA, (x)) 228 1.4 gdamore 229 1.4 gdamore /* 230 1.4 gdamore * Values in Configuration Register 3 (CP0 Register 16, Select 3) 231 1.4 gdamore */ 232 1.4 gdamore 233 1.4 gdamore /* "M" (R): Configuration Register 4 present. */ 234 1.4 gdamore #define MIPSNN_CFG3_M 0x80000000 235 1.4 gdamore 236 1.6 matt /* "BPG" (R): Big Pages feature is implemented (PageMask is 64-bits wide). */ 237 1.6 matt #define MIPSNN_CFG3_BPG 0x40000000 238 1.6 matt 239 1.6 matt /* "CMGCR" (R): Coherency Manager memory-mapped Global Configuration Register Space is implemented. */ 240 1.6 matt #define MIPSNN_CFG3_CMGCR 0x20000000 241 1.6 matt 242 1.6 matt /* "IPLW" (R): Width of Status[IPL] and Cause[RIPL] fields. */ 243 1.6 matt #define MIPSNN_CFG3_IPLW_MASK 0x00600000 244 1.6 matt #define MIPSNN_CFG3_IPLW_SHIFT 21 245 1.6 matt 246 1.6 matt #define MIPSNN_CFG3_IPLW_6BITS 0 /* IPL and RIPL fields are 6-bits in width. */ 247 1.6 matt #define MIPSNN_CFG3_IPLW_8BITS 1 /* IPL and RIPL fields are 8-bits in width. */ 248 1.6 matt // reserved other values 249 1.6 matt 250 1.6 matt #define MIPSNN_CFG3_MMAR_MASK 0x001c0000 251 1.6 matt #define MIPSNN_CFG3_MMAR_SHIFT 18 252 1.6 matt 253 1.6 matt #define MIPSNN_CFG3_MMAR_REV1 0 /* Revision 1 */ 254 1.6 matt // reserved other values 255 1.6 matt 256 1.6 matt /* "MCU" (R): MCU ASE extension present. */ 257 1.6 matt #define MIPSNN_CFG3_MCU 0x00020000 258 1.6 matt 259 1.10 simonb /* "ISAOnExc" (R/RW): ISA used on exception. */ 260 1.6 matt #define MIPSNN_CFG3_ISAOnExc 0x00010000 /* microMIPS used on entrance to exception vector */ 261 1.6 matt 262 1.6 matt /* "ISA" (R): Instruction Set Availability. */ 263 1.6 matt #define MIPSNN_CFG3_ISA_MASK 0x0000c000 264 1.6 matt #define MIPSNN_CFG3_ISA_SHIFT 14 265 1.6 matt 266 1.6 matt #define MIPSNN_CFG3_ISA_MIPS64 0 /* only MIPS64 */ 267 1.6 matt #define MIPSNN_CFG3_ISA_microMIPS64 1 /* only microMIPS64 */ 268 1.6 matt #define MIPSNN_CFG3_ISA_MIPS64_OOR 2 /* both, MIPS64 out of reset */ 269 1.6 matt #define MIPSNN_CFG3_ISA_microMIPS64_OOR 3 /* both, microMIPS64 OOR */ 270 1.6 matt 271 1.8 simonb /* "ULRI" (R): UserLocal register is implemented. */ 272 1.8 simonb #define MIPSNN_CFG3_ULRI 0x00002000 273 1.8 simonb 274 1.5 matt /* "DSP2P" (R): DSP v2 ASE extension present. */ 275 1.5 matt #define MIPSNN_CFG3_DSP2P 0x00000800 276 1.5 matt 277 1.5 matt /* "DSPP" (R): DSP ASE extension present. */ 278 1.4 gdamore #define MIPSNN_CFG3_DSPP 0x00000400 279 1.4 gdamore 280 1.4 gdamore /* "LPA" (R): Large physical addresses implemented. (MIPS64 rev 2 only). */ 281 1.4 gdamore #define MIPSNN_CFG3_LPA 0x00000080 282 1.4 gdamore 283 1.4 gdamore /* "VEIC" (R): External interrupt controller present. (rev 2 only). */ 284 1.4 gdamore #define MIPSNN_CFG3_VEIC 0x00000040 285 1.4 gdamore 286 1.4 gdamore /* "VINT" (R): Vectored interrupts implemented. (rev 2 only). */ 287 1.4 gdamore #define MIPSNN_CFG3_VINT 0x00000020 288 1.4 gdamore 289 1.4 gdamore /* "SP" (R): Small (1K) page support implemented. (rev 2 only). */ 290 1.4 gdamore #define MIPSNN_CFG3_SP 0x00000010 291 1.4 gdamore 292 1.4 gdamore /* "MT" (R): MT ASE extension implemented. */ 293 1.4 gdamore #define MIPSNN_CFG3_MT 0x00000004 294 1.4 gdamore 295 1.4 gdamore /* "SM" (R): SmartMIPS ASE extension implemented. */ 296 1.4 gdamore #define MIPSNN_CFG3_SM 0x00000002 297 1.4 gdamore 298 1.4 gdamore /* "TL" (R): Trace Logic implemented. */ 299 1.4 gdamore #define MIPSNN_CFG3_TL 0x00000001 300 1.6 matt 301 1.6 matt /* 302 1.10 simonb * Values in Configuration Register 4 (CP0 Register 16, Select 4) 303 1.10 simonb */ 304 1.10 simonb 305 1.10 simonb /* "M" (R): Configuration Register 5 present. */ 306 1.10 simonb #define MIPSNN_CFG4_M __BIT(31) 307 1.10 simonb 308 1.10 simonb /* "IE" (R): TLB invalidate instruction support/configuration. */ 309 1.10 simonb #define MIPSNN_CFG4_IE __BITS(30,29) 310 1.10 simonb 311 1.10 simonb /* "AE" (R): Extend EntryHi[ASID] to 10 bits. */ 312 1.10 simonb #define MIPSNN_CFG4_AE __BIT(28) 313 1.10 simonb 314 1.10 simonb /* "VTLBSizeExt" (R): TLB invalidate instruction support/configuration. */ 315 1.10 simonb #define MIPSNN_CFG4_VTLB_SE __BITS(27,24) 316 1.10 simonb 317 1.10 simonb /* "KScrExist" (R): Number of kernel mode scratch registers available. */ 318 1.10 simonb #define MIPSNN_CFG4_KSCR_EXIST __BITS(23,16) 319 1.10 simonb 320 1.10 simonb /* "MMUExtDef" (R): MMU extension definition. */ 321 1.10 simonb #define MIPSNN_CFG4_MMU_EXT_DEF __BITS(15,14) 322 1.10 simonb #define MIPSNN_CFG4_MMU_EXT_DEF_MMU 1 323 1.10 simonb #define MIPSNN_CFG4_MMU_EXT_DEF_FLTB 2 324 1.10 simonb #define MIPSNN_CFG4_MMU_EXT_DEF_VTLB 3 325 1.10 simonb 326 1.10 simonb /* "MMUSizeExt" (R): Extension of Config1[MMUSize-1] field. */ 327 1.11 simonb #define MIPSNN_CFG4_MMU_SIZE_EXT __BITS(7,0) 328 1.10 simonb 329 1.10 simonb /* "FTLBPageSize" (R/RW): Indicates the Page Size of the FTLB Array Entries. */ 330 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE __BITS(10,8) 331 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_1K 0 332 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_4K 1 333 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_16K 2 334 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_64K 3 335 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_256K 4 336 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_1G 5 337 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_PAGE_SIZE_4G 6 338 1.10 simonb /* "FTLBWays" (R): Indicates the Set Associativity of the FTLB Array. */ 339 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS __BITS(7,4) 340 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_2 0 341 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_3 1 342 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_4 2 343 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_5 3 344 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_6 4 345 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_7 5 346 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_WAYS_8 6 347 1.10 simonb /* "FTLBSets" (R): Indicates the number of Set per Way within the FTLB Array. */ 348 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS __BITS(3,0) 349 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_1 0 350 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_2 1 351 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_4 2 352 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_8 3 353 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_16 4 354 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_32 5 355 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_64 6 356 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_128 7 357 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_256 8 358 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_512 9 359 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_1024 10 360 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_2048 11 361 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_4096 12 362 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_8192 13 363 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_16384 14 364 1.10 simonb #define MIPSNN_CFG4_FTLB_FTLB_SETS_32768 15 365 1.10 simonb 366 1.10 simonb /* "MMUSizeExt" (R): Extension of Config1[MMUSize-1] field. */ 367 1.10 simonb #define MIPSNN_CFG4_FVTLB_VTLB_SIZE_EXT __BITS(27,24) 368 1.10 simonb /* "FTLBPageSize" (R/RW): Indicates the Page Size of the FTLB Array Entries. */ 369 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE __BITS(12,8) 370 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_1K 0 371 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_4K 1 372 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_16K 2 373 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_64K 3 374 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_256K 4 375 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_1M 5 376 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_4M 6 377 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_16M 7 378 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_64M 8 379 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_256M 9 380 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_1G 10 381 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_4G 11 382 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_16G 12 383 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_64G 13 384 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_256G 14 385 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_1T 15 386 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_4T 16 387 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_16T 17 388 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_64T 18 389 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_PAGE_SIZE_256T 19 390 1.10 simonb /* "FTLBWays" (R): Indicates the Set Associativity of the FTLB Array. */ 391 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS __BITS(7,4) 392 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_2 0 393 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_3 1 394 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_4 2 395 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_5 3 396 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_6 4 397 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_7 5 398 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_WAYS_8 6 399 1.10 simonb /* "FTLBSets" (R): Indicates the number of Set per Way within the FTLB Array. */ 400 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS __BITS(3,0) 401 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_1 0 402 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_2 1 403 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_4 2 404 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_8 3 405 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_16 4 406 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_32 5 407 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_64 6 408 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_128 7 409 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_256 8 410 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_512 9 411 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_1024 10 412 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_2048 11 413 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_4096 12 414 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_8192 13 415 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_16384 14 416 1.10 simonb #define MIPSNN_CFG4_FVTLB_FTLB_SETS_32768 15 417 1.10 simonb 418 1.10 simonb 419 1.10 simonb /* 420 1.10 simonb * Values in Configuration Register 5 (CP0 Register 16, Select 5) 421 1.10 simonb */ 422 1.10 simonb 423 1.10 simonb /* "M" (R): Reserved for undefined configuration present. */ 424 1.10 simonb #define MIPSNN_CFG5_M __BIT(31) 425 1.10 simonb 426 1.10 simonb /* "K" (RW): Enable/disable Config K0/Ku/K23 if segmentation is implemented. */ 427 1.10 simonb #define MIPSNN_CFG5_K __BIT(30) 428 1.10 simonb 429 1.10 simonb /* "CV" (RW): Cache Error Exception Vector control disable. */ 430 1.10 simonb #define MIPSNN_CFG5_CV __BIT(29) 431 1.10 simonb 432 1.10 simonb /* "EVA" (R): Enhanced Virtual Addressing instructions implemented. */ 433 1.10 simonb #define MIPSNN_CFG5_EVA __BIT(28) 434 1.10 simonb 435 1.10 simonb /* "MSAEn" (RW): MIPS SIMD Architecture (MSA) enable. */ 436 1.10 simonb #define MIPSNN_CFG5_MSAEn __BIT(27) 437 1.10 simonb 438 1.10 simonb /* "XNP" (R): Extended LL/SC instructions non present. */ 439 1.10 simonb #define MIPSNN_CFG5_XNP __BIT(13) 440 1.10 simonb 441 1.10 simonb /* "DEC" (R): Dual Endian Capability. */ 442 1.10 simonb #define MIPSNN_CFG5_DEC __BIT(11) 443 1.10 simonb 444 1.10 simonb /* "L2C" (R): Indicates presense of COP0 Config2. */ 445 1.10 simonb #define MIPSNN_CFG5_L2C __BIT(10) 446 1.10 simonb 447 1.10 simonb /* "UFE" (RW): Enable for user mode access to Config5[FRE]. */ 448 1.10 simonb #define MIPSNN_CFG5_UFE __BIT(9) 449 1.10 simonb 450 1.10 simonb /* "FRE" (RW): Enable for user mode to emulate Status[FR]=0 handling. */ 451 1.10 simonb #define MIPSNN_CFG5_FRE __BIT(8) 452 1.10 simonb 453 1.10 simonb /* "VP" (R): Virtual Processor - multi-threading features supported. */ 454 1.10 simonb #define MIPSNN_CFG5_VP __BIT(7) 455 1.10 simonb 456 1.10 simonb /* "SBRI" (RW): SDBBP instruction Reserved Instruction control. */ 457 1.10 simonb #define MIPSNN_CFG5_SBRI __BIT(6) 458 1.10 simonb 459 1.10 simonb /* "MVH" (R): Move To/From High COP0 (MTHCO/MFHCO) instructions implemented. */ 460 1.10 simonb #define MIPSNN_CFG5_MVH __BIT(5) 461 1.10 simonb 462 1.10 simonb /* "LLB" (R): Load-Linked Bit (LLB) is present in COP0 LLAddr. */ 463 1.10 simonb #define MIPSNN_CFG5_LLB __BIT(4) 464 1.10 simonb 465 1.14 andvar /* "MRP" (R): COP0 Memory Accessibility Attributes Registers are present. */ 466 1.10 simonb #define MIPSNN_CFG5_MRP __BIT(3) 467 1.10 simonb 468 1.10 simonb /* "UFR" (R): Allows user-mode access to Status[FR] using CTC1/CFC1. */ 469 1.10 simonb #define MIPSNN_CFG5_UFR __BIT(2) 470 1.10 simonb 471 1.10 simonb /* "NFExists" (R): Nested Fault feature exists. */ 472 1.10 simonb #define MIPSNN_CFG5_NF_EXISTS __BIT(0) 473 1.10 simonb 474 1.10 simonb 475 1.10 simonb /* 476 1.12 simonb * Values in PerfCntCrl Register (CP0 Register 25, Selects 0, 2, 4, 6) 477 1.12 simonb */ 478 1.12 simonb 479 1.12 simonb /* "M" (R): next PerCntCtl register present. */ 480 1.12 simonb #define MIPSNN_PERFCTL_M __BIT(31) 481 1.12 simonb 482 1.12 simonb /* "W" (R): Width - is a 64-bit counter. */ 483 1.12 simonb #define MIPSNN_PERFCTL_W __BIT(30) 484 1.12 simonb 485 1.12 simonb /* "Impl" (RAZ): Impl - implementation dependent field. */ 486 1.12 simonb #define MIPSNN_PERFCTL_IMPL __BITS(29,25) 487 1.12 simonb 488 1.12 simonb /* "EC" (Z): Reserved for Virtualisation Mode. */ 489 1.12 simonb #define MIPSNN_PERFCTL_EC __BITS(24,23) 490 1.12 simonb 491 1.12 simonb /* "PCTD" (RW): Performance Counter Trace Disable. */ 492 1.12 simonb #define MIPSNN_PERFCTL_PCTD __BIT(15) 493 1.12 simonb 494 1.12 simonb /* 495 1.12 simonb * "EVENT" (RW): Event number. Note: The MIPS32/MIPS64 PRA specs define 496 1.12 simonb * EventExt from 14:11 and Event from 10:5. For ease of use, we define a 497 1.12 simonb * single 10 bit Event field. 498 1.12 simonb */ 499 1.12 simonb #define MIPSNN_PERFCTL_EVENT __BITS(14,5) 500 1.12 simonb 501 1.12 simonb /* "IE" (RW): Interrupt Enable. */ 502 1.12 simonb #define MIPSNN_PERFCTL_IE __BIT(4) 503 1.12 simonb 504 1.12 simonb /* "U" (RW): Enables event counting in user mode. */ 505 1.12 simonb #define MIPSNN_PERFCTL_U __BIT(3) 506 1.12 simonb 507 1.12 simonb /* "S" (RW): Enables event counting in supervisor mode. */ 508 1.12 simonb #define MIPSNN_PERFCTL_S __BIT(2) 509 1.12 simonb 510 1.12 simonb /* "K" (RW): Enables event counting in kernel mode. */ 511 1.12 simonb #define MIPSNN_PERFCTL_K __BIT(1) 512 1.12 simonb 513 1.12 simonb /* "EXL" (RW): Enables event counting when EXL bit in Status is one. */ 514 1.12 simonb #define MIPSNN_PERFCTL_EXL __BIT(0) 515 1.12 simonb 516 1.12 simonb 517 1.12 simonb /* 518 1.6 matt * Values in Configuration Register 6 (CP0 Register 16, Select 6) 519 1.6 matt * for RMI XLP processors 520 1.6 matt */ 521 1.6 matt 522 1.6 matt /* "CTLB_SIZE" (R): Number of Combined TLB entries - 1. */ 523 1.9 simonb #define MIPSNN_RMIXLP_CFG6_CTLB_SIZE_MASK 0xffff0000 524 1.9 simonb #define MIPSNN_RMIXLP_CFG6_CTLB_SIZE_SHIFT 16 525 1.6 matt 526 1.6 matt /* "VTLB_SIZE" (R): Number of Variable TLB entries - 1. */ 527 1.9 simonb #define MIPSNN_RMIXLP_CFG6_VTLB_SIZE_MASK 0x0000ffc0 528 1.9 simonb #define MIPSNN_RMIXLP_CFG6_VTLB_SIZE_SHIFT 6 529 1.6 matt 530 1.6 matt /* "ELVT" (RW): Enable Large Variable TLB. */ 531 1.9 simonb #define MIPSNN_RMIXLP_CFG6_ELVT 0x00000020 532 1.6 matt 533 1.6 matt /* "EPW" (RW): Enable PageWalker. */ 534 1.9 simonb #define MIPSNN_RMIXLP_CFG6_EPW 0x00000008 535 1.6 matt 536 1.6 matt /* "EFT" (RW): Enable Fixed TLB. */ 537 1.9 simonb #define MIPSNN_RMIXLP_CFG6_EFT 0x00000004 538 1.6 matt 539 1.6 matt /* "PWI" (R): PageWalker implemented. */ 540 1.9 simonb #define MIPSNN_RMIXLP_CFG6_PWI 0x00000001 541 1.6 matt 542 1.6 matt /* "FTI" (R): Fixed TLB implemented. */ 543 1.9 simonb #define MIPSNN_RMIXLP_CFG6_FTI 0x00000001 544 1.6 matt 545 1.6 matt /* 546 1.6 matt * Values in Configuration Register 7 (CP0 Register 16, Select 7) 547 1.6 matt * for RMI XLP processors 548 1.6 matt */ 549 1.6 matt 550 1.6 matt /* "LG" (RW): Small or Large Page. */ 551 1.9 simonb #define MIPSNN_RMIXLP_CFG7_LG_MASK __BIT(61) 552 1.6 matt 553 1.6 matt /* "MASKLG" (RW): large page size supported in CAM only. */ 554 1.9 simonb #define MIPSNN_RMIXLP_CFG7_MASKLG_MASK 0x0000ff00 555 1.9 simonb #define MIPSNN_RMIXLP_CFG7_MASKLG_SHIFT 8 556 1.6 matt 557 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_4KB (0xff >> 8) 558 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_16KB (0xff >> 7) 559 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_64KB (0xff >> 6) 560 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_256KB (0xff >> 5) 561 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_1MB (0xff >> 4) 562 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_4MB (0xff >> 3) 563 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_16MB (0xff >> 2) 564 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_64MB (0xff >> 1) 565 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKLG_256MB (0xff >> 0) 566 1.6 matt 567 1.6 matt /* "MASKSM" (RW): small page size supported in CAM/RAM. */ 568 1.9 simonb #define MIPSNN_RMIXLP_CFG7_MASKSM_MASK 0x000000ff 569 1.9 simonb #define MIPSNN_RMIXLP_CFG7_MASKSM_SHIFT 0 570 1.6 matt 571 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_4KB (0xff >> 8) 572 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_16KB (0xff >> 7) 573 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_64KB (0xff >> 6) 574 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_256KB (0xff >> 5) 575 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_1MB (0xff >> 4) 576 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_4MB (0xff >> 3) 577 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_16MB (0xff >> 2) 578 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_64MB (0xff >> 1) 579 1.6 matt #define MIPSNN_RMIXLP_CFG7_MASKSM_256MB (0xff >> 0) 580 1.6 matt 581 1.10 simonb 582 1.6 matt /* 583 1.6 matt * Values in Configuration Register 6 (CP0 Register 16, Select 6) 584 1.6 matt * for the MTI 74K and 1074K cores. 585 1.6 matt */ 586 1.6 matt /* "SPCD" (R/W): Sleep state Perforance Counter Disable. */ 587 1.9 simonb #define MIPSNN_MTI_CFG6_SPCD __BIT(14) 588 1.6 matt 589 1.6 matt /* "SYND" (R/W): SYNonym tag update Disable. */ 590 1.9 simonb #define MIPSNN_MTI_CFG6_SYND __BIT(13) 591 1.6 matt 592 1.6 matt /* "IFUPerfCtl" (R/W): IFU Performance Control. */ 593 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_MASK __BIT(12:10) 594 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_STALL 0 595 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_JUMP 1 596 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_STALLED_INSN 2 597 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_CACHE_MISPREDICTION 3 598 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_CACHE_PREDICTION 4 599 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_BAD_JR_CACHE_ENTRY 5 600 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_UNIMPL 6 601 1.9 simonb #define MIPSNN_MTI_CFG6_IFU_PERF_CTL_CBRACH_TAKEN 7 602 1.6 matt 603 1.6 matt /* "NMRUP" (R): Most Recently Used JTLB Replacement scheme Present. */ 604 1.9 simonb #define MIPSNN_MTI_CFG6_NMRUP __BIT(9) /* 1: implemented */ 605 1.6 matt 606 1.6 matt /* "NMRUD" (R/W): NMRU Disable. */ 607 1.9 simonb #define MIPSNN_MTI_CFG6_NMRUD __BIT(8) /* 1: TLBWR is random */ 608 1.6 matt 609 1.6 matt /* "JRCP" (R): JR Cache Present. */ 610 1.9 simonb #define MIPSNN_MTI_CFG6_JRCP __BIT(1) /* 1: implemented */ 611 1.6 matt 612 1.6 matt /* "JRCD" (R/W): JR Cache prediction Disable. */ 613 1.9 simonb #define MIPSNN_MTI_CFG6_JRCD __BIT(0) /* 1: disabled */ 614 1.6 matt 615 1.6 matt 616 1.6 matt /* 617 1.6 matt * Values in Configuration Register 7 (CP0 Register 16, Select 7) 618 1.6 matt * for the MTI 24K, 34K, 74K, 1004K, and 1074K cores 619 1.6 matt */ 620 1.6 matt 621 1.6 matt /* "WII" (R): Wait IE Ignore. */ 622 1.9 simonb #define MIPSNN_MTI_CFG7_WII __BIT(31) 623 1.6 matt 624 1.6 matt /* "FPFS" (R/W): Fast Prepare For Store (74K, 1074K) */ 625 1.9 simonb #define MIPSNN_MTI_CFG7_FPFS __BIT(30) 626 1.6 matt 627 1.6 matt /* "IHB" (R/W): Implicit HB (74K, 1074K) */ 628 1.9 simonb #define MIPSNN_MTI_CFG7_IHB __BIT(29) 629 1.6 matt 630 1.6 matt /* "FPR1" (R): Float Point Ratio 1 (74K, 1074K). */ 631 1.9 simonb #define MIPSNN_MTI_CFG7_FPR1 __BIT(28) /* 1: 3:2 */ 632 1.6 matt 633 1.6 matt /* "SEHB" (R/W): slow EHB (74K, 1074K) */ 634 1.9 simonb #define MIPSNN_MTI_CFG7_SEHB __BIT(27) 635 1.6 matt 636 1.6 matt /* "CP2IO" (R/W): Force COP2 data to be in-order (74K, 1074K) */ 637 1.9 simonb #define MIPSNN_MTI_CFG7_CP2IO __BIT(26) 638 1.6 matt 639 1.6 matt /* "IAGN" (R/W): Issue LSU-side instructions in program order (74K, 1074K) */ 640 1.9 simonb #define MIPSNN_MTI_CFG7_IAGN __BIT(25) 641 1.6 matt 642 1.6 matt /* "IAGN" (R/W): Issue LSU-side instructions in program order (74K, 1074K) */ 643 1.9 simonb #define MIPSNN_MTI_CFG7_IAGN __BIT(25) 644 1.6 matt 645 1.6 matt /* "IALU" (R/W): Issue ALU-side instructions in program order (74K, 1074K) */ 646 1.9 simonb #define MIPSNN_MTI_CFG7_IALU __BIT(24) 647 1.6 matt 648 1.6 matt /* "DGHR" (R/W): disable global history in branch prediction (74K, 1074K). */ 649 1.9 simonb #define MIPSNN_MTI_CFG7_DGHR __BIT(23) /* 1: disable */ 650 1.6 matt 651 1.6 matt /* "SG" (R/W): Single Graduation per cycle (74K, 1074K). */ 652 1.9 simonb #define MIPSNN_MTI_CFG7_SG __BIT(22) /* 1: no superscalar */ 653 1.6 matt 654 1.6 matt /* "SUI" (R/W): Strict Uncached Instruction (SUI) policy control (74K, 1074K). */ 655 1.9 simonb #define MIPSNN_MTI_CFG7_SUI __BIT(21) 656 1.6 matt 657 1.6 matt /* "NCWB" (R/W): Non-Choerent WriteBack (1004K). */ 658 1.9 simonb #define MIPSNN_MTI_CFG7_NCWB __BIT(20) 659 1.6 matt 660 1.6 matt /* "PCT" (R): Performance Counters per TC (34K, 1004K). */ 661 1.9 simonb #define MIPSNN_MTI_CFG7_PCT __BIT(19) 662 1.6 matt 663 1.6 matt /* "HCI" (R): Hardware Cache Initialization. */ 664 1.9 simonb #define MIPSNN_MTI_CFG7_HCI __BIT(18) 665 1.6 matt 666 1.6 matt /* "FPR" (R): Float Point Ratio. */ 667 1.9 simonb #define MIPSNN_MTI_CFG7_FPR0 __BIT(17) /* 1: half speed */ 668 1.6 matt 669 1.6 matt #define MIPSNN_MTI_CFG7_FPR_MASK (MIPSNN_MTI_CFG7_FPR1|MIPSNN_MTI_CFG7_FPR0) 670 1.6 matt #define MIPSNN_MTI_CFG7_FPR_SHIFT 0 671 1.6 matt #define MIPSNN_MTI_CFG7_FPR_1to1 0 672 1.6 matt #define MIPSNN_MTI_CFG7_FPR_2to1 MIPSNN_MTI_CFG7_FPR0 673 1.6 matt #define MIPSNN_MTI_CFG7_FPR_3to2 MIPSNN_MTI_CFG7_FPR1 674 1.6 matt #define MIPSNN_MTI_CFG7_FPR_RESERVED MIPSNN_MTI_CFG7_FPR_MASK 675 1.6 matt 676 1.6 matt /* "AR" (R): Alias Removal. */ 677 1.9 simonb #define MIPSNN_MTI_CFG7_AR __BIT(16) /* 1: no virt aliases */ 678 1.6 matt 679 1.6 matt /* "PREF" (R/W): Instruction Prefetching (74K, 1074K). */ 680 1.13 simonb #define MIPSNN_MTI_CFG7_PREF_MASK __BITS(12,11) 681 1.6 matt #define MIPSNN_MTI_CFG7_PREF_SHIFT 11 682 1.6 matt #define MIPSNN_MTI_CFG7_PREF_DISABLE 0 683 1.6 matt #define MIPSNN_MTI_CFG7_PREF_ONELINE 1 684 1.6 matt #define MIPSNN_MTI_CFG7_PREF_RESERVED 2 685 1.6 matt #define MIPSNN_MTI_CFG7_PREF_TWOLINES 3 686 1.6 matt 687 1.6 matt /* "IAR" (R): Instruction Alias Removal. */ 688 1.9 simonb #define MIPSNN_MTI_CFG7_IAR __BIT(10) /* 1: no virt aliases */ 689 1.6 matt 690 1.6 matt /* "IVA" (R or RW): Instruction Virtual Alias fix disable. */ 691 1.9 simonb #define MIPSNN_MTI_CFG7_IVA __BIT(9) /* 1: fix disable */ 692 1.6 matt 693 1.6 matt /* "ES" (RW): External Sync. */ 694 1.9 simonb #define MIPSNN_MTI_CFG7_ES __BIT(8) 695 1.6 matt 696 1.6 matt /* "BTLM" (RW): Block TC on Load Miss. */ 697 1.9 simonb #define MIPSNN_MTI_CFG7_BTLM __BIT(7) 698 1.6 matt 699 1.6 matt /* "CPOOO" (RW): Out-Of-Order on Coprocessor interfaces (COP0/COP1). */ 700 1.9 simonb #define MIPSNN_MTI_CFG7_CPOOO __BIT(6) /* 1: disable OOO */ 701 1.6 matt 702 1.6 matt /* "NBLSU" (RW): Non-Blocking LSU. (24K, 34K) */ 703 1.9 simonb #define MIPSNN_MTI_CFG7_NBLSU __BIT(5) /* 1: stalls pipeline */ 704 1.6 matt 705 1.6 matt /* "UBL" (RW): Uncached Loads Blocking. */ 706 1.9 simonb #define MIPSNN_MTI_CFG7_UBL __BIT(4) /* 1: blocking loads */ 707 1.6 matt 708 1.6 matt /* "BP" (RW): Branch Prediction. */ 709 1.9 simonb #define MIPSNN_MTI_CFG7_BP __BIT(3) /* 1: disabled */ 710 1.6 matt 711 1.6 matt /* "RPS" (RW): Return Prediction Stack. */ 712 1.9 simonb #define MIPSNN_MTI_CFG7_RPS __BIT(2) /* 1: disabled */ 713 1.6 matt 714 1.6 matt /* "BHT" (RW): Branch History Table. */ 715 1.9 simonb #define MIPSNN_MTI_CFG7_BHT __BIT(1) /* 1: disabled */ 716 1.6 matt 717 1.6 matt /* "SL" (RW): Scheduled Loads. */ 718 1.9 simonb #define MIPSNN_MTI_CFG7_SL __BIT(0) /* 1: load misses block */ 719