1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved. 3*4882a593Smuzhiyun */ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifndef __ARCH_ARM_MACH_MSM_IOMMU_HW_8XXX_H 6*4882a593Smuzhiyun #define __ARCH_ARM_MACH_MSM_IOMMU_HW_8XXX_H 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define CTX_SHIFT 12 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define GET_GLOBAL_REG(reg, base) (readl((base) + (reg))) 11*4882a593Smuzhiyun #define GET_CTX_REG(reg, base, ctx) \ 12*4882a593Smuzhiyun (readl((base) + (reg) + ((ctx) << CTX_SHIFT))) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define SET_GLOBAL_REG(reg, base, val) writel((val), ((base) + (reg))) 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define SET_CTX_REG(reg, base, ctx, val) \ 17*4882a593Smuzhiyun writel((val), ((base) + (reg) + ((ctx) << CTX_SHIFT))) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun /* Wrappers for numbered registers */ 20*4882a593Smuzhiyun #define SET_GLOBAL_REG_N(b, n, r, v) SET_GLOBAL_REG(b, ((r) + (n << 2)), (v)) 21*4882a593Smuzhiyun #define GET_GLOBAL_REG_N(b, n, r) GET_GLOBAL_REG(b, ((r) + (n << 2))) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun /* Field wrappers */ 24*4882a593Smuzhiyun #define GET_GLOBAL_FIELD(b, r, F) GET_FIELD(((b) + (r)), F##_MASK, F##_SHIFT) 25*4882a593Smuzhiyun #define GET_CONTEXT_FIELD(b, c, r, F) \ 26*4882a593Smuzhiyun GET_FIELD(((b) + (r) + ((c) << CTX_SHIFT)), F##_MASK, F##_SHIFT) 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define SET_GLOBAL_FIELD(b, r, F, v) \ 29*4882a593Smuzhiyun SET_FIELD(((b) + (r)), F##_MASK, F##_SHIFT, (v)) 30*4882a593Smuzhiyun #define SET_CONTEXT_FIELD(b, c, r, F, v) \ 31*4882a593Smuzhiyun SET_FIELD(((b) + (r) + ((c) << CTX_SHIFT)), F##_MASK, F##_SHIFT, (v)) 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define GET_FIELD(addr, mask, shift) ((readl(addr) >> (shift)) & (mask)) 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define SET_FIELD(addr, mask, shift, v) \ 36*4882a593Smuzhiyun do { \ 37*4882a593Smuzhiyun int t = readl(addr); \ 38*4882a593Smuzhiyun writel((t & ~((mask) << (shift))) + (((v) & (mask)) << (shift)), addr);\ 39*4882a593Smuzhiyun } while (0) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #define NUM_FL_PTE 4096 43*4882a593Smuzhiyun #define NUM_SL_PTE 256 44*4882a593Smuzhiyun #define NUM_TEX_CLASS 8 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun /* First-level page table bits */ 47*4882a593Smuzhiyun #define FL_BASE_MASK 0xFFFFFC00 48*4882a593Smuzhiyun #define FL_TYPE_TABLE (1 << 0) 49*4882a593Smuzhiyun #define FL_TYPE_SECT (2 << 0) 50*4882a593Smuzhiyun #define FL_SUPERSECTION (1 << 18) 51*4882a593Smuzhiyun #define FL_AP_WRITE (1 << 10) 52*4882a593Smuzhiyun #define FL_AP_READ (1 << 11) 53*4882a593Smuzhiyun #define FL_SHARED (1 << 16) 54*4882a593Smuzhiyun #define FL_BUFFERABLE (1 << 2) 55*4882a593Smuzhiyun #define FL_CACHEABLE (1 << 3) 56*4882a593Smuzhiyun #define FL_TEX0 (1 << 12) 57*4882a593Smuzhiyun #define FL_OFFSET(va) (((va) & 0xFFF00000) >> 20) 58*4882a593Smuzhiyun #define FL_NG (1 << 17) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* Second-level page table bits */ 61*4882a593Smuzhiyun #define SL_BASE_MASK_LARGE 0xFFFF0000 62*4882a593Smuzhiyun #define SL_BASE_MASK_SMALL 0xFFFFF000 63*4882a593Smuzhiyun #define SL_TYPE_LARGE (1 << 0) 64*4882a593Smuzhiyun #define SL_TYPE_SMALL (2 << 0) 65*4882a593Smuzhiyun #define SL_AP0 (1 << 4) 66*4882a593Smuzhiyun #define SL_AP1 (2 << 4) 67*4882a593Smuzhiyun #define SL_SHARED (1 << 10) 68*4882a593Smuzhiyun #define SL_BUFFERABLE (1 << 2) 69*4882a593Smuzhiyun #define SL_CACHEABLE (1 << 3) 70*4882a593Smuzhiyun #define SL_TEX0 (1 << 6) 71*4882a593Smuzhiyun #define SL_OFFSET(va) (((va) & 0xFF000) >> 12) 72*4882a593Smuzhiyun #define SL_NG (1 << 11) 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun /* Memory type and cache policy attributes */ 75*4882a593Smuzhiyun #define MT_SO 0 76*4882a593Smuzhiyun #define MT_DEV 1 77*4882a593Smuzhiyun #define MT_NORMAL 2 78*4882a593Smuzhiyun #define CP_NONCACHED 0 79*4882a593Smuzhiyun #define CP_WB_WA 1 80*4882a593Smuzhiyun #define CP_WT 2 81*4882a593Smuzhiyun #define CP_WB_NWA 3 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun /* Global register setters / getters */ 84*4882a593Smuzhiyun #define SET_M2VCBR_N(b, N, v) SET_GLOBAL_REG_N(M2VCBR_N, N, (b), (v)) 85*4882a593Smuzhiyun #define SET_CBACR_N(b, N, v) SET_GLOBAL_REG_N(CBACR_N, N, (b), (v)) 86*4882a593Smuzhiyun #define SET_TLBRSW(b, v) SET_GLOBAL_REG(TLBRSW, (b), (v)) 87*4882a593Smuzhiyun #define SET_TLBTR0(b, v) SET_GLOBAL_REG(TLBTR0, (b), (v)) 88*4882a593Smuzhiyun #define SET_TLBTR1(b, v) SET_GLOBAL_REG(TLBTR1, (b), (v)) 89*4882a593Smuzhiyun #define SET_TLBTR2(b, v) SET_GLOBAL_REG(TLBTR2, (b), (v)) 90*4882a593Smuzhiyun #define SET_TESTBUSCR(b, v) SET_GLOBAL_REG(TESTBUSCR, (b), (v)) 91*4882a593Smuzhiyun #define SET_GLOBAL_TLBIALL(b, v) SET_GLOBAL_REG(GLOBAL_TLBIALL, (b), (v)) 92*4882a593Smuzhiyun #define SET_TLBIVMID(b, v) SET_GLOBAL_REG(TLBIVMID, (b), (v)) 93*4882a593Smuzhiyun #define SET_CR(b, v) SET_GLOBAL_REG(CR, (b), (v)) 94*4882a593Smuzhiyun #define SET_EAR(b, v) SET_GLOBAL_REG(EAR, (b), (v)) 95*4882a593Smuzhiyun #define SET_ESR(b, v) SET_GLOBAL_REG(ESR, (b), (v)) 96*4882a593Smuzhiyun #define SET_ESRRESTORE(b, v) SET_GLOBAL_REG(ESRRESTORE, (b), (v)) 97*4882a593Smuzhiyun #define SET_ESYNR0(b, v) SET_GLOBAL_REG(ESYNR0, (b), (v)) 98*4882a593Smuzhiyun #define SET_ESYNR1(b, v) SET_GLOBAL_REG(ESYNR1, (b), (v)) 99*4882a593Smuzhiyun #define SET_RPU_ACR(b, v) SET_GLOBAL_REG(RPU_ACR, (b), (v)) 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun #define GET_M2VCBR_N(b, N) GET_GLOBAL_REG_N(M2VCBR_N, N, (b)) 102*4882a593Smuzhiyun #define GET_CBACR_N(b, N) GET_GLOBAL_REG_N(CBACR_N, N, (b)) 103*4882a593Smuzhiyun #define GET_TLBTR0(b) GET_GLOBAL_REG(TLBTR0, (b)) 104*4882a593Smuzhiyun #define GET_TLBTR1(b) GET_GLOBAL_REG(TLBTR1, (b)) 105*4882a593Smuzhiyun #define GET_TLBTR2(b) GET_GLOBAL_REG(TLBTR2, (b)) 106*4882a593Smuzhiyun #define GET_TESTBUSCR(b) GET_GLOBAL_REG(TESTBUSCR, (b)) 107*4882a593Smuzhiyun #define GET_GLOBAL_TLBIALL(b) GET_GLOBAL_REG(GLOBAL_TLBIALL, (b)) 108*4882a593Smuzhiyun #define GET_TLBIVMID(b) GET_GLOBAL_REG(TLBIVMID, (b)) 109*4882a593Smuzhiyun #define GET_CR(b) GET_GLOBAL_REG(CR, (b)) 110*4882a593Smuzhiyun #define GET_EAR(b) GET_GLOBAL_REG(EAR, (b)) 111*4882a593Smuzhiyun #define GET_ESR(b) GET_GLOBAL_REG(ESR, (b)) 112*4882a593Smuzhiyun #define GET_ESRRESTORE(b) GET_GLOBAL_REG(ESRRESTORE, (b)) 113*4882a593Smuzhiyun #define GET_ESYNR0(b) GET_GLOBAL_REG(ESYNR0, (b)) 114*4882a593Smuzhiyun #define GET_ESYNR1(b) GET_GLOBAL_REG(ESYNR1, (b)) 115*4882a593Smuzhiyun #define GET_REV(b) GET_GLOBAL_REG(REV, (b)) 116*4882a593Smuzhiyun #define GET_IDR(b) GET_GLOBAL_REG(IDR, (b)) 117*4882a593Smuzhiyun #define GET_RPU_ACR(b) GET_GLOBAL_REG(RPU_ACR, (b)) 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun /* Context register setters/getters */ 121*4882a593Smuzhiyun #define SET_SCTLR(b, c, v) SET_CTX_REG(SCTLR, (b), (c), (v)) 122*4882a593Smuzhiyun #define SET_ACTLR(b, c, v) SET_CTX_REG(ACTLR, (b), (c), (v)) 123*4882a593Smuzhiyun #define SET_CONTEXTIDR(b, c, v) SET_CTX_REG(CONTEXTIDR, (b), (c), (v)) 124*4882a593Smuzhiyun #define SET_TTBR0(b, c, v) SET_CTX_REG(TTBR0, (b), (c), (v)) 125*4882a593Smuzhiyun #define SET_TTBR1(b, c, v) SET_CTX_REG(TTBR1, (b), (c), (v)) 126*4882a593Smuzhiyun #define SET_TTBCR(b, c, v) SET_CTX_REG(TTBCR, (b), (c), (v)) 127*4882a593Smuzhiyun #define SET_PAR(b, c, v) SET_CTX_REG(PAR, (b), (c), (v)) 128*4882a593Smuzhiyun #define SET_FSR(b, c, v) SET_CTX_REG(FSR, (b), (c), (v)) 129*4882a593Smuzhiyun #define SET_FSRRESTORE(b, c, v) SET_CTX_REG(FSRRESTORE, (b), (c), (v)) 130*4882a593Smuzhiyun #define SET_FAR(b, c, v) SET_CTX_REG(FAR, (b), (c), (v)) 131*4882a593Smuzhiyun #define SET_FSYNR0(b, c, v) SET_CTX_REG(FSYNR0, (b), (c), (v)) 132*4882a593Smuzhiyun #define SET_FSYNR1(b, c, v) SET_CTX_REG(FSYNR1, (b), (c), (v)) 133*4882a593Smuzhiyun #define SET_PRRR(b, c, v) SET_CTX_REG(PRRR, (b), (c), (v)) 134*4882a593Smuzhiyun #define SET_NMRR(b, c, v) SET_CTX_REG(NMRR, (b), (c), (v)) 135*4882a593Smuzhiyun #define SET_TLBLKCR(b, c, v) SET_CTX_REG(TLBLCKR, (b), (c), (v)) 136*4882a593Smuzhiyun #define SET_V2PSR(b, c, v) SET_CTX_REG(V2PSR, (b), (c), (v)) 137*4882a593Smuzhiyun #define SET_TLBFLPTER(b, c, v) SET_CTX_REG(TLBFLPTER, (b), (c), (v)) 138*4882a593Smuzhiyun #define SET_TLBSLPTER(b, c, v) SET_CTX_REG(TLBSLPTER, (b), (c), (v)) 139*4882a593Smuzhiyun #define SET_BFBCR(b, c, v) SET_CTX_REG(BFBCR, (b), (c), (v)) 140*4882a593Smuzhiyun #define SET_CTX_TLBIALL(b, c, v) SET_CTX_REG(CTX_TLBIALL, (b), (c), (v)) 141*4882a593Smuzhiyun #define SET_TLBIASID(b, c, v) SET_CTX_REG(TLBIASID, (b), (c), (v)) 142*4882a593Smuzhiyun #define SET_TLBIVA(b, c, v) SET_CTX_REG(TLBIVA, (b), (c), (v)) 143*4882a593Smuzhiyun #define SET_TLBIVAA(b, c, v) SET_CTX_REG(TLBIVAA, (b), (c), (v)) 144*4882a593Smuzhiyun #define SET_V2PPR(b, c, v) SET_CTX_REG(V2PPR, (b), (c), (v)) 145*4882a593Smuzhiyun #define SET_V2PPW(b, c, v) SET_CTX_REG(V2PPW, (b), (c), (v)) 146*4882a593Smuzhiyun #define SET_V2PUR(b, c, v) SET_CTX_REG(V2PUR, (b), (c), (v)) 147*4882a593Smuzhiyun #define SET_V2PUW(b, c, v) SET_CTX_REG(V2PUW, (b), (c), (v)) 148*4882a593Smuzhiyun #define SET_RESUME(b, c, v) SET_CTX_REG(RESUME, (b), (c), (v)) 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #define GET_SCTLR(b, c) GET_CTX_REG(SCTLR, (b), (c)) 151*4882a593Smuzhiyun #define GET_ACTLR(b, c) GET_CTX_REG(ACTLR, (b), (c)) 152*4882a593Smuzhiyun #define GET_CONTEXTIDR(b, c) GET_CTX_REG(CONTEXTIDR, (b), (c)) 153*4882a593Smuzhiyun #define GET_TTBR0(b, c) GET_CTX_REG(TTBR0, (b), (c)) 154*4882a593Smuzhiyun #define GET_TTBR1(b, c) GET_CTX_REG(TTBR1, (b), (c)) 155*4882a593Smuzhiyun #define GET_TTBCR(b, c) GET_CTX_REG(TTBCR, (b), (c)) 156*4882a593Smuzhiyun #define GET_PAR(b, c) GET_CTX_REG(PAR, (b), (c)) 157*4882a593Smuzhiyun #define GET_FSR(b, c) GET_CTX_REG(FSR, (b), (c)) 158*4882a593Smuzhiyun #define GET_FSRRESTORE(b, c) GET_CTX_REG(FSRRESTORE, (b), (c)) 159*4882a593Smuzhiyun #define GET_FAR(b, c) GET_CTX_REG(FAR, (b), (c)) 160*4882a593Smuzhiyun #define GET_FSYNR0(b, c) GET_CTX_REG(FSYNR0, (b), (c)) 161*4882a593Smuzhiyun #define GET_FSYNR1(b, c) GET_CTX_REG(FSYNR1, (b), (c)) 162*4882a593Smuzhiyun #define GET_PRRR(b, c) GET_CTX_REG(PRRR, (b), (c)) 163*4882a593Smuzhiyun #define GET_NMRR(b, c) GET_CTX_REG(NMRR, (b), (c)) 164*4882a593Smuzhiyun #define GET_TLBLCKR(b, c) GET_CTX_REG(TLBLCKR, (b), (c)) 165*4882a593Smuzhiyun #define GET_V2PSR(b, c) GET_CTX_REG(V2PSR, (b), (c)) 166*4882a593Smuzhiyun #define GET_TLBFLPTER(b, c) GET_CTX_REG(TLBFLPTER, (b), (c)) 167*4882a593Smuzhiyun #define GET_TLBSLPTER(b, c) GET_CTX_REG(TLBSLPTER, (b), (c)) 168*4882a593Smuzhiyun #define GET_BFBCR(b, c) GET_CTX_REG(BFBCR, (b), (c)) 169*4882a593Smuzhiyun #define GET_CTX_TLBIALL(b, c) GET_CTX_REG(CTX_TLBIALL, (b), (c)) 170*4882a593Smuzhiyun #define GET_TLBIASID(b, c) GET_CTX_REG(TLBIASID, (b), (c)) 171*4882a593Smuzhiyun #define GET_TLBIVA(b, c) GET_CTX_REG(TLBIVA, (b), (c)) 172*4882a593Smuzhiyun #define GET_TLBIVAA(b, c) GET_CTX_REG(TLBIVAA, (b), (c)) 173*4882a593Smuzhiyun #define GET_V2PPR(b, c) GET_CTX_REG(V2PPR, (b), (c)) 174*4882a593Smuzhiyun #define GET_V2PPW(b, c) GET_CTX_REG(V2PPW, (b), (c)) 175*4882a593Smuzhiyun #define GET_V2PUR(b, c) GET_CTX_REG(V2PUR, (b), (c)) 176*4882a593Smuzhiyun #define GET_V2PUW(b, c) GET_CTX_REG(V2PUW, (b), (c)) 177*4882a593Smuzhiyun #define GET_RESUME(b, c) GET_CTX_REG(RESUME, (b), (c)) 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun /* Global field setters / getters */ 181*4882a593Smuzhiyun /* Global Field Setters: */ 182*4882a593Smuzhiyun /* CBACR_N */ 183*4882a593Smuzhiyun #define SET_RWVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID, v) 184*4882a593Smuzhiyun #define SET_RWE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE, v) 185*4882a593Smuzhiyun #define SET_RWGE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE, v) 186*4882a593Smuzhiyun #define SET_CBVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID, v) 187*4882a593Smuzhiyun #define SET_IRPTNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX, v) 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun /* M2VCBR_N */ 191*4882a593Smuzhiyun #define SET_VMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID, v) 192*4882a593Smuzhiyun #define SET_CBNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX, v) 193*4882a593Smuzhiyun #define SET_BYPASSD(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD, v) 194*4882a593Smuzhiyun #define SET_BPRCOSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH, v) 195*4882a593Smuzhiyun #define SET_BPRCISH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH, v) 196*4882a593Smuzhiyun #define SET_BPRCNSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH, v) 197*4882a593Smuzhiyun #define SET_BPSHCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG, v) 198*4882a593Smuzhiyun #define SET_NSCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG, v) 199*4882a593Smuzhiyun #define SET_BPMTCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG, v) 200*4882a593Smuzhiyun #define SET_BPMEMTYPE(b, n, v) \ 201*4882a593Smuzhiyun SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE, v) 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun /* CR */ 205*4882a593Smuzhiyun #define SET_RPUE(b, v) SET_GLOBAL_FIELD(b, CR, RPUE, v) 206*4882a593Smuzhiyun #define SET_RPUERE(b, v) SET_GLOBAL_FIELD(b, CR, RPUERE, v) 207*4882a593Smuzhiyun #define SET_RPUEIE(b, v) SET_GLOBAL_FIELD(b, CR, RPUEIE, v) 208*4882a593Smuzhiyun #define SET_DCDEE(b, v) SET_GLOBAL_FIELD(b, CR, DCDEE, v) 209*4882a593Smuzhiyun #define SET_CLIENTPD(b, v) SET_GLOBAL_FIELD(b, CR, CLIENTPD, v) 210*4882a593Smuzhiyun #define SET_STALLD(b, v) SET_GLOBAL_FIELD(b, CR, STALLD, v) 211*4882a593Smuzhiyun #define SET_TLBLKCRWE(b, v) SET_GLOBAL_FIELD(b, CR, TLBLKCRWE, v) 212*4882a593Smuzhiyun #define SET_CR_TLBIALLCFG(b, v) SET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG, v) 213*4882a593Smuzhiyun #define SET_TLBIVMIDCFG(b, v) SET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG, v) 214*4882a593Smuzhiyun #define SET_CR_HUME(b, v) SET_GLOBAL_FIELD(b, CR, CR_HUME, v) 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun /* ESR */ 218*4882a593Smuzhiyun #define SET_CFG(b, v) SET_GLOBAL_FIELD(b, ESR, CFG, v) 219*4882a593Smuzhiyun #define SET_BYPASS(b, v) SET_GLOBAL_FIELD(b, ESR, BYPASS, v) 220*4882a593Smuzhiyun #define SET_ESR_MULTI(b, v) SET_GLOBAL_FIELD(b, ESR, ESR_MULTI, v) 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun /* ESYNR0 */ 224*4882a593Smuzhiyun #define SET_ESYNR0_AMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AMID, v) 225*4882a593Smuzhiyun #define SET_ESYNR0_APID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_APID, v) 226*4882a593Smuzhiyun #define SET_ESYNR0_ABID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ABID, v) 227*4882a593Smuzhiyun #define SET_ESYNR0_AVMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AVMID, v) 228*4882a593Smuzhiyun #define SET_ESYNR0_ATID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ATID, v) 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun /* ESYNR1 */ 232*4882a593Smuzhiyun #define SET_ESYNR1_AMEMTYPE(b, v) \ 233*4882a593Smuzhiyun SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AMEMTYPE, v) 234*4882a593Smuzhiyun #define SET_ESYNR1_ASHARED(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASHARED, v) 235*4882a593Smuzhiyun #define SET_ESYNR1_AINNERSHARED(b, v) \ 236*4882a593Smuzhiyun SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINNERSHARED, v) 237*4882a593Smuzhiyun #define SET_ESYNR1_APRIV(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APRIV, v) 238*4882a593Smuzhiyun #define SET_ESYNR1_APROTNS(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APROTNS, v) 239*4882a593Smuzhiyun #define SET_ESYNR1_AINST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINST, v) 240*4882a593Smuzhiyun #define SET_ESYNR1_AWRITE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AWRITE, v) 241*4882a593Smuzhiyun #define SET_ESYNR1_ABURST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ABURST, v) 242*4882a593Smuzhiyun #define SET_ESYNR1_ALEN(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALEN, v) 243*4882a593Smuzhiyun #define SET_ESYNR1_ASIZE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASIZE, v) 244*4882a593Smuzhiyun #define SET_ESYNR1_ALOCK(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALOCK, v) 245*4882a593Smuzhiyun #define SET_ESYNR1_AOOO(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AOOO, v) 246*4882a593Smuzhiyun #define SET_ESYNR1_AFULL(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AFULL, v) 247*4882a593Smuzhiyun #define SET_ESYNR1_AC(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AC, v) 248*4882a593Smuzhiyun #define SET_ESYNR1_DCD(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_DCD, v) 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun /* TESTBUSCR */ 252*4882a593Smuzhiyun #define SET_TBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBE, v) 253*4882a593Smuzhiyun #define SET_SPDMBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDMBE, v) 254*4882a593Smuzhiyun #define SET_WGSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, WGSEL, v) 255*4882a593Smuzhiyun #define SET_TBLSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBLSEL, v) 256*4882a593Smuzhiyun #define SET_TBHSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBHSEL, v) 257*4882a593Smuzhiyun #define SET_SPDM0SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM0SEL, v) 258*4882a593Smuzhiyun #define SET_SPDM1SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM1SEL, v) 259*4882a593Smuzhiyun #define SET_SPDM2SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM2SEL, v) 260*4882a593Smuzhiyun #define SET_SPDM3SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM3SEL, v) 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun /* TLBIVMID */ 264*4882a593Smuzhiyun #define SET_TLBIVMID_VMID(b, v) SET_GLOBAL_FIELD(b, TLBIVMID, TLBIVMID_VMID, v) 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun /* TLBRSW */ 268*4882a593Smuzhiyun #define SET_TLBRSW_INDEX(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBRSW_INDEX, v) 269*4882a593Smuzhiyun #define SET_TLBBFBS(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBBFBS, v) 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun /* TLBTR0 */ 273*4882a593Smuzhiyun #define SET_PR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PR, v) 274*4882a593Smuzhiyun #define SET_PW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PW, v) 275*4882a593Smuzhiyun #define SET_UR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UR, v) 276*4882a593Smuzhiyun #define SET_UW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UW, v) 277*4882a593Smuzhiyun #define SET_XN(b, v) SET_GLOBAL_FIELD(b, TLBTR0, XN, v) 278*4882a593Smuzhiyun #define SET_NSDESC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, NSDESC, v) 279*4882a593Smuzhiyun #define SET_ISH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, ISH, v) 280*4882a593Smuzhiyun #define SET_SH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, SH, v) 281*4882a593Smuzhiyun #define SET_MT(b, v) SET_GLOBAL_FIELD(b, TLBTR0, MT, v) 282*4882a593Smuzhiyun #define SET_DPSIZR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZR, v) 283*4882a593Smuzhiyun #define SET_DPSIZC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZC, v) 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun /* TLBTR1 */ 287*4882a593Smuzhiyun #define SET_TLBTR1_VMID(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_VMID, v) 288*4882a593Smuzhiyun #define SET_TLBTR1_PA(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_PA, v) 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun /* TLBTR2 */ 292*4882a593Smuzhiyun #define SET_TLBTR2_ASID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_ASID, v) 293*4882a593Smuzhiyun #define SET_TLBTR2_V(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_V, v) 294*4882a593Smuzhiyun #define SET_TLBTR2_NSTID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NSTID, v) 295*4882a593Smuzhiyun #define SET_TLBTR2_NV(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NV, v) 296*4882a593Smuzhiyun #define SET_TLBTR2_VA(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_VA, v) 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun /* Global Field Getters */ 300*4882a593Smuzhiyun /* CBACR_N */ 301*4882a593Smuzhiyun #define GET_RWVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID) 302*4882a593Smuzhiyun #define GET_RWE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE) 303*4882a593Smuzhiyun #define GET_RWGE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE) 304*4882a593Smuzhiyun #define GET_CBVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID) 305*4882a593Smuzhiyun #define GET_IRPTNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX) 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun /* M2VCBR_N */ 309*4882a593Smuzhiyun #define GET_VMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID) 310*4882a593Smuzhiyun #define GET_CBNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX) 311*4882a593Smuzhiyun #define GET_BYPASSD(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD) 312*4882a593Smuzhiyun #define GET_BPRCOSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH) 313*4882a593Smuzhiyun #define GET_BPRCISH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH) 314*4882a593Smuzhiyun #define GET_BPRCNSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH) 315*4882a593Smuzhiyun #define GET_BPSHCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG) 316*4882a593Smuzhiyun #define GET_NSCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG) 317*4882a593Smuzhiyun #define GET_BPMTCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG) 318*4882a593Smuzhiyun #define GET_BPMEMTYPE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE) 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun /* CR */ 322*4882a593Smuzhiyun #define GET_RPUE(b) GET_GLOBAL_FIELD(b, CR, RPUE) 323*4882a593Smuzhiyun #define GET_RPUERE(b) GET_GLOBAL_FIELD(b, CR, RPUERE) 324*4882a593Smuzhiyun #define GET_RPUEIE(b) GET_GLOBAL_FIELD(b, CR, RPUEIE) 325*4882a593Smuzhiyun #define GET_DCDEE(b) GET_GLOBAL_FIELD(b, CR, DCDEE) 326*4882a593Smuzhiyun #define GET_CLIENTPD(b) GET_GLOBAL_FIELD(b, CR, CLIENTPD) 327*4882a593Smuzhiyun #define GET_STALLD(b) GET_GLOBAL_FIELD(b, CR, STALLD) 328*4882a593Smuzhiyun #define GET_TLBLKCRWE(b) GET_GLOBAL_FIELD(b, CR, TLBLKCRWE) 329*4882a593Smuzhiyun #define GET_CR_TLBIALLCFG(b) GET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG) 330*4882a593Smuzhiyun #define GET_TLBIVMIDCFG(b) GET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG) 331*4882a593Smuzhiyun #define GET_CR_HUME(b) GET_GLOBAL_FIELD(b, CR, CR_HUME) 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun /* ESR */ 335*4882a593Smuzhiyun #define GET_CFG(b) GET_GLOBAL_FIELD(b, ESR, CFG) 336*4882a593Smuzhiyun #define GET_BYPASS(b) GET_GLOBAL_FIELD(b, ESR, BYPASS) 337*4882a593Smuzhiyun #define GET_ESR_MULTI(b) GET_GLOBAL_FIELD(b, ESR, ESR_MULTI) 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun /* ESYNR0 */ 341*4882a593Smuzhiyun #define GET_ESYNR0_AMID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AMID) 342*4882a593Smuzhiyun #define GET_ESYNR0_APID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_APID) 343*4882a593Smuzhiyun #define GET_ESYNR0_ABID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ABID) 344*4882a593Smuzhiyun #define GET_ESYNR0_AVMID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AVMID) 345*4882a593Smuzhiyun #define GET_ESYNR0_ATID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ATID) 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun /* ESYNR1 */ 349*4882a593Smuzhiyun #define GET_ESYNR1_AMEMTYPE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AMEMTYPE) 350*4882a593Smuzhiyun #define GET_ESYNR1_ASHARED(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASHARED) 351*4882a593Smuzhiyun #define GET_ESYNR1_AINNERSHARED(b) \ 352*4882a593Smuzhiyun GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINNERSHARED) 353*4882a593Smuzhiyun #define GET_ESYNR1_APRIV(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APRIV) 354*4882a593Smuzhiyun #define GET_ESYNR1_APROTNS(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APROTNS) 355*4882a593Smuzhiyun #define GET_ESYNR1_AINST(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINST) 356*4882a593Smuzhiyun #define GET_ESYNR1_AWRITE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AWRITE) 357*4882a593Smuzhiyun #define GET_ESYNR1_ABURST(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ABURST) 358*4882a593Smuzhiyun #define GET_ESYNR1_ALEN(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALEN) 359*4882a593Smuzhiyun #define GET_ESYNR1_ASIZE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASIZE) 360*4882a593Smuzhiyun #define GET_ESYNR1_ALOCK(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALOCK) 361*4882a593Smuzhiyun #define GET_ESYNR1_AOOO(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AOOO) 362*4882a593Smuzhiyun #define GET_ESYNR1_AFULL(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AFULL) 363*4882a593Smuzhiyun #define GET_ESYNR1_AC(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AC) 364*4882a593Smuzhiyun #define GET_ESYNR1_DCD(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_DCD) 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun /* IDR */ 368*4882a593Smuzhiyun #define GET_NM2VCBMT(b) GET_GLOBAL_FIELD(b, IDR, NM2VCBMT) 369*4882a593Smuzhiyun #define GET_HTW(b) GET_GLOBAL_FIELD(b, IDR, HTW) 370*4882a593Smuzhiyun #define GET_HUM(b) GET_GLOBAL_FIELD(b, IDR, HUM) 371*4882a593Smuzhiyun #define GET_TLBSIZE(b) GET_GLOBAL_FIELD(b, IDR, TLBSIZE) 372*4882a593Smuzhiyun #define GET_NCB(b) GET_GLOBAL_FIELD(b, IDR, NCB) 373*4882a593Smuzhiyun #define GET_NIRPT(b) GET_GLOBAL_FIELD(b, IDR, NIRPT) 374*4882a593Smuzhiyun 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun /* REV */ 377*4882a593Smuzhiyun #define GET_MAJOR(b) GET_GLOBAL_FIELD(b, REV, MAJOR) 378*4882a593Smuzhiyun #define GET_MINOR(b) GET_GLOBAL_FIELD(b, REV, MINOR) 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun /* TESTBUSCR */ 382*4882a593Smuzhiyun #define GET_TBE(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBE) 383*4882a593Smuzhiyun #define GET_SPDMBE(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDMBE) 384*4882a593Smuzhiyun #define GET_WGSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, WGSEL) 385*4882a593Smuzhiyun #define GET_TBLSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBLSEL) 386*4882a593Smuzhiyun #define GET_TBHSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBHSEL) 387*4882a593Smuzhiyun #define GET_SPDM0SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM0SEL) 388*4882a593Smuzhiyun #define GET_SPDM1SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM1SEL) 389*4882a593Smuzhiyun #define GET_SPDM2SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM2SEL) 390*4882a593Smuzhiyun #define GET_SPDM3SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM3SEL) 391*4882a593Smuzhiyun 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun /* TLBIVMID */ 394*4882a593Smuzhiyun #define GET_TLBIVMID_VMID(b) GET_GLOBAL_FIELD(b, TLBIVMID, TLBIVMID_VMID) 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun /* TLBTR0 */ 398*4882a593Smuzhiyun #define GET_PR(b) GET_GLOBAL_FIELD(b, TLBTR0, PR) 399*4882a593Smuzhiyun #define GET_PW(b) GET_GLOBAL_FIELD(b, TLBTR0, PW) 400*4882a593Smuzhiyun #define GET_UR(b) GET_GLOBAL_FIELD(b, TLBTR0, UR) 401*4882a593Smuzhiyun #define GET_UW(b) GET_GLOBAL_FIELD(b, TLBTR0, UW) 402*4882a593Smuzhiyun #define GET_XN(b) GET_GLOBAL_FIELD(b, TLBTR0, XN) 403*4882a593Smuzhiyun #define GET_NSDESC(b) GET_GLOBAL_FIELD(b, TLBTR0, NSDESC) 404*4882a593Smuzhiyun #define GET_ISH(b) GET_GLOBAL_FIELD(b, TLBTR0, ISH) 405*4882a593Smuzhiyun #define GET_SH(b) GET_GLOBAL_FIELD(b, TLBTR0, SH) 406*4882a593Smuzhiyun #define GET_MT(b) GET_GLOBAL_FIELD(b, TLBTR0, MT) 407*4882a593Smuzhiyun #define GET_DPSIZR(b) GET_GLOBAL_FIELD(b, TLBTR0, DPSIZR) 408*4882a593Smuzhiyun #define GET_DPSIZC(b) GET_GLOBAL_FIELD(b, TLBTR0, DPSIZC) 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun /* TLBTR1 */ 412*4882a593Smuzhiyun #define GET_TLBTR1_VMID(b) GET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_VMID) 413*4882a593Smuzhiyun #define GET_TLBTR1_PA(b) GET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_PA) 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun /* TLBTR2 */ 417*4882a593Smuzhiyun #define GET_TLBTR2_ASID(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_ASID) 418*4882a593Smuzhiyun #define GET_TLBTR2_V(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_V) 419*4882a593Smuzhiyun #define GET_TLBTR2_NSTID(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NSTID) 420*4882a593Smuzhiyun #define GET_TLBTR2_NV(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NV) 421*4882a593Smuzhiyun #define GET_TLBTR2_VA(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_VA) 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun 424*4882a593Smuzhiyun /* Context Register setters / getters */ 425*4882a593Smuzhiyun /* Context Register setters */ 426*4882a593Smuzhiyun /* ACTLR */ 427*4882a593Smuzhiyun #define SET_CFERE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFERE, v) 428*4882a593Smuzhiyun #define SET_CFEIE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFEIE, v) 429*4882a593Smuzhiyun #define SET_PTSHCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTSHCFG, v) 430*4882a593Smuzhiyun #define SET_RCOSH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCOSH, v) 431*4882a593Smuzhiyun #define SET_RCISH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCISH, v) 432*4882a593Smuzhiyun #define SET_RCNSH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCNSH, v) 433*4882a593Smuzhiyun #define SET_PRIVCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PRIVCFG, v) 434*4882a593Smuzhiyun #define SET_DNA(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, DNA, v) 435*4882a593Smuzhiyun #define SET_DNLV2PA(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, DNLV2PA, v) 436*4882a593Smuzhiyun #define SET_TLBMCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, TLBMCFG, v) 437*4882a593Smuzhiyun #define SET_CFCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFCFG, v) 438*4882a593Smuzhiyun #define SET_TIPCF(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, TIPCF, v) 439*4882a593Smuzhiyun #define SET_V2PCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, V2PCFG, v) 440*4882a593Smuzhiyun #define SET_HUME(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, HUME, v) 441*4882a593Smuzhiyun #define SET_PTMTCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTMTCFG, v) 442*4882a593Smuzhiyun #define SET_PTMEMTYPE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTMEMTYPE, v) 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun /* BFBCR */ 446*4882a593Smuzhiyun #define SET_BFBDFE(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, BFBDFE, v) 447*4882a593Smuzhiyun #define SET_BFBSFE(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, BFBSFE, v) 448*4882a593Smuzhiyun #define SET_SFVS(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, SFVS, v) 449*4882a593Smuzhiyun #define SET_FLVIC(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, FLVIC, v) 450*4882a593Smuzhiyun #define SET_SLVIC(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, SLVIC, v) 451*4882a593Smuzhiyun 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun /* CONTEXTIDR */ 454*4882a593Smuzhiyun #define SET_CONTEXTIDR_ASID(b, c, v) \ 455*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, CONTEXTIDR, CONTEXTIDR_ASID, v) 456*4882a593Smuzhiyun #define SET_CONTEXTIDR_PROCID(b, c, v) \ 457*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, CONTEXTIDR, PROCID, v) 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun 460*4882a593Smuzhiyun /* FSR */ 461*4882a593Smuzhiyun #define SET_TF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, TF, v) 462*4882a593Smuzhiyun #define SET_AFF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, AFF, v) 463*4882a593Smuzhiyun #define SET_APF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, APF, v) 464*4882a593Smuzhiyun #define SET_TLBMF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, TLBMF, v) 465*4882a593Smuzhiyun #define SET_HTWDEEF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, HTWDEEF, v) 466*4882a593Smuzhiyun #define SET_HTWSEEF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, HTWSEEF, v) 467*4882a593Smuzhiyun #define SET_MHF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, MHF, v) 468*4882a593Smuzhiyun #define SET_SL(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, SL, v) 469*4882a593Smuzhiyun #define SET_SS(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, SS, v) 470*4882a593Smuzhiyun #define SET_MULTI(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, MULTI, v) 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun /* FSYNR0 */ 474*4882a593Smuzhiyun #define SET_AMID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, AMID, v) 475*4882a593Smuzhiyun #define SET_APID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, APID, v) 476*4882a593Smuzhiyun #define SET_ABID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, ABID, v) 477*4882a593Smuzhiyun #define SET_ATID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, ATID, v) 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun /* FSYNR1 */ 481*4882a593Smuzhiyun #define SET_AMEMTYPE(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AMEMTYPE, v) 482*4882a593Smuzhiyun #define SET_ASHARED(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ASHARED, v) 483*4882a593Smuzhiyun #define SET_AINNERSHARED(b, c, v) \ 484*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, FSYNR1, AINNERSHARED, v) 485*4882a593Smuzhiyun #define SET_APRIV(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, APRIV, v) 486*4882a593Smuzhiyun #define SET_APROTNS(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, APROTNS, v) 487*4882a593Smuzhiyun #define SET_AINST(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AINST, v) 488*4882a593Smuzhiyun #define SET_AWRITE(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AWRITE, v) 489*4882a593Smuzhiyun #define SET_ABURST(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ABURST, v) 490*4882a593Smuzhiyun #define SET_ALEN(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ALEN, v) 491*4882a593Smuzhiyun #define SET_FSYNR1_ASIZE(b, c, v) \ 492*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, FSYNR1, FSYNR1_ASIZE, v) 493*4882a593Smuzhiyun #define SET_ALOCK(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ALOCK, v) 494*4882a593Smuzhiyun #define SET_AFULL(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AFULL, v) 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun /* NMRR */ 498*4882a593Smuzhiyun #define SET_ICPC0(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC0, v) 499*4882a593Smuzhiyun #define SET_ICPC1(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC1, v) 500*4882a593Smuzhiyun #define SET_ICPC2(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC2, v) 501*4882a593Smuzhiyun #define SET_ICPC3(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC3, v) 502*4882a593Smuzhiyun #define SET_ICPC4(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC4, v) 503*4882a593Smuzhiyun #define SET_ICPC5(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC5, v) 504*4882a593Smuzhiyun #define SET_ICPC6(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC6, v) 505*4882a593Smuzhiyun #define SET_ICPC7(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC7, v) 506*4882a593Smuzhiyun #define SET_OCPC0(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC0, v) 507*4882a593Smuzhiyun #define SET_OCPC1(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC1, v) 508*4882a593Smuzhiyun #define SET_OCPC2(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC2, v) 509*4882a593Smuzhiyun #define SET_OCPC3(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC3, v) 510*4882a593Smuzhiyun #define SET_OCPC4(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC4, v) 511*4882a593Smuzhiyun #define SET_OCPC5(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC5, v) 512*4882a593Smuzhiyun #define SET_OCPC6(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC6, v) 513*4882a593Smuzhiyun #define SET_OCPC7(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC7, v) 514*4882a593Smuzhiyun 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun /* PAR */ 517*4882a593Smuzhiyun #define SET_FAULT(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT, v) 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun #define SET_FAULT_TF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_TF, v) 520*4882a593Smuzhiyun #define SET_FAULT_AFF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_AFF, v) 521*4882a593Smuzhiyun #define SET_FAULT_APF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_APF, v) 522*4882a593Smuzhiyun #define SET_FAULT_TLBMF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_TLBMF, v) 523*4882a593Smuzhiyun #define SET_FAULT_HTWDEEF(b, c, v) \ 524*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWDEEF, v) 525*4882a593Smuzhiyun #define SET_FAULT_HTWSEEF(b, c, v) \ 526*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWSEEF, v) 527*4882a593Smuzhiyun #define SET_FAULT_MHF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_MHF, v) 528*4882a593Smuzhiyun #define SET_FAULT_SL(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_SL, v) 529*4882a593Smuzhiyun #define SET_FAULT_SS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_SS, v) 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun #define SET_NOFAULT_SS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_SS, v) 532*4882a593Smuzhiyun #define SET_NOFAULT_MT(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_MT, v) 533*4882a593Smuzhiyun #define SET_NOFAULT_SH(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_SH, v) 534*4882a593Smuzhiyun #define SET_NOFAULT_NS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_NS, v) 535*4882a593Smuzhiyun #define SET_NOFAULT_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_NOS, v) 536*4882a593Smuzhiyun #define SET_NPFAULT_PA(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NPFAULT_PA, v) 537*4882a593Smuzhiyun 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun /* PRRR */ 540*4882a593Smuzhiyun #define SET_MTC0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC0, v) 541*4882a593Smuzhiyun #define SET_MTC1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC1, v) 542*4882a593Smuzhiyun #define SET_MTC2(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC2, v) 543*4882a593Smuzhiyun #define SET_MTC3(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC3, v) 544*4882a593Smuzhiyun #define SET_MTC4(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC4, v) 545*4882a593Smuzhiyun #define SET_MTC5(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC5, v) 546*4882a593Smuzhiyun #define SET_MTC6(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC6, v) 547*4882a593Smuzhiyun #define SET_MTC7(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC7, v) 548*4882a593Smuzhiyun #define SET_SHDSH0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHDSH0, v) 549*4882a593Smuzhiyun #define SET_SHDSH1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHDSH1, v) 550*4882a593Smuzhiyun #define SET_SHNMSH0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHNMSH0, v) 551*4882a593Smuzhiyun #define SET_SHNMSH1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHNMSH1, v) 552*4882a593Smuzhiyun #define SET_NOS0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS0, v) 553*4882a593Smuzhiyun #define SET_NOS1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS1, v) 554*4882a593Smuzhiyun #define SET_NOS2(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS2, v) 555*4882a593Smuzhiyun #define SET_NOS3(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS3, v) 556*4882a593Smuzhiyun #define SET_NOS4(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS4, v) 557*4882a593Smuzhiyun #define SET_NOS5(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS5, v) 558*4882a593Smuzhiyun #define SET_NOS6(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS6, v) 559*4882a593Smuzhiyun #define SET_NOS7(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS7, v) 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun 562*4882a593Smuzhiyun /* RESUME */ 563*4882a593Smuzhiyun #define SET_TNR(b, c, v) SET_CONTEXT_FIELD(b, c, RESUME, TNR, v) 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun 566*4882a593Smuzhiyun /* SCTLR */ 567*4882a593Smuzhiyun #define SET_M(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, M, v) 568*4882a593Smuzhiyun #define SET_TRE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, TRE, v) 569*4882a593Smuzhiyun #define SET_AFE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, AFE, v) 570*4882a593Smuzhiyun #define SET_HAF(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, HAF, v) 571*4882a593Smuzhiyun #define SET_BE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, BE, v) 572*4882a593Smuzhiyun #define SET_AFFD(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, AFFD, v) 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun 575*4882a593Smuzhiyun /* TLBLKCR */ 576*4882a593Smuzhiyun #define SET_LKE(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, LKE, v) 577*4882a593Smuzhiyun #define SET_TLBLKCR_TLBIALLCFG(b, c, v) \ 578*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBLCKR_TLBIALLCFG, v) 579*4882a593Smuzhiyun #define SET_TLBIASIDCFG(b, c, v) \ 580*4882a593Smuzhiyun SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIASIDCFG, v) 581*4882a593Smuzhiyun #define SET_TLBIVAACFG(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIVAACFG, v) 582*4882a593Smuzhiyun #define SET_FLOOR(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, FLOOR, v) 583*4882a593Smuzhiyun #define SET_VICTIM(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, VICTIM, v) 584*4882a593Smuzhiyun 585*4882a593Smuzhiyun 586*4882a593Smuzhiyun /* TTBCR */ 587*4882a593Smuzhiyun #define SET_N(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, N, v) 588*4882a593Smuzhiyun #define SET_PD0(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, PD0, v) 589*4882a593Smuzhiyun #define SET_PD1(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, PD1, v) 590*4882a593Smuzhiyun 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun /* TTBR0 */ 593*4882a593Smuzhiyun #define SET_TTBR0_IRGNH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNH, v) 594*4882a593Smuzhiyun #define SET_TTBR0_SH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_SH, v) 595*4882a593Smuzhiyun #define SET_TTBR0_ORGN(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_ORGN, v) 596*4882a593Smuzhiyun #define SET_TTBR0_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_NOS, v) 597*4882a593Smuzhiyun #define SET_TTBR0_IRGNL(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNL, v) 598*4882a593Smuzhiyun #define SET_TTBR0_PA(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_PA, v) 599*4882a593Smuzhiyun 600*4882a593Smuzhiyun 601*4882a593Smuzhiyun /* TTBR1 */ 602*4882a593Smuzhiyun #define SET_TTBR1_IRGNH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNH, v) 603*4882a593Smuzhiyun #define SET_TTBR1_SH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_SH, v) 604*4882a593Smuzhiyun #define SET_TTBR1_ORGN(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_ORGN, v) 605*4882a593Smuzhiyun #define SET_TTBR1_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_NOS, v) 606*4882a593Smuzhiyun #define SET_TTBR1_IRGNL(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNL, v) 607*4882a593Smuzhiyun #define SET_TTBR1_PA(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_PA, v) 608*4882a593Smuzhiyun 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun /* V2PSR */ 611*4882a593Smuzhiyun #define SET_HIT(b, c, v) SET_CONTEXT_FIELD(b, c, V2PSR, HIT, v) 612*4882a593Smuzhiyun #define SET_INDEX(b, c, v) SET_CONTEXT_FIELD(b, c, V2PSR, INDEX, v) 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun 615*4882a593Smuzhiyun /* Context Register getters */ 616*4882a593Smuzhiyun /* ACTLR */ 617*4882a593Smuzhiyun #define GET_CFERE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFERE) 618*4882a593Smuzhiyun #define GET_CFEIE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFEIE) 619*4882a593Smuzhiyun #define GET_PTSHCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTSHCFG) 620*4882a593Smuzhiyun #define GET_RCOSH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCOSH) 621*4882a593Smuzhiyun #define GET_RCISH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCISH) 622*4882a593Smuzhiyun #define GET_RCNSH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCNSH) 623*4882a593Smuzhiyun #define GET_PRIVCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PRIVCFG) 624*4882a593Smuzhiyun #define GET_DNA(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, DNA) 625*4882a593Smuzhiyun #define GET_DNLV2PA(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, DNLV2PA) 626*4882a593Smuzhiyun #define GET_TLBMCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, TLBMCFG) 627*4882a593Smuzhiyun #define GET_CFCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFCFG) 628*4882a593Smuzhiyun #define GET_TIPCF(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, TIPCF) 629*4882a593Smuzhiyun #define GET_V2PCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, V2PCFG) 630*4882a593Smuzhiyun #define GET_HUME(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, HUME) 631*4882a593Smuzhiyun #define GET_PTMTCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTMTCFG) 632*4882a593Smuzhiyun #define GET_PTMEMTYPE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTMEMTYPE) 633*4882a593Smuzhiyun 634*4882a593Smuzhiyun /* BFBCR */ 635*4882a593Smuzhiyun #define GET_BFBDFE(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, BFBDFE) 636*4882a593Smuzhiyun #define GET_BFBSFE(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, BFBSFE) 637*4882a593Smuzhiyun #define GET_SFVS(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, SFVS) 638*4882a593Smuzhiyun #define GET_FLVIC(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, FLVIC) 639*4882a593Smuzhiyun #define GET_SLVIC(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, SLVIC) 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun 642*4882a593Smuzhiyun /* CONTEXTIDR */ 643*4882a593Smuzhiyun #define GET_CONTEXTIDR_ASID(b, c) \ 644*4882a593Smuzhiyun GET_CONTEXT_FIELD(b, c, CONTEXTIDR, CONTEXTIDR_ASID) 645*4882a593Smuzhiyun #define GET_CONTEXTIDR_PROCID(b, c) GET_CONTEXT_FIELD(b, c, CONTEXTIDR, PROCID) 646*4882a593Smuzhiyun 647*4882a593Smuzhiyun 648*4882a593Smuzhiyun /* FSR */ 649*4882a593Smuzhiyun #define GET_TF(b, c) GET_CONTEXT_FIELD(b, c, FSR, TF) 650*4882a593Smuzhiyun #define GET_AFF(b, c) GET_CONTEXT_FIELD(b, c, FSR, AFF) 651*4882a593Smuzhiyun #define GET_APF(b, c) GET_CONTEXT_FIELD(b, c, FSR, APF) 652*4882a593Smuzhiyun #define GET_TLBMF(b, c) GET_CONTEXT_FIELD(b, c, FSR, TLBMF) 653*4882a593Smuzhiyun #define GET_HTWDEEF(b, c) GET_CONTEXT_FIELD(b, c, FSR, HTWDEEF) 654*4882a593Smuzhiyun #define GET_HTWSEEF(b, c) GET_CONTEXT_FIELD(b, c, FSR, HTWSEEF) 655*4882a593Smuzhiyun #define GET_MHF(b, c) GET_CONTEXT_FIELD(b, c, FSR, MHF) 656*4882a593Smuzhiyun #define GET_SL(b, c) GET_CONTEXT_FIELD(b, c, FSR, SL) 657*4882a593Smuzhiyun #define GET_SS(b, c) GET_CONTEXT_FIELD(b, c, FSR, SS) 658*4882a593Smuzhiyun #define GET_MULTI(b, c) GET_CONTEXT_FIELD(b, c, FSR, MULTI) 659*4882a593Smuzhiyun 660*4882a593Smuzhiyun 661*4882a593Smuzhiyun /* FSYNR0 */ 662*4882a593Smuzhiyun #define GET_AMID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, AMID) 663*4882a593Smuzhiyun #define GET_APID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, APID) 664*4882a593Smuzhiyun #define GET_ABID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, ABID) 665*4882a593Smuzhiyun #define GET_ATID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, ATID) 666*4882a593Smuzhiyun 667*4882a593Smuzhiyun 668*4882a593Smuzhiyun /* FSYNR1 */ 669*4882a593Smuzhiyun #define GET_AMEMTYPE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AMEMTYPE) 670*4882a593Smuzhiyun #define GET_ASHARED(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ASHARED) 671*4882a593Smuzhiyun #define GET_AINNERSHARED(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AINNERSHARED) 672*4882a593Smuzhiyun #define GET_APRIV(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, APRIV) 673*4882a593Smuzhiyun #define GET_APROTNS(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, APROTNS) 674*4882a593Smuzhiyun #define GET_AINST(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AINST) 675*4882a593Smuzhiyun #define GET_AWRITE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AWRITE) 676*4882a593Smuzhiyun #define GET_ABURST(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ABURST) 677*4882a593Smuzhiyun #define GET_ALEN(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ALEN) 678*4882a593Smuzhiyun #define GET_FSYNR1_ASIZE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, FSYNR1_ASIZE) 679*4882a593Smuzhiyun #define GET_ALOCK(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ALOCK) 680*4882a593Smuzhiyun #define GET_AFULL(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AFULL) 681*4882a593Smuzhiyun 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun /* NMRR */ 684*4882a593Smuzhiyun #define GET_ICPC0(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC0) 685*4882a593Smuzhiyun #define GET_ICPC1(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC1) 686*4882a593Smuzhiyun #define GET_ICPC2(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC2) 687*4882a593Smuzhiyun #define GET_ICPC3(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC3) 688*4882a593Smuzhiyun #define GET_ICPC4(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC4) 689*4882a593Smuzhiyun #define GET_ICPC5(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC5) 690*4882a593Smuzhiyun #define GET_ICPC6(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC6) 691*4882a593Smuzhiyun #define GET_ICPC7(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC7) 692*4882a593Smuzhiyun #define GET_OCPC0(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC0) 693*4882a593Smuzhiyun #define GET_OCPC1(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC1) 694*4882a593Smuzhiyun #define GET_OCPC2(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC2) 695*4882a593Smuzhiyun #define GET_OCPC3(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC3) 696*4882a593Smuzhiyun #define GET_OCPC4(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC4) 697*4882a593Smuzhiyun #define GET_OCPC5(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC5) 698*4882a593Smuzhiyun #define GET_OCPC6(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC6) 699*4882a593Smuzhiyun #define GET_OCPC7(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC7) 700*4882a593Smuzhiyun #define NMRR_ICP(nmrr, n) (((nmrr) & (3 << ((n) * 2))) >> ((n) * 2)) 701*4882a593Smuzhiyun #define NMRR_OCP(nmrr, n) (((nmrr) & (3 << ((n) * 2 + 16))) >> \ 702*4882a593Smuzhiyun ((n) * 2 + 16)) 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun /* PAR */ 705*4882a593Smuzhiyun #define GET_FAULT(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT) 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun #define GET_FAULT_TF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_TF) 708*4882a593Smuzhiyun #define GET_FAULT_AFF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_AFF) 709*4882a593Smuzhiyun #define GET_FAULT_APF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_APF) 710*4882a593Smuzhiyun #define GET_FAULT_TLBMF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_TLBMF) 711*4882a593Smuzhiyun #define GET_FAULT_HTWDEEF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWDEEF) 712*4882a593Smuzhiyun #define GET_FAULT_HTWSEEF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWSEEF) 713*4882a593Smuzhiyun #define GET_FAULT_MHF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_MHF) 714*4882a593Smuzhiyun #define GET_FAULT_SL(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_SL) 715*4882a593Smuzhiyun #define GET_FAULT_SS(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_SS) 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun #define GET_NOFAULT_SS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_SS) 718*4882a593Smuzhiyun #define GET_NOFAULT_MT(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_MT) 719*4882a593Smuzhiyun #define GET_NOFAULT_SH(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_SH) 720*4882a593Smuzhiyun #define GET_NOFAULT_NS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_NS) 721*4882a593Smuzhiyun #define GET_NOFAULT_NOS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_NOS) 722*4882a593Smuzhiyun #define GET_NPFAULT_PA(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NPFAULT_PA) 723*4882a593Smuzhiyun 724*4882a593Smuzhiyun 725*4882a593Smuzhiyun /* PRRR */ 726*4882a593Smuzhiyun #define GET_MTC0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC0) 727*4882a593Smuzhiyun #define GET_MTC1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC1) 728*4882a593Smuzhiyun #define GET_MTC2(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC2) 729*4882a593Smuzhiyun #define GET_MTC3(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC3) 730*4882a593Smuzhiyun #define GET_MTC4(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC4) 731*4882a593Smuzhiyun #define GET_MTC5(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC5) 732*4882a593Smuzhiyun #define GET_MTC6(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC6) 733*4882a593Smuzhiyun #define GET_MTC7(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC7) 734*4882a593Smuzhiyun #define GET_SHDSH0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHDSH0) 735*4882a593Smuzhiyun #define GET_SHDSH1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHDSH1) 736*4882a593Smuzhiyun #define GET_SHNMSH0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHNMSH0) 737*4882a593Smuzhiyun #define GET_SHNMSH1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHNMSH1) 738*4882a593Smuzhiyun #define GET_NOS0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS0) 739*4882a593Smuzhiyun #define GET_NOS1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS1) 740*4882a593Smuzhiyun #define GET_NOS2(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS2) 741*4882a593Smuzhiyun #define GET_NOS3(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS3) 742*4882a593Smuzhiyun #define GET_NOS4(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS4) 743*4882a593Smuzhiyun #define GET_NOS5(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS5) 744*4882a593Smuzhiyun #define GET_NOS6(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS6) 745*4882a593Smuzhiyun #define GET_NOS7(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS7) 746*4882a593Smuzhiyun #define PRRR_NOS(prrr, n) ((prrr) & (1 << ((n) + 24)) ? 1 : 0) 747*4882a593Smuzhiyun #define PRRR_MT(prrr, n) ((((prrr) & (3 << ((n) * 2))) >> ((n) * 2))) 748*4882a593Smuzhiyun 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun /* RESUME */ 751*4882a593Smuzhiyun #define GET_TNR(b, c) GET_CONTEXT_FIELD(b, c, RESUME, TNR) 752*4882a593Smuzhiyun 753*4882a593Smuzhiyun 754*4882a593Smuzhiyun /* SCTLR */ 755*4882a593Smuzhiyun #define GET_M(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, M) 756*4882a593Smuzhiyun #define GET_TRE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, TRE) 757*4882a593Smuzhiyun #define GET_AFE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, AFE) 758*4882a593Smuzhiyun #define GET_HAF(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, HAF) 759*4882a593Smuzhiyun #define GET_BE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, BE) 760*4882a593Smuzhiyun #define GET_AFFD(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, AFFD) 761*4882a593Smuzhiyun 762*4882a593Smuzhiyun 763*4882a593Smuzhiyun /* TLBLKCR */ 764*4882a593Smuzhiyun #define GET_LKE(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, LKE) 765*4882a593Smuzhiyun #define GET_TLBLCKR_TLBIALLCFG(b, c) \ 766*4882a593Smuzhiyun GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBLCKR_TLBIALLCFG) 767*4882a593Smuzhiyun #define GET_TLBIASIDCFG(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIASIDCFG) 768*4882a593Smuzhiyun #define GET_TLBIVAACFG(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIVAACFG) 769*4882a593Smuzhiyun #define GET_FLOOR(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, FLOOR) 770*4882a593Smuzhiyun #define GET_VICTIM(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, VICTIM) 771*4882a593Smuzhiyun 772*4882a593Smuzhiyun 773*4882a593Smuzhiyun /* TTBCR */ 774*4882a593Smuzhiyun #define GET_N(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, N) 775*4882a593Smuzhiyun #define GET_PD0(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, PD0) 776*4882a593Smuzhiyun #define GET_PD1(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, PD1) 777*4882a593Smuzhiyun 778*4882a593Smuzhiyun 779*4882a593Smuzhiyun /* TTBR0 */ 780*4882a593Smuzhiyun #define GET_TTBR0_IRGNH(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNH) 781*4882a593Smuzhiyun #define GET_TTBR0_SH(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_SH) 782*4882a593Smuzhiyun #define GET_TTBR0_ORGN(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_ORGN) 783*4882a593Smuzhiyun #define GET_TTBR0_NOS(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_NOS) 784*4882a593Smuzhiyun #define GET_TTBR0_IRGNL(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNL) 785*4882a593Smuzhiyun #define GET_TTBR0_PA(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_PA) 786*4882a593Smuzhiyun 787*4882a593Smuzhiyun 788*4882a593Smuzhiyun /* TTBR1 */ 789*4882a593Smuzhiyun #define GET_TTBR1_IRGNH(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNH) 790*4882a593Smuzhiyun #define GET_TTBR1_SH(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_SH) 791*4882a593Smuzhiyun #define GET_TTBR1_ORGN(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_ORGN) 792*4882a593Smuzhiyun #define GET_TTBR1_NOS(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_NOS) 793*4882a593Smuzhiyun #define GET_TTBR1_IRGNL(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNL) 794*4882a593Smuzhiyun #define GET_TTBR1_PA(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_PA) 795*4882a593Smuzhiyun 796*4882a593Smuzhiyun 797*4882a593Smuzhiyun /* V2PSR */ 798*4882a593Smuzhiyun #define GET_HIT(b, c) GET_CONTEXT_FIELD(b, c, V2PSR, HIT) 799*4882a593Smuzhiyun #define GET_INDEX(b, c) GET_CONTEXT_FIELD(b, c, V2PSR, INDEX) 800*4882a593Smuzhiyun 801*4882a593Smuzhiyun 802*4882a593Smuzhiyun /* Global Registers */ 803*4882a593Smuzhiyun #define M2VCBR_N (0xFF000) 804*4882a593Smuzhiyun #define CBACR_N (0xFF800) 805*4882a593Smuzhiyun #define TLBRSW (0xFFE00) 806*4882a593Smuzhiyun #define TLBTR0 (0xFFE80) 807*4882a593Smuzhiyun #define TLBTR1 (0xFFE84) 808*4882a593Smuzhiyun #define TLBTR2 (0xFFE88) 809*4882a593Smuzhiyun #define TESTBUSCR (0xFFE8C) 810*4882a593Smuzhiyun #define GLOBAL_TLBIALL (0xFFF00) 811*4882a593Smuzhiyun #define TLBIVMID (0xFFF04) 812*4882a593Smuzhiyun #define CR (0xFFF80) 813*4882a593Smuzhiyun #define EAR (0xFFF84) 814*4882a593Smuzhiyun #define ESR (0xFFF88) 815*4882a593Smuzhiyun #define ESRRESTORE (0xFFF8C) 816*4882a593Smuzhiyun #define ESYNR0 (0xFFF90) 817*4882a593Smuzhiyun #define ESYNR1 (0xFFF94) 818*4882a593Smuzhiyun #define REV (0xFFFF4) 819*4882a593Smuzhiyun #define IDR (0xFFFF8) 820*4882a593Smuzhiyun #define RPU_ACR (0xFFFFC) 821*4882a593Smuzhiyun 822*4882a593Smuzhiyun 823*4882a593Smuzhiyun /* Context Bank Registers */ 824*4882a593Smuzhiyun #define SCTLR (0x000) 825*4882a593Smuzhiyun #define ACTLR (0x004) 826*4882a593Smuzhiyun #define CONTEXTIDR (0x008) 827*4882a593Smuzhiyun #define TTBR0 (0x010) 828*4882a593Smuzhiyun #define TTBR1 (0x014) 829*4882a593Smuzhiyun #define TTBCR (0x018) 830*4882a593Smuzhiyun #define PAR (0x01C) 831*4882a593Smuzhiyun #define FSR (0x020) 832*4882a593Smuzhiyun #define FSRRESTORE (0x024) 833*4882a593Smuzhiyun #define FAR (0x028) 834*4882a593Smuzhiyun #define FSYNR0 (0x02C) 835*4882a593Smuzhiyun #define FSYNR1 (0x030) 836*4882a593Smuzhiyun #define PRRR (0x034) 837*4882a593Smuzhiyun #define NMRR (0x038) 838*4882a593Smuzhiyun #define TLBLCKR (0x03C) 839*4882a593Smuzhiyun #define V2PSR (0x040) 840*4882a593Smuzhiyun #define TLBFLPTER (0x044) 841*4882a593Smuzhiyun #define TLBSLPTER (0x048) 842*4882a593Smuzhiyun #define BFBCR (0x04C) 843*4882a593Smuzhiyun #define CTX_TLBIALL (0x800) 844*4882a593Smuzhiyun #define TLBIASID (0x804) 845*4882a593Smuzhiyun #define TLBIVA (0x808) 846*4882a593Smuzhiyun #define TLBIVAA (0x80C) 847*4882a593Smuzhiyun #define V2PPR (0x810) 848*4882a593Smuzhiyun #define V2PPW (0x814) 849*4882a593Smuzhiyun #define V2PUR (0x818) 850*4882a593Smuzhiyun #define V2PUW (0x81C) 851*4882a593Smuzhiyun #define RESUME (0x820) 852*4882a593Smuzhiyun 853*4882a593Smuzhiyun 854*4882a593Smuzhiyun /* Global Register Fields */ 855*4882a593Smuzhiyun /* CBACRn */ 856*4882a593Smuzhiyun #define RWVMID (RWVMID_MASK << RWVMID_SHIFT) 857*4882a593Smuzhiyun #define RWE (RWE_MASK << RWE_SHIFT) 858*4882a593Smuzhiyun #define RWGE (RWGE_MASK << RWGE_SHIFT) 859*4882a593Smuzhiyun #define CBVMID (CBVMID_MASK << CBVMID_SHIFT) 860*4882a593Smuzhiyun #define IRPTNDX (IRPTNDX_MASK << IRPTNDX_SHIFT) 861*4882a593Smuzhiyun 862*4882a593Smuzhiyun 863*4882a593Smuzhiyun /* CR */ 864*4882a593Smuzhiyun #define RPUE (RPUE_MASK << RPUE_SHIFT) 865*4882a593Smuzhiyun #define RPUERE (RPUERE_MASK << RPUERE_SHIFT) 866*4882a593Smuzhiyun #define RPUEIE (RPUEIE_MASK << RPUEIE_SHIFT) 867*4882a593Smuzhiyun #define DCDEE (DCDEE_MASK << DCDEE_SHIFT) 868*4882a593Smuzhiyun #define CLIENTPD (CLIENTPD_MASK << CLIENTPD_SHIFT) 869*4882a593Smuzhiyun #define STALLD (STALLD_MASK << STALLD_SHIFT) 870*4882a593Smuzhiyun #define TLBLKCRWE (TLBLKCRWE_MASK << TLBLKCRWE_SHIFT) 871*4882a593Smuzhiyun #define CR_TLBIALLCFG (CR_TLBIALLCFG_MASK << CR_TLBIALLCFG_SHIFT) 872*4882a593Smuzhiyun #define TLBIVMIDCFG (TLBIVMIDCFG_MASK << TLBIVMIDCFG_SHIFT) 873*4882a593Smuzhiyun #define CR_HUME (CR_HUME_MASK << CR_HUME_SHIFT) 874*4882a593Smuzhiyun 875*4882a593Smuzhiyun 876*4882a593Smuzhiyun /* ESR */ 877*4882a593Smuzhiyun #define CFG (CFG_MASK << CFG_SHIFT) 878*4882a593Smuzhiyun #define BYPASS (BYPASS_MASK << BYPASS_SHIFT) 879*4882a593Smuzhiyun #define ESR_MULTI (ESR_MULTI_MASK << ESR_MULTI_SHIFT) 880*4882a593Smuzhiyun 881*4882a593Smuzhiyun 882*4882a593Smuzhiyun /* ESYNR0 */ 883*4882a593Smuzhiyun #define ESYNR0_AMID (ESYNR0_AMID_MASK << ESYNR0_AMID_SHIFT) 884*4882a593Smuzhiyun #define ESYNR0_APID (ESYNR0_APID_MASK << ESYNR0_APID_SHIFT) 885*4882a593Smuzhiyun #define ESYNR0_ABID (ESYNR0_ABID_MASK << ESYNR0_ABID_SHIFT) 886*4882a593Smuzhiyun #define ESYNR0_AVMID (ESYNR0_AVMID_MASK << ESYNR0_AVMID_SHIFT) 887*4882a593Smuzhiyun #define ESYNR0_ATID (ESYNR0_ATID_MASK << ESYNR0_ATID_SHIFT) 888*4882a593Smuzhiyun 889*4882a593Smuzhiyun 890*4882a593Smuzhiyun /* ESYNR1 */ 891*4882a593Smuzhiyun #define ESYNR1_AMEMTYPE (ESYNR1_AMEMTYPE_MASK << ESYNR1_AMEMTYPE_SHIFT) 892*4882a593Smuzhiyun #define ESYNR1_ASHARED (ESYNR1_ASHARED_MASK << ESYNR1_ASHARED_SHIFT) 893*4882a593Smuzhiyun #define ESYNR1_AINNERSHARED (ESYNR1_AINNERSHARED_MASK<< \ 894*4882a593Smuzhiyun ESYNR1_AINNERSHARED_SHIFT) 895*4882a593Smuzhiyun #define ESYNR1_APRIV (ESYNR1_APRIV_MASK << ESYNR1_APRIV_SHIFT) 896*4882a593Smuzhiyun #define ESYNR1_APROTNS (ESYNR1_APROTNS_MASK << ESYNR1_APROTNS_SHIFT) 897*4882a593Smuzhiyun #define ESYNR1_AINST (ESYNR1_AINST_MASK << ESYNR1_AINST_SHIFT) 898*4882a593Smuzhiyun #define ESYNR1_AWRITE (ESYNR1_AWRITE_MASK << ESYNR1_AWRITE_SHIFT) 899*4882a593Smuzhiyun #define ESYNR1_ABURST (ESYNR1_ABURST_MASK << ESYNR1_ABURST_SHIFT) 900*4882a593Smuzhiyun #define ESYNR1_ALEN (ESYNR1_ALEN_MASK << ESYNR1_ALEN_SHIFT) 901*4882a593Smuzhiyun #define ESYNR1_ASIZE (ESYNR1_ASIZE_MASK << ESYNR1_ASIZE_SHIFT) 902*4882a593Smuzhiyun #define ESYNR1_ALOCK (ESYNR1_ALOCK_MASK << ESYNR1_ALOCK_SHIFT) 903*4882a593Smuzhiyun #define ESYNR1_AOOO (ESYNR1_AOOO_MASK << ESYNR1_AOOO_SHIFT) 904*4882a593Smuzhiyun #define ESYNR1_AFULL (ESYNR1_AFULL_MASK << ESYNR1_AFULL_SHIFT) 905*4882a593Smuzhiyun #define ESYNR1_AC (ESYNR1_AC_MASK << ESYNR1_AC_SHIFT) 906*4882a593Smuzhiyun #define ESYNR1_DCD (ESYNR1_DCD_MASK << ESYNR1_DCD_SHIFT) 907*4882a593Smuzhiyun 908*4882a593Smuzhiyun 909*4882a593Smuzhiyun /* IDR */ 910*4882a593Smuzhiyun #define NM2VCBMT (NM2VCBMT_MASK << NM2VCBMT_SHIFT) 911*4882a593Smuzhiyun #define HTW (HTW_MASK << HTW_SHIFT) 912*4882a593Smuzhiyun #define HUM (HUM_MASK << HUM_SHIFT) 913*4882a593Smuzhiyun #define TLBSIZE (TLBSIZE_MASK << TLBSIZE_SHIFT) 914*4882a593Smuzhiyun #define NCB (NCB_MASK << NCB_SHIFT) 915*4882a593Smuzhiyun #define NIRPT (NIRPT_MASK << NIRPT_SHIFT) 916*4882a593Smuzhiyun 917*4882a593Smuzhiyun 918*4882a593Smuzhiyun /* M2VCBRn */ 919*4882a593Smuzhiyun #define VMID (VMID_MASK << VMID_SHIFT) 920*4882a593Smuzhiyun #define CBNDX (CBNDX_MASK << CBNDX_SHIFT) 921*4882a593Smuzhiyun #define BYPASSD (BYPASSD_MASK << BYPASSD_SHIFT) 922*4882a593Smuzhiyun #define BPRCOSH (BPRCOSH_MASK << BPRCOSH_SHIFT) 923*4882a593Smuzhiyun #define BPRCISH (BPRCISH_MASK << BPRCISH_SHIFT) 924*4882a593Smuzhiyun #define BPRCNSH (BPRCNSH_MASK << BPRCNSH_SHIFT) 925*4882a593Smuzhiyun #define BPSHCFG (BPSHCFG_MASK << BPSHCFG_SHIFT) 926*4882a593Smuzhiyun #define NSCFG (NSCFG_MASK << NSCFG_SHIFT) 927*4882a593Smuzhiyun #define BPMTCFG (BPMTCFG_MASK << BPMTCFG_SHIFT) 928*4882a593Smuzhiyun #define BPMEMTYPE (BPMEMTYPE_MASK << BPMEMTYPE_SHIFT) 929*4882a593Smuzhiyun 930*4882a593Smuzhiyun 931*4882a593Smuzhiyun /* REV */ 932*4882a593Smuzhiyun #define IDR_MINOR (MINOR_MASK << MINOR_SHIFT) 933*4882a593Smuzhiyun #define IDR_MAJOR (MAJOR_MASK << MAJOR_SHIFT) 934*4882a593Smuzhiyun 935*4882a593Smuzhiyun 936*4882a593Smuzhiyun /* TESTBUSCR */ 937*4882a593Smuzhiyun #define TBE (TBE_MASK << TBE_SHIFT) 938*4882a593Smuzhiyun #define SPDMBE (SPDMBE_MASK << SPDMBE_SHIFT) 939*4882a593Smuzhiyun #define WGSEL (WGSEL_MASK << WGSEL_SHIFT) 940*4882a593Smuzhiyun #define TBLSEL (TBLSEL_MASK << TBLSEL_SHIFT) 941*4882a593Smuzhiyun #define TBHSEL (TBHSEL_MASK << TBHSEL_SHIFT) 942*4882a593Smuzhiyun #define SPDM0SEL (SPDM0SEL_MASK << SPDM0SEL_SHIFT) 943*4882a593Smuzhiyun #define SPDM1SEL (SPDM1SEL_MASK << SPDM1SEL_SHIFT) 944*4882a593Smuzhiyun #define SPDM2SEL (SPDM2SEL_MASK << SPDM2SEL_SHIFT) 945*4882a593Smuzhiyun #define SPDM3SEL (SPDM3SEL_MASK << SPDM3SEL_SHIFT) 946*4882a593Smuzhiyun 947*4882a593Smuzhiyun 948*4882a593Smuzhiyun /* TLBIVMID */ 949*4882a593Smuzhiyun #define TLBIVMID_VMID (TLBIVMID_VMID_MASK << TLBIVMID_VMID_SHIFT) 950*4882a593Smuzhiyun 951*4882a593Smuzhiyun 952*4882a593Smuzhiyun /* TLBRSW */ 953*4882a593Smuzhiyun #define TLBRSW_INDEX (TLBRSW_INDEX_MASK << TLBRSW_INDEX_SHIFT) 954*4882a593Smuzhiyun #define TLBBFBS (TLBBFBS_MASK << TLBBFBS_SHIFT) 955*4882a593Smuzhiyun 956*4882a593Smuzhiyun 957*4882a593Smuzhiyun /* TLBTR0 */ 958*4882a593Smuzhiyun #define PR (PR_MASK << PR_SHIFT) 959*4882a593Smuzhiyun #define PW (PW_MASK << PW_SHIFT) 960*4882a593Smuzhiyun #define UR (UR_MASK << UR_SHIFT) 961*4882a593Smuzhiyun #define UW (UW_MASK << UW_SHIFT) 962*4882a593Smuzhiyun #define XN (XN_MASK << XN_SHIFT) 963*4882a593Smuzhiyun #define NSDESC (NSDESC_MASK << NSDESC_SHIFT) 964*4882a593Smuzhiyun #define ISH (ISH_MASK << ISH_SHIFT) 965*4882a593Smuzhiyun #define SH (SH_MASK << SH_SHIFT) 966*4882a593Smuzhiyun #define MT (MT_MASK << MT_SHIFT) 967*4882a593Smuzhiyun #define DPSIZR (DPSIZR_MASK << DPSIZR_SHIFT) 968*4882a593Smuzhiyun #define DPSIZC (DPSIZC_MASK << DPSIZC_SHIFT) 969*4882a593Smuzhiyun 970*4882a593Smuzhiyun 971*4882a593Smuzhiyun /* TLBTR1 */ 972*4882a593Smuzhiyun #define TLBTR1_VMID (TLBTR1_VMID_MASK << TLBTR1_VMID_SHIFT) 973*4882a593Smuzhiyun #define TLBTR1_PA (TLBTR1_PA_MASK << TLBTR1_PA_SHIFT) 974*4882a593Smuzhiyun 975*4882a593Smuzhiyun 976*4882a593Smuzhiyun /* TLBTR2 */ 977*4882a593Smuzhiyun #define TLBTR2_ASID (TLBTR2_ASID_MASK << TLBTR2_ASID_SHIFT) 978*4882a593Smuzhiyun #define TLBTR2_V (TLBTR2_V_MASK << TLBTR2_V_SHIFT) 979*4882a593Smuzhiyun #define TLBTR2_NSTID (TLBTR2_NSTID_MASK << TLBTR2_NSTID_SHIFT) 980*4882a593Smuzhiyun #define TLBTR2_NV (TLBTR2_NV_MASK << TLBTR2_NV_SHIFT) 981*4882a593Smuzhiyun #define TLBTR2_VA (TLBTR2_VA_MASK << TLBTR2_VA_SHIFT) 982*4882a593Smuzhiyun 983*4882a593Smuzhiyun 984*4882a593Smuzhiyun /* Context Register Fields */ 985*4882a593Smuzhiyun /* ACTLR */ 986*4882a593Smuzhiyun #define CFERE (CFERE_MASK << CFERE_SHIFT) 987*4882a593Smuzhiyun #define CFEIE (CFEIE_MASK << CFEIE_SHIFT) 988*4882a593Smuzhiyun #define PTSHCFG (PTSHCFG_MASK << PTSHCFG_SHIFT) 989*4882a593Smuzhiyun #define RCOSH (RCOSH_MASK << RCOSH_SHIFT) 990*4882a593Smuzhiyun #define RCISH (RCISH_MASK << RCISH_SHIFT) 991*4882a593Smuzhiyun #define RCNSH (RCNSH_MASK << RCNSH_SHIFT) 992*4882a593Smuzhiyun #define PRIVCFG (PRIVCFG_MASK << PRIVCFG_SHIFT) 993*4882a593Smuzhiyun #define DNA (DNA_MASK << DNA_SHIFT) 994*4882a593Smuzhiyun #define DNLV2PA (DNLV2PA_MASK << DNLV2PA_SHIFT) 995*4882a593Smuzhiyun #define TLBMCFG (TLBMCFG_MASK << TLBMCFG_SHIFT) 996*4882a593Smuzhiyun #define CFCFG (CFCFG_MASK << CFCFG_SHIFT) 997*4882a593Smuzhiyun #define TIPCF (TIPCF_MASK << TIPCF_SHIFT) 998*4882a593Smuzhiyun #define V2PCFG (V2PCFG_MASK << V2PCFG_SHIFT) 999*4882a593Smuzhiyun #define HUME (HUME_MASK << HUME_SHIFT) 1000*4882a593Smuzhiyun #define PTMTCFG (PTMTCFG_MASK << PTMTCFG_SHIFT) 1001*4882a593Smuzhiyun #define PTMEMTYPE (PTMEMTYPE_MASK << PTMEMTYPE_SHIFT) 1002*4882a593Smuzhiyun 1003*4882a593Smuzhiyun 1004*4882a593Smuzhiyun /* BFBCR */ 1005*4882a593Smuzhiyun #define BFBDFE (BFBDFE_MASK << BFBDFE_SHIFT) 1006*4882a593Smuzhiyun #define BFBSFE (BFBSFE_MASK << BFBSFE_SHIFT) 1007*4882a593Smuzhiyun #define SFVS (SFVS_MASK << SFVS_SHIFT) 1008*4882a593Smuzhiyun #define FLVIC (FLVIC_MASK << FLVIC_SHIFT) 1009*4882a593Smuzhiyun #define SLVIC (SLVIC_MASK << SLVIC_SHIFT) 1010*4882a593Smuzhiyun 1011*4882a593Smuzhiyun 1012*4882a593Smuzhiyun /* CONTEXTIDR */ 1013*4882a593Smuzhiyun #define CONTEXTIDR_ASID (CONTEXTIDR_ASID_MASK << CONTEXTIDR_ASID_SHIFT) 1014*4882a593Smuzhiyun #define PROCID (PROCID_MASK << PROCID_SHIFT) 1015*4882a593Smuzhiyun 1016*4882a593Smuzhiyun 1017*4882a593Smuzhiyun /* FSR */ 1018*4882a593Smuzhiyun #define TF (TF_MASK << TF_SHIFT) 1019*4882a593Smuzhiyun #define AFF (AFF_MASK << AFF_SHIFT) 1020*4882a593Smuzhiyun #define APF (APF_MASK << APF_SHIFT) 1021*4882a593Smuzhiyun #define TLBMF (TLBMF_MASK << TLBMF_SHIFT) 1022*4882a593Smuzhiyun #define HTWDEEF (HTWDEEF_MASK << HTWDEEF_SHIFT) 1023*4882a593Smuzhiyun #define HTWSEEF (HTWSEEF_MASK << HTWSEEF_SHIFT) 1024*4882a593Smuzhiyun #define MHF (MHF_MASK << MHF_SHIFT) 1025*4882a593Smuzhiyun #define SL (SL_MASK << SL_SHIFT) 1026*4882a593Smuzhiyun #define SS (SS_MASK << SS_SHIFT) 1027*4882a593Smuzhiyun #define MULTI (MULTI_MASK << MULTI_SHIFT) 1028*4882a593Smuzhiyun 1029*4882a593Smuzhiyun 1030*4882a593Smuzhiyun /* FSYNR0 */ 1031*4882a593Smuzhiyun #define AMID (AMID_MASK << AMID_SHIFT) 1032*4882a593Smuzhiyun #define APID (APID_MASK << APID_SHIFT) 1033*4882a593Smuzhiyun #define ABID (ABID_MASK << ABID_SHIFT) 1034*4882a593Smuzhiyun #define ATID (ATID_MASK << ATID_SHIFT) 1035*4882a593Smuzhiyun 1036*4882a593Smuzhiyun 1037*4882a593Smuzhiyun /* FSYNR1 */ 1038*4882a593Smuzhiyun #define AMEMTYPE (AMEMTYPE_MASK << AMEMTYPE_SHIFT) 1039*4882a593Smuzhiyun #define ASHARED (ASHARED_MASK << ASHARED_SHIFT) 1040*4882a593Smuzhiyun #define AINNERSHARED (AINNERSHARED_MASK << AINNERSHARED_SHIFT) 1041*4882a593Smuzhiyun #define APRIV (APRIV_MASK << APRIV_SHIFT) 1042*4882a593Smuzhiyun #define APROTNS (APROTNS_MASK << APROTNS_SHIFT) 1043*4882a593Smuzhiyun #define AINST (AINST_MASK << AINST_SHIFT) 1044*4882a593Smuzhiyun #define AWRITE (AWRITE_MASK << AWRITE_SHIFT) 1045*4882a593Smuzhiyun #define ABURST (ABURST_MASK << ABURST_SHIFT) 1046*4882a593Smuzhiyun #define ALEN (ALEN_MASK << ALEN_SHIFT) 1047*4882a593Smuzhiyun #define FSYNR1_ASIZE (FSYNR1_ASIZE_MASK << FSYNR1_ASIZE_SHIFT) 1048*4882a593Smuzhiyun #define ALOCK (ALOCK_MASK << ALOCK_SHIFT) 1049*4882a593Smuzhiyun #define AFULL (AFULL_MASK << AFULL_SHIFT) 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun 1052*4882a593Smuzhiyun /* NMRR */ 1053*4882a593Smuzhiyun #define ICPC0 (ICPC0_MASK << ICPC0_SHIFT) 1054*4882a593Smuzhiyun #define ICPC1 (ICPC1_MASK << ICPC1_SHIFT) 1055*4882a593Smuzhiyun #define ICPC2 (ICPC2_MASK << ICPC2_SHIFT) 1056*4882a593Smuzhiyun #define ICPC3 (ICPC3_MASK << ICPC3_SHIFT) 1057*4882a593Smuzhiyun #define ICPC4 (ICPC4_MASK << ICPC4_SHIFT) 1058*4882a593Smuzhiyun #define ICPC5 (ICPC5_MASK << ICPC5_SHIFT) 1059*4882a593Smuzhiyun #define ICPC6 (ICPC6_MASK << ICPC6_SHIFT) 1060*4882a593Smuzhiyun #define ICPC7 (ICPC7_MASK << ICPC7_SHIFT) 1061*4882a593Smuzhiyun #define OCPC0 (OCPC0_MASK << OCPC0_SHIFT) 1062*4882a593Smuzhiyun #define OCPC1 (OCPC1_MASK << OCPC1_SHIFT) 1063*4882a593Smuzhiyun #define OCPC2 (OCPC2_MASK << OCPC2_SHIFT) 1064*4882a593Smuzhiyun #define OCPC3 (OCPC3_MASK << OCPC3_SHIFT) 1065*4882a593Smuzhiyun #define OCPC4 (OCPC4_MASK << OCPC4_SHIFT) 1066*4882a593Smuzhiyun #define OCPC5 (OCPC5_MASK << OCPC5_SHIFT) 1067*4882a593Smuzhiyun #define OCPC6 (OCPC6_MASK << OCPC6_SHIFT) 1068*4882a593Smuzhiyun #define OCPC7 (OCPC7_MASK << OCPC7_SHIFT) 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyun 1071*4882a593Smuzhiyun /* PAR */ 1072*4882a593Smuzhiyun #define FAULT (FAULT_MASK << FAULT_SHIFT) 1073*4882a593Smuzhiyun /* If a fault is present, these are the 1074*4882a593Smuzhiyun same as the fault fields in the FAR */ 1075*4882a593Smuzhiyun #define FAULT_TF (FAULT_TF_MASK << FAULT_TF_SHIFT) 1076*4882a593Smuzhiyun #define FAULT_AFF (FAULT_AFF_MASK << FAULT_AFF_SHIFT) 1077*4882a593Smuzhiyun #define FAULT_APF (FAULT_APF_MASK << FAULT_APF_SHIFT) 1078*4882a593Smuzhiyun #define FAULT_TLBMF (FAULT_TLBMF_MASK << FAULT_TLBMF_SHIFT) 1079*4882a593Smuzhiyun #define FAULT_HTWDEEF (FAULT_HTWDEEF_MASK << FAULT_HTWDEEF_SHIFT) 1080*4882a593Smuzhiyun #define FAULT_HTWSEEF (FAULT_HTWSEEF_MASK << FAULT_HTWSEEF_SHIFT) 1081*4882a593Smuzhiyun #define FAULT_MHF (FAULT_MHF_MASK << FAULT_MHF_SHIFT) 1082*4882a593Smuzhiyun #define FAULT_SL (FAULT_SL_MASK << FAULT_SL_SHIFT) 1083*4882a593Smuzhiyun #define FAULT_SS (FAULT_SS_MASK << FAULT_SS_SHIFT) 1084*4882a593Smuzhiyun 1085*4882a593Smuzhiyun /* If NO fault is present, the following fields are in effect */ 1086*4882a593Smuzhiyun /* (FAULT remains as before) */ 1087*4882a593Smuzhiyun #define PAR_NOFAULT_SS (PAR_NOFAULT_SS_MASK << PAR_NOFAULT_SS_SHIFT) 1088*4882a593Smuzhiyun #define PAR_NOFAULT_MT (PAR_NOFAULT_MT_MASK << PAR_NOFAULT_MT_SHIFT) 1089*4882a593Smuzhiyun #define PAR_NOFAULT_SH (PAR_NOFAULT_SH_MASK << PAR_NOFAULT_SH_SHIFT) 1090*4882a593Smuzhiyun #define PAR_NOFAULT_NS (PAR_NOFAULT_NS_MASK << PAR_NOFAULT_NS_SHIFT) 1091*4882a593Smuzhiyun #define PAR_NOFAULT_NOS (PAR_NOFAULT_NOS_MASK << PAR_NOFAULT_NOS_SHIFT) 1092*4882a593Smuzhiyun #define PAR_NPFAULT_PA (PAR_NPFAULT_PA_MASK << PAR_NPFAULT_PA_SHIFT) 1093*4882a593Smuzhiyun 1094*4882a593Smuzhiyun 1095*4882a593Smuzhiyun /* PRRR */ 1096*4882a593Smuzhiyun #define MTC0 (MTC0_MASK << MTC0_SHIFT) 1097*4882a593Smuzhiyun #define MTC1 (MTC1_MASK << MTC1_SHIFT) 1098*4882a593Smuzhiyun #define MTC2 (MTC2_MASK << MTC2_SHIFT) 1099*4882a593Smuzhiyun #define MTC3 (MTC3_MASK << MTC3_SHIFT) 1100*4882a593Smuzhiyun #define MTC4 (MTC4_MASK << MTC4_SHIFT) 1101*4882a593Smuzhiyun #define MTC5 (MTC5_MASK << MTC5_SHIFT) 1102*4882a593Smuzhiyun #define MTC6 (MTC6_MASK << MTC6_SHIFT) 1103*4882a593Smuzhiyun #define MTC7 (MTC7_MASK << MTC7_SHIFT) 1104*4882a593Smuzhiyun #define SHDSH0 (SHDSH0_MASK << SHDSH0_SHIFT) 1105*4882a593Smuzhiyun #define SHDSH1 (SHDSH1_MASK << SHDSH1_SHIFT) 1106*4882a593Smuzhiyun #define SHNMSH0 (SHNMSH0_MASK << SHNMSH0_SHIFT) 1107*4882a593Smuzhiyun #define SHNMSH1 (SHNMSH1_MASK << SHNMSH1_SHIFT) 1108*4882a593Smuzhiyun #define NOS0 (NOS0_MASK << NOS0_SHIFT) 1109*4882a593Smuzhiyun #define NOS1 (NOS1_MASK << NOS1_SHIFT) 1110*4882a593Smuzhiyun #define NOS2 (NOS2_MASK << NOS2_SHIFT) 1111*4882a593Smuzhiyun #define NOS3 (NOS3_MASK << NOS3_SHIFT) 1112*4882a593Smuzhiyun #define NOS4 (NOS4_MASK << NOS4_SHIFT) 1113*4882a593Smuzhiyun #define NOS5 (NOS5_MASK << NOS5_SHIFT) 1114*4882a593Smuzhiyun #define NOS6 (NOS6_MASK << NOS6_SHIFT) 1115*4882a593Smuzhiyun #define NOS7 (NOS7_MASK << NOS7_SHIFT) 1116*4882a593Smuzhiyun 1117*4882a593Smuzhiyun 1118*4882a593Smuzhiyun /* RESUME */ 1119*4882a593Smuzhiyun #define TNR (TNR_MASK << TNR_SHIFT) 1120*4882a593Smuzhiyun 1121*4882a593Smuzhiyun 1122*4882a593Smuzhiyun /* SCTLR */ 1123*4882a593Smuzhiyun #define M (M_MASK << M_SHIFT) 1124*4882a593Smuzhiyun #define TRE (TRE_MASK << TRE_SHIFT) 1125*4882a593Smuzhiyun #define AFE (AFE_MASK << AFE_SHIFT) 1126*4882a593Smuzhiyun #define HAF (HAF_MASK << HAF_SHIFT) 1127*4882a593Smuzhiyun #define BE (BE_MASK << BE_SHIFT) 1128*4882a593Smuzhiyun #define AFFD (AFFD_MASK << AFFD_SHIFT) 1129*4882a593Smuzhiyun 1130*4882a593Smuzhiyun 1131*4882a593Smuzhiyun /* TLBIASID */ 1132*4882a593Smuzhiyun #define TLBIASID_ASID (TLBIASID_ASID_MASK << TLBIASID_ASID_SHIFT) 1133*4882a593Smuzhiyun 1134*4882a593Smuzhiyun 1135*4882a593Smuzhiyun /* TLBIVA */ 1136*4882a593Smuzhiyun #define TLBIVA_ASID (TLBIVA_ASID_MASK << TLBIVA_ASID_SHIFT) 1137*4882a593Smuzhiyun #define TLBIVA_VA (TLBIVA_VA_MASK << TLBIVA_VA_SHIFT) 1138*4882a593Smuzhiyun 1139*4882a593Smuzhiyun 1140*4882a593Smuzhiyun /* TLBIVAA */ 1141*4882a593Smuzhiyun #define TLBIVAA_VA (TLBIVAA_VA_MASK << TLBIVAA_VA_SHIFT) 1142*4882a593Smuzhiyun 1143*4882a593Smuzhiyun 1144*4882a593Smuzhiyun /* TLBLCKR */ 1145*4882a593Smuzhiyun #define LKE (LKE_MASK << LKE_SHIFT) 1146*4882a593Smuzhiyun #define TLBLCKR_TLBIALLCFG (TLBLCKR_TLBIALLCFG_MASK<<TLBLCKR_TLBIALLCFG_SHIFT) 1147*4882a593Smuzhiyun #define TLBIASIDCFG (TLBIASIDCFG_MASK << TLBIASIDCFG_SHIFT) 1148*4882a593Smuzhiyun #define TLBIVAACFG (TLBIVAACFG_MASK << TLBIVAACFG_SHIFT) 1149*4882a593Smuzhiyun #define FLOOR (FLOOR_MASK << FLOOR_SHIFT) 1150*4882a593Smuzhiyun #define VICTIM (VICTIM_MASK << VICTIM_SHIFT) 1151*4882a593Smuzhiyun 1152*4882a593Smuzhiyun 1153*4882a593Smuzhiyun /* TTBCR */ 1154*4882a593Smuzhiyun #define N (N_MASK << N_SHIFT) 1155*4882a593Smuzhiyun #define PD0 (PD0_MASK << PD0_SHIFT) 1156*4882a593Smuzhiyun #define PD1 (PD1_MASK << PD1_SHIFT) 1157*4882a593Smuzhiyun 1158*4882a593Smuzhiyun 1159*4882a593Smuzhiyun /* TTBR0 */ 1160*4882a593Smuzhiyun #define TTBR0_IRGNH (TTBR0_IRGNH_MASK << TTBR0_IRGNH_SHIFT) 1161*4882a593Smuzhiyun #define TTBR0_SH (TTBR0_SH_MASK << TTBR0_SH_SHIFT) 1162*4882a593Smuzhiyun #define TTBR0_ORGN (TTBR0_ORGN_MASK << TTBR0_ORGN_SHIFT) 1163*4882a593Smuzhiyun #define TTBR0_NOS (TTBR0_NOS_MASK << TTBR0_NOS_SHIFT) 1164*4882a593Smuzhiyun #define TTBR0_IRGNL (TTBR0_IRGNL_MASK << TTBR0_IRGNL_SHIFT) 1165*4882a593Smuzhiyun #define TTBR0_PA (TTBR0_PA_MASK << TTBR0_PA_SHIFT) 1166*4882a593Smuzhiyun 1167*4882a593Smuzhiyun 1168*4882a593Smuzhiyun /* TTBR1 */ 1169*4882a593Smuzhiyun #define TTBR1_IRGNH (TTBR1_IRGNH_MASK << TTBR1_IRGNH_SHIFT) 1170*4882a593Smuzhiyun #define TTBR1_SH (TTBR1_SH_MASK << TTBR1_SH_SHIFT) 1171*4882a593Smuzhiyun #define TTBR1_ORGN (TTBR1_ORGN_MASK << TTBR1_ORGN_SHIFT) 1172*4882a593Smuzhiyun #define TTBR1_NOS (TTBR1_NOS_MASK << TTBR1_NOS_SHIFT) 1173*4882a593Smuzhiyun #define TTBR1_IRGNL (TTBR1_IRGNL_MASK << TTBR1_IRGNL_SHIFT) 1174*4882a593Smuzhiyun #define TTBR1_PA (TTBR1_PA_MASK << TTBR1_PA_SHIFT) 1175*4882a593Smuzhiyun 1176*4882a593Smuzhiyun 1177*4882a593Smuzhiyun /* V2PSR */ 1178*4882a593Smuzhiyun #define HIT (HIT_MASK << HIT_SHIFT) 1179*4882a593Smuzhiyun #define INDEX (INDEX_MASK << INDEX_SHIFT) 1180*4882a593Smuzhiyun 1181*4882a593Smuzhiyun 1182*4882a593Smuzhiyun /* V2Pxx */ 1183*4882a593Smuzhiyun #define V2Pxx_INDEX (V2Pxx_INDEX_MASK << V2Pxx_INDEX_SHIFT) 1184*4882a593Smuzhiyun #define V2Pxx_VA (V2Pxx_VA_MASK << V2Pxx_VA_SHIFT) 1185*4882a593Smuzhiyun 1186*4882a593Smuzhiyun 1187*4882a593Smuzhiyun /* Global Register Masks */ 1188*4882a593Smuzhiyun /* CBACRn */ 1189*4882a593Smuzhiyun #define RWVMID_MASK 0x1F 1190*4882a593Smuzhiyun #define RWE_MASK 0x01 1191*4882a593Smuzhiyun #define RWGE_MASK 0x01 1192*4882a593Smuzhiyun #define CBVMID_MASK 0x1F 1193*4882a593Smuzhiyun #define IRPTNDX_MASK 0xFF 1194*4882a593Smuzhiyun 1195*4882a593Smuzhiyun 1196*4882a593Smuzhiyun /* CR */ 1197*4882a593Smuzhiyun #define RPUE_MASK 0x01 1198*4882a593Smuzhiyun #define RPUERE_MASK 0x01 1199*4882a593Smuzhiyun #define RPUEIE_MASK 0x01 1200*4882a593Smuzhiyun #define DCDEE_MASK 0x01 1201*4882a593Smuzhiyun #define CLIENTPD_MASK 0x01 1202*4882a593Smuzhiyun #define STALLD_MASK 0x01 1203*4882a593Smuzhiyun #define TLBLKCRWE_MASK 0x01 1204*4882a593Smuzhiyun #define CR_TLBIALLCFG_MASK 0x01 1205*4882a593Smuzhiyun #define TLBIVMIDCFG_MASK 0x01 1206*4882a593Smuzhiyun #define CR_HUME_MASK 0x01 1207*4882a593Smuzhiyun 1208*4882a593Smuzhiyun 1209*4882a593Smuzhiyun /* ESR */ 1210*4882a593Smuzhiyun #define CFG_MASK 0x01 1211*4882a593Smuzhiyun #define BYPASS_MASK 0x01 1212*4882a593Smuzhiyun #define ESR_MULTI_MASK 0x01 1213*4882a593Smuzhiyun 1214*4882a593Smuzhiyun 1215*4882a593Smuzhiyun /* ESYNR0 */ 1216*4882a593Smuzhiyun #define ESYNR0_AMID_MASK 0xFF 1217*4882a593Smuzhiyun #define ESYNR0_APID_MASK 0x1F 1218*4882a593Smuzhiyun #define ESYNR0_ABID_MASK 0x07 1219*4882a593Smuzhiyun #define ESYNR0_AVMID_MASK 0x1F 1220*4882a593Smuzhiyun #define ESYNR0_ATID_MASK 0xFF 1221*4882a593Smuzhiyun 1222*4882a593Smuzhiyun 1223*4882a593Smuzhiyun /* ESYNR1 */ 1224*4882a593Smuzhiyun #define ESYNR1_AMEMTYPE_MASK 0x07 1225*4882a593Smuzhiyun #define ESYNR1_ASHARED_MASK 0x01 1226*4882a593Smuzhiyun #define ESYNR1_AINNERSHARED_MASK 0x01 1227*4882a593Smuzhiyun #define ESYNR1_APRIV_MASK 0x01 1228*4882a593Smuzhiyun #define ESYNR1_APROTNS_MASK 0x01 1229*4882a593Smuzhiyun #define ESYNR1_AINST_MASK 0x01 1230*4882a593Smuzhiyun #define ESYNR1_AWRITE_MASK 0x01 1231*4882a593Smuzhiyun #define ESYNR1_ABURST_MASK 0x01 1232*4882a593Smuzhiyun #define ESYNR1_ALEN_MASK 0x0F 1233*4882a593Smuzhiyun #define ESYNR1_ASIZE_MASK 0x01 1234*4882a593Smuzhiyun #define ESYNR1_ALOCK_MASK 0x03 1235*4882a593Smuzhiyun #define ESYNR1_AOOO_MASK 0x01 1236*4882a593Smuzhiyun #define ESYNR1_AFULL_MASK 0x01 1237*4882a593Smuzhiyun #define ESYNR1_AC_MASK 0x01 1238*4882a593Smuzhiyun #define ESYNR1_DCD_MASK 0x01 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun 1241*4882a593Smuzhiyun /* IDR */ 1242*4882a593Smuzhiyun #define NM2VCBMT_MASK 0x1FF 1243*4882a593Smuzhiyun #define HTW_MASK 0x01 1244*4882a593Smuzhiyun #define HUM_MASK 0x01 1245*4882a593Smuzhiyun #define TLBSIZE_MASK 0x0F 1246*4882a593Smuzhiyun #define NCB_MASK 0xFF 1247*4882a593Smuzhiyun #define NIRPT_MASK 0xFF 1248*4882a593Smuzhiyun 1249*4882a593Smuzhiyun 1250*4882a593Smuzhiyun /* M2VCBRn */ 1251*4882a593Smuzhiyun #define VMID_MASK 0x1F 1252*4882a593Smuzhiyun #define CBNDX_MASK 0xFF 1253*4882a593Smuzhiyun #define BYPASSD_MASK 0x01 1254*4882a593Smuzhiyun #define BPRCOSH_MASK 0x01 1255*4882a593Smuzhiyun #define BPRCISH_MASK 0x01 1256*4882a593Smuzhiyun #define BPRCNSH_MASK 0x01 1257*4882a593Smuzhiyun #define BPSHCFG_MASK 0x03 1258*4882a593Smuzhiyun #define NSCFG_MASK 0x03 1259*4882a593Smuzhiyun #define BPMTCFG_MASK 0x01 1260*4882a593Smuzhiyun #define BPMEMTYPE_MASK 0x07 1261*4882a593Smuzhiyun 1262*4882a593Smuzhiyun 1263*4882a593Smuzhiyun /* REV */ 1264*4882a593Smuzhiyun #define MINOR_MASK 0x0F 1265*4882a593Smuzhiyun #define MAJOR_MASK 0x0F 1266*4882a593Smuzhiyun 1267*4882a593Smuzhiyun 1268*4882a593Smuzhiyun /* TESTBUSCR */ 1269*4882a593Smuzhiyun #define TBE_MASK 0x01 1270*4882a593Smuzhiyun #define SPDMBE_MASK 0x01 1271*4882a593Smuzhiyun #define WGSEL_MASK 0x03 1272*4882a593Smuzhiyun #define TBLSEL_MASK 0x03 1273*4882a593Smuzhiyun #define TBHSEL_MASK 0x03 1274*4882a593Smuzhiyun #define SPDM0SEL_MASK 0x0F 1275*4882a593Smuzhiyun #define SPDM1SEL_MASK 0x0F 1276*4882a593Smuzhiyun #define SPDM2SEL_MASK 0x0F 1277*4882a593Smuzhiyun #define SPDM3SEL_MASK 0x0F 1278*4882a593Smuzhiyun 1279*4882a593Smuzhiyun 1280*4882a593Smuzhiyun /* TLBIMID */ 1281*4882a593Smuzhiyun #define TLBIVMID_VMID_MASK 0x1F 1282*4882a593Smuzhiyun 1283*4882a593Smuzhiyun 1284*4882a593Smuzhiyun /* TLBRSW */ 1285*4882a593Smuzhiyun #define TLBRSW_INDEX_MASK 0xFF 1286*4882a593Smuzhiyun #define TLBBFBS_MASK 0x03 1287*4882a593Smuzhiyun 1288*4882a593Smuzhiyun 1289*4882a593Smuzhiyun /* TLBTR0 */ 1290*4882a593Smuzhiyun #define PR_MASK 0x01 1291*4882a593Smuzhiyun #define PW_MASK 0x01 1292*4882a593Smuzhiyun #define UR_MASK 0x01 1293*4882a593Smuzhiyun #define UW_MASK 0x01 1294*4882a593Smuzhiyun #define XN_MASK 0x01 1295*4882a593Smuzhiyun #define NSDESC_MASK 0x01 1296*4882a593Smuzhiyun #define ISH_MASK 0x01 1297*4882a593Smuzhiyun #define SH_MASK 0x01 1298*4882a593Smuzhiyun #define MT_MASK 0x07 1299*4882a593Smuzhiyun #define DPSIZR_MASK 0x07 1300*4882a593Smuzhiyun #define DPSIZC_MASK 0x07 1301*4882a593Smuzhiyun 1302*4882a593Smuzhiyun 1303*4882a593Smuzhiyun /* TLBTR1 */ 1304*4882a593Smuzhiyun #define TLBTR1_VMID_MASK 0x1F 1305*4882a593Smuzhiyun #define TLBTR1_PA_MASK 0x000FFFFF 1306*4882a593Smuzhiyun 1307*4882a593Smuzhiyun 1308*4882a593Smuzhiyun /* TLBTR2 */ 1309*4882a593Smuzhiyun #define TLBTR2_ASID_MASK 0xFF 1310*4882a593Smuzhiyun #define TLBTR2_V_MASK 0x01 1311*4882a593Smuzhiyun #define TLBTR2_NSTID_MASK 0x01 1312*4882a593Smuzhiyun #define TLBTR2_NV_MASK 0x01 1313*4882a593Smuzhiyun #define TLBTR2_VA_MASK 0x000FFFFF 1314*4882a593Smuzhiyun 1315*4882a593Smuzhiyun 1316*4882a593Smuzhiyun /* Global Register Shifts */ 1317*4882a593Smuzhiyun /* CBACRn */ 1318*4882a593Smuzhiyun #define RWVMID_SHIFT 0 1319*4882a593Smuzhiyun #define RWE_SHIFT 8 1320*4882a593Smuzhiyun #define RWGE_SHIFT 9 1321*4882a593Smuzhiyun #define CBVMID_SHIFT 16 1322*4882a593Smuzhiyun #define IRPTNDX_SHIFT 24 1323*4882a593Smuzhiyun 1324*4882a593Smuzhiyun 1325*4882a593Smuzhiyun /* CR */ 1326*4882a593Smuzhiyun #define RPUE_SHIFT 0 1327*4882a593Smuzhiyun #define RPUERE_SHIFT 1 1328*4882a593Smuzhiyun #define RPUEIE_SHIFT 2 1329*4882a593Smuzhiyun #define DCDEE_SHIFT 3 1330*4882a593Smuzhiyun #define CLIENTPD_SHIFT 4 1331*4882a593Smuzhiyun #define STALLD_SHIFT 5 1332*4882a593Smuzhiyun #define TLBLKCRWE_SHIFT 6 1333*4882a593Smuzhiyun #define CR_TLBIALLCFG_SHIFT 7 1334*4882a593Smuzhiyun #define TLBIVMIDCFG_SHIFT 8 1335*4882a593Smuzhiyun #define CR_HUME_SHIFT 9 1336*4882a593Smuzhiyun 1337*4882a593Smuzhiyun 1338*4882a593Smuzhiyun /* ESR */ 1339*4882a593Smuzhiyun #define CFG_SHIFT 0 1340*4882a593Smuzhiyun #define BYPASS_SHIFT 1 1341*4882a593Smuzhiyun #define ESR_MULTI_SHIFT 31 1342*4882a593Smuzhiyun 1343*4882a593Smuzhiyun 1344*4882a593Smuzhiyun /* ESYNR0 */ 1345*4882a593Smuzhiyun #define ESYNR0_AMID_SHIFT 0 1346*4882a593Smuzhiyun #define ESYNR0_APID_SHIFT 8 1347*4882a593Smuzhiyun #define ESYNR0_ABID_SHIFT 13 1348*4882a593Smuzhiyun #define ESYNR0_AVMID_SHIFT 16 1349*4882a593Smuzhiyun #define ESYNR0_ATID_SHIFT 24 1350*4882a593Smuzhiyun 1351*4882a593Smuzhiyun 1352*4882a593Smuzhiyun /* ESYNR1 */ 1353*4882a593Smuzhiyun #define ESYNR1_AMEMTYPE_SHIFT 0 1354*4882a593Smuzhiyun #define ESYNR1_ASHARED_SHIFT 3 1355*4882a593Smuzhiyun #define ESYNR1_AINNERSHARED_SHIFT 4 1356*4882a593Smuzhiyun #define ESYNR1_APRIV_SHIFT 5 1357*4882a593Smuzhiyun #define ESYNR1_APROTNS_SHIFT 6 1358*4882a593Smuzhiyun #define ESYNR1_AINST_SHIFT 7 1359*4882a593Smuzhiyun #define ESYNR1_AWRITE_SHIFT 8 1360*4882a593Smuzhiyun #define ESYNR1_ABURST_SHIFT 10 1361*4882a593Smuzhiyun #define ESYNR1_ALEN_SHIFT 12 1362*4882a593Smuzhiyun #define ESYNR1_ASIZE_SHIFT 16 1363*4882a593Smuzhiyun #define ESYNR1_ALOCK_SHIFT 20 1364*4882a593Smuzhiyun #define ESYNR1_AOOO_SHIFT 22 1365*4882a593Smuzhiyun #define ESYNR1_AFULL_SHIFT 24 1366*4882a593Smuzhiyun #define ESYNR1_AC_SHIFT 30 1367*4882a593Smuzhiyun #define ESYNR1_DCD_SHIFT 31 1368*4882a593Smuzhiyun 1369*4882a593Smuzhiyun 1370*4882a593Smuzhiyun /* IDR */ 1371*4882a593Smuzhiyun #define NM2VCBMT_SHIFT 0 1372*4882a593Smuzhiyun #define HTW_SHIFT 9 1373*4882a593Smuzhiyun #define HUM_SHIFT 10 1374*4882a593Smuzhiyun #define TLBSIZE_SHIFT 12 1375*4882a593Smuzhiyun #define NCB_SHIFT 16 1376*4882a593Smuzhiyun #define NIRPT_SHIFT 24 1377*4882a593Smuzhiyun 1378*4882a593Smuzhiyun 1379*4882a593Smuzhiyun /* M2VCBRn */ 1380*4882a593Smuzhiyun #define VMID_SHIFT 0 1381*4882a593Smuzhiyun #define CBNDX_SHIFT 8 1382*4882a593Smuzhiyun #define BYPASSD_SHIFT 16 1383*4882a593Smuzhiyun #define BPRCOSH_SHIFT 17 1384*4882a593Smuzhiyun #define BPRCISH_SHIFT 18 1385*4882a593Smuzhiyun #define BPRCNSH_SHIFT 19 1386*4882a593Smuzhiyun #define BPSHCFG_SHIFT 20 1387*4882a593Smuzhiyun #define NSCFG_SHIFT 22 1388*4882a593Smuzhiyun #define BPMTCFG_SHIFT 24 1389*4882a593Smuzhiyun #define BPMEMTYPE_SHIFT 25 1390*4882a593Smuzhiyun 1391*4882a593Smuzhiyun 1392*4882a593Smuzhiyun /* REV */ 1393*4882a593Smuzhiyun #define MINOR_SHIFT 0 1394*4882a593Smuzhiyun #define MAJOR_SHIFT 4 1395*4882a593Smuzhiyun 1396*4882a593Smuzhiyun 1397*4882a593Smuzhiyun /* TESTBUSCR */ 1398*4882a593Smuzhiyun #define TBE_SHIFT 0 1399*4882a593Smuzhiyun #define SPDMBE_SHIFT 1 1400*4882a593Smuzhiyun #define WGSEL_SHIFT 8 1401*4882a593Smuzhiyun #define TBLSEL_SHIFT 12 1402*4882a593Smuzhiyun #define TBHSEL_SHIFT 14 1403*4882a593Smuzhiyun #define SPDM0SEL_SHIFT 16 1404*4882a593Smuzhiyun #define SPDM1SEL_SHIFT 20 1405*4882a593Smuzhiyun #define SPDM2SEL_SHIFT 24 1406*4882a593Smuzhiyun #define SPDM3SEL_SHIFT 28 1407*4882a593Smuzhiyun 1408*4882a593Smuzhiyun 1409*4882a593Smuzhiyun /* TLBIMID */ 1410*4882a593Smuzhiyun #define TLBIVMID_VMID_SHIFT 0 1411*4882a593Smuzhiyun 1412*4882a593Smuzhiyun 1413*4882a593Smuzhiyun /* TLBRSW */ 1414*4882a593Smuzhiyun #define TLBRSW_INDEX_SHIFT 0 1415*4882a593Smuzhiyun #define TLBBFBS_SHIFT 8 1416*4882a593Smuzhiyun 1417*4882a593Smuzhiyun 1418*4882a593Smuzhiyun /* TLBTR0 */ 1419*4882a593Smuzhiyun #define PR_SHIFT 0 1420*4882a593Smuzhiyun #define PW_SHIFT 1 1421*4882a593Smuzhiyun #define UR_SHIFT 2 1422*4882a593Smuzhiyun #define UW_SHIFT 3 1423*4882a593Smuzhiyun #define XN_SHIFT 4 1424*4882a593Smuzhiyun #define NSDESC_SHIFT 6 1425*4882a593Smuzhiyun #define ISH_SHIFT 7 1426*4882a593Smuzhiyun #define SH_SHIFT 8 1427*4882a593Smuzhiyun #define MT_SHIFT 9 1428*4882a593Smuzhiyun #define DPSIZR_SHIFT 16 1429*4882a593Smuzhiyun #define DPSIZC_SHIFT 20 1430*4882a593Smuzhiyun 1431*4882a593Smuzhiyun 1432*4882a593Smuzhiyun /* TLBTR1 */ 1433*4882a593Smuzhiyun #define TLBTR1_VMID_SHIFT 0 1434*4882a593Smuzhiyun #define TLBTR1_PA_SHIFT 12 1435*4882a593Smuzhiyun 1436*4882a593Smuzhiyun 1437*4882a593Smuzhiyun /* TLBTR2 */ 1438*4882a593Smuzhiyun #define TLBTR2_ASID_SHIFT 0 1439*4882a593Smuzhiyun #define TLBTR2_V_SHIFT 8 1440*4882a593Smuzhiyun #define TLBTR2_NSTID_SHIFT 9 1441*4882a593Smuzhiyun #define TLBTR2_NV_SHIFT 10 1442*4882a593Smuzhiyun #define TLBTR2_VA_SHIFT 12 1443*4882a593Smuzhiyun 1444*4882a593Smuzhiyun 1445*4882a593Smuzhiyun /* Context Register Masks */ 1446*4882a593Smuzhiyun /* ACTLR */ 1447*4882a593Smuzhiyun #define CFERE_MASK 0x01 1448*4882a593Smuzhiyun #define CFEIE_MASK 0x01 1449*4882a593Smuzhiyun #define PTSHCFG_MASK 0x03 1450*4882a593Smuzhiyun #define RCOSH_MASK 0x01 1451*4882a593Smuzhiyun #define RCISH_MASK 0x01 1452*4882a593Smuzhiyun #define RCNSH_MASK 0x01 1453*4882a593Smuzhiyun #define PRIVCFG_MASK 0x03 1454*4882a593Smuzhiyun #define DNA_MASK 0x01 1455*4882a593Smuzhiyun #define DNLV2PA_MASK 0x01 1456*4882a593Smuzhiyun #define TLBMCFG_MASK 0x03 1457*4882a593Smuzhiyun #define CFCFG_MASK 0x01 1458*4882a593Smuzhiyun #define TIPCF_MASK 0x01 1459*4882a593Smuzhiyun #define V2PCFG_MASK 0x03 1460*4882a593Smuzhiyun #define HUME_MASK 0x01 1461*4882a593Smuzhiyun #define PTMTCFG_MASK 0x01 1462*4882a593Smuzhiyun #define PTMEMTYPE_MASK 0x07 1463*4882a593Smuzhiyun 1464*4882a593Smuzhiyun 1465*4882a593Smuzhiyun /* BFBCR */ 1466*4882a593Smuzhiyun #define BFBDFE_MASK 0x01 1467*4882a593Smuzhiyun #define BFBSFE_MASK 0x01 1468*4882a593Smuzhiyun #define SFVS_MASK 0x01 1469*4882a593Smuzhiyun #define FLVIC_MASK 0x0F 1470*4882a593Smuzhiyun #define SLVIC_MASK 0x0F 1471*4882a593Smuzhiyun 1472*4882a593Smuzhiyun 1473*4882a593Smuzhiyun /* CONTEXTIDR */ 1474*4882a593Smuzhiyun #define CONTEXTIDR_ASID_MASK 0xFF 1475*4882a593Smuzhiyun #define PROCID_MASK 0x00FFFFFF 1476*4882a593Smuzhiyun 1477*4882a593Smuzhiyun 1478*4882a593Smuzhiyun /* FSR */ 1479*4882a593Smuzhiyun #define TF_MASK 0x01 1480*4882a593Smuzhiyun #define AFF_MASK 0x01 1481*4882a593Smuzhiyun #define APF_MASK 0x01 1482*4882a593Smuzhiyun #define TLBMF_MASK 0x01 1483*4882a593Smuzhiyun #define HTWDEEF_MASK 0x01 1484*4882a593Smuzhiyun #define HTWSEEF_MASK 0x01 1485*4882a593Smuzhiyun #define MHF_MASK 0x01 1486*4882a593Smuzhiyun #define SL_MASK 0x01 1487*4882a593Smuzhiyun #define SS_MASK 0x01 1488*4882a593Smuzhiyun #define MULTI_MASK 0x01 1489*4882a593Smuzhiyun 1490*4882a593Smuzhiyun 1491*4882a593Smuzhiyun /* FSYNR0 */ 1492*4882a593Smuzhiyun #define AMID_MASK 0xFF 1493*4882a593Smuzhiyun #define APID_MASK 0x1F 1494*4882a593Smuzhiyun #define ABID_MASK 0x07 1495*4882a593Smuzhiyun #define ATID_MASK 0xFF 1496*4882a593Smuzhiyun 1497*4882a593Smuzhiyun 1498*4882a593Smuzhiyun /* FSYNR1 */ 1499*4882a593Smuzhiyun #define AMEMTYPE_MASK 0x07 1500*4882a593Smuzhiyun #define ASHARED_MASK 0x01 1501*4882a593Smuzhiyun #define AINNERSHARED_MASK 0x01 1502*4882a593Smuzhiyun #define APRIV_MASK 0x01 1503*4882a593Smuzhiyun #define APROTNS_MASK 0x01 1504*4882a593Smuzhiyun #define AINST_MASK 0x01 1505*4882a593Smuzhiyun #define AWRITE_MASK 0x01 1506*4882a593Smuzhiyun #define ABURST_MASK 0x01 1507*4882a593Smuzhiyun #define ALEN_MASK 0x0F 1508*4882a593Smuzhiyun #define FSYNR1_ASIZE_MASK 0x07 1509*4882a593Smuzhiyun #define ALOCK_MASK 0x03 1510*4882a593Smuzhiyun #define AFULL_MASK 0x01 1511*4882a593Smuzhiyun 1512*4882a593Smuzhiyun 1513*4882a593Smuzhiyun /* NMRR */ 1514*4882a593Smuzhiyun #define ICPC0_MASK 0x03 1515*4882a593Smuzhiyun #define ICPC1_MASK 0x03 1516*4882a593Smuzhiyun #define ICPC2_MASK 0x03 1517*4882a593Smuzhiyun #define ICPC3_MASK 0x03 1518*4882a593Smuzhiyun #define ICPC4_MASK 0x03 1519*4882a593Smuzhiyun #define ICPC5_MASK 0x03 1520*4882a593Smuzhiyun #define ICPC6_MASK 0x03 1521*4882a593Smuzhiyun #define ICPC7_MASK 0x03 1522*4882a593Smuzhiyun #define OCPC0_MASK 0x03 1523*4882a593Smuzhiyun #define OCPC1_MASK 0x03 1524*4882a593Smuzhiyun #define OCPC2_MASK 0x03 1525*4882a593Smuzhiyun #define OCPC3_MASK 0x03 1526*4882a593Smuzhiyun #define OCPC4_MASK 0x03 1527*4882a593Smuzhiyun #define OCPC5_MASK 0x03 1528*4882a593Smuzhiyun #define OCPC6_MASK 0x03 1529*4882a593Smuzhiyun #define OCPC7_MASK 0x03 1530*4882a593Smuzhiyun 1531*4882a593Smuzhiyun 1532*4882a593Smuzhiyun /* PAR */ 1533*4882a593Smuzhiyun #define FAULT_MASK 0x01 1534*4882a593Smuzhiyun /* If a fault is present, these are the 1535*4882a593Smuzhiyun same as the fault fields in the FAR */ 1536*4882a593Smuzhiyun #define FAULT_TF_MASK 0x01 1537*4882a593Smuzhiyun #define FAULT_AFF_MASK 0x01 1538*4882a593Smuzhiyun #define FAULT_APF_MASK 0x01 1539*4882a593Smuzhiyun #define FAULT_TLBMF_MASK 0x01 1540*4882a593Smuzhiyun #define FAULT_HTWDEEF_MASK 0x01 1541*4882a593Smuzhiyun #define FAULT_HTWSEEF_MASK 0x01 1542*4882a593Smuzhiyun #define FAULT_MHF_MASK 0x01 1543*4882a593Smuzhiyun #define FAULT_SL_MASK 0x01 1544*4882a593Smuzhiyun #define FAULT_SS_MASK 0x01 1545*4882a593Smuzhiyun 1546*4882a593Smuzhiyun /* If NO fault is present, the following 1547*4882a593Smuzhiyun * fields are in effect 1548*4882a593Smuzhiyun * (FAULT remains as before) */ 1549*4882a593Smuzhiyun #define PAR_NOFAULT_SS_MASK 0x01 1550*4882a593Smuzhiyun #define PAR_NOFAULT_MT_MASK 0x07 1551*4882a593Smuzhiyun #define PAR_NOFAULT_SH_MASK 0x01 1552*4882a593Smuzhiyun #define PAR_NOFAULT_NS_MASK 0x01 1553*4882a593Smuzhiyun #define PAR_NOFAULT_NOS_MASK 0x01 1554*4882a593Smuzhiyun #define PAR_NPFAULT_PA_MASK 0x000FFFFF 1555*4882a593Smuzhiyun 1556*4882a593Smuzhiyun 1557*4882a593Smuzhiyun /* PRRR */ 1558*4882a593Smuzhiyun #define MTC0_MASK 0x03 1559*4882a593Smuzhiyun #define MTC1_MASK 0x03 1560*4882a593Smuzhiyun #define MTC2_MASK 0x03 1561*4882a593Smuzhiyun #define MTC3_MASK 0x03 1562*4882a593Smuzhiyun #define MTC4_MASK 0x03 1563*4882a593Smuzhiyun #define MTC5_MASK 0x03 1564*4882a593Smuzhiyun #define MTC6_MASK 0x03 1565*4882a593Smuzhiyun #define MTC7_MASK 0x03 1566*4882a593Smuzhiyun #define SHDSH0_MASK 0x01 1567*4882a593Smuzhiyun #define SHDSH1_MASK 0x01 1568*4882a593Smuzhiyun #define SHNMSH0_MASK 0x01 1569*4882a593Smuzhiyun #define SHNMSH1_MASK 0x01 1570*4882a593Smuzhiyun #define NOS0_MASK 0x01 1571*4882a593Smuzhiyun #define NOS1_MASK 0x01 1572*4882a593Smuzhiyun #define NOS2_MASK 0x01 1573*4882a593Smuzhiyun #define NOS3_MASK 0x01 1574*4882a593Smuzhiyun #define NOS4_MASK 0x01 1575*4882a593Smuzhiyun #define NOS5_MASK 0x01 1576*4882a593Smuzhiyun #define NOS6_MASK 0x01 1577*4882a593Smuzhiyun #define NOS7_MASK 0x01 1578*4882a593Smuzhiyun 1579*4882a593Smuzhiyun 1580*4882a593Smuzhiyun /* RESUME */ 1581*4882a593Smuzhiyun #define TNR_MASK 0x01 1582*4882a593Smuzhiyun 1583*4882a593Smuzhiyun 1584*4882a593Smuzhiyun /* SCTLR */ 1585*4882a593Smuzhiyun #define M_MASK 0x01 1586*4882a593Smuzhiyun #define TRE_MASK 0x01 1587*4882a593Smuzhiyun #define AFE_MASK 0x01 1588*4882a593Smuzhiyun #define HAF_MASK 0x01 1589*4882a593Smuzhiyun #define BE_MASK 0x01 1590*4882a593Smuzhiyun #define AFFD_MASK 0x01 1591*4882a593Smuzhiyun 1592*4882a593Smuzhiyun 1593*4882a593Smuzhiyun /* TLBIASID */ 1594*4882a593Smuzhiyun #define TLBIASID_ASID_MASK 0xFF 1595*4882a593Smuzhiyun 1596*4882a593Smuzhiyun 1597*4882a593Smuzhiyun /* TLBIVA */ 1598*4882a593Smuzhiyun #define TLBIVA_ASID_MASK 0xFF 1599*4882a593Smuzhiyun #define TLBIVA_VA_MASK 0x000FFFFF 1600*4882a593Smuzhiyun 1601*4882a593Smuzhiyun 1602*4882a593Smuzhiyun /* TLBIVAA */ 1603*4882a593Smuzhiyun #define TLBIVAA_VA_MASK 0x000FFFFF 1604*4882a593Smuzhiyun 1605*4882a593Smuzhiyun 1606*4882a593Smuzhiyun /* TLBLCKR */ 1607*4882a593Smuzhiyun #define LKE_MASK 0x01 1608*4882a593Smuzhiyun #define TLBLCKR_TLBIALLCFG_MASK 0x01 1609*4882a593Smuzhiyun #define TLBIASIDCFG_MASK 0x01 1610*4882a593Smuzhiyun #define TLBIVAACFG_MASK 0x01 1611*4882a593Smuzhiyun #define FLOOR_MASK 0xFF 1612*4882a593Smuzhiyun #define VICTIM_MASK 0xFF 1613*4882a593Smuzhiyun 1614*4882a593Smuzhiyun 1615*4882a593Smuzhiyun /* TTBCR */ 1616*4882a593Smuzhiyun #define N_MASK 0x07 1617*4882a593Smuzhiyun #define PD0_MASK 0x01 1618*4882a593Smuzhiyun #define PD1_MASK 0x01 1619*4882a593Smuzhiyun 1620*4882a593Smuzhiyun 1621*4882a593Smuzhiyun /* TTBR0 */ 1622*4882a593Smuzhiyun #define TTBR0_IRGNH_MASK 0x01 1623*4882a593Smuzhiyun #define TTBR0_SH_MASK 0x01 1624*4882a593Smuzhiyun #define TTBR0_ORGN_MASK 0x03 1625*4882a593Smuzhiyun #define TTBR0_NOS_MASK 0x01 1626*4882a593Smuzhiyun #define TTBR0_IRGNL_MASK 0x01 1627*4882a593Smuzhiyun #define TTBR0_PA_MASK 0x0003FFFF 1628*4882a593Smuzhiyun 1629*4882a593Smuzhiyun 1630*4882a593Smuzhiyun /* TTBR1 */ 1631*4882a593Smuzhiyun #define TTBR1_IRGNH_MASK 0x01 1632*4882a593Smuzhiyun #define TTBR1_SH_MASK 0x01 1633*4882a593Smuzhiyun #define TTBR1_ORGN_MASK 0x03 1634*4882a593Smuzhiyun #define TTBR1_NOS_MASK 0x01 1635*4882a593Smuzhiyun #define TTBR1_IRGNL_MASK 0x01 1636*4882a593Smuzhiyun #define TTBR1_PA_MASK 0x0003FFFF 1637*4882a593Smuzhiyun 1638*4882a593Smuzhiyun 1639*4882a593Smuzhiyun /* V2PSR */ 1640*4882a593Smuzhiyun #define HIT_MASK 0x01 1641*4882a593Smuzhiyun #define INDEX_MASK 0xFF 1642*4882a593Smuzhiyun 1643*4882a593Smuzhiyun 1644*4882a593Smuzhiyun /* V2Pxx */ 1645*4882a593Smuzhiyun #define V2Pxx_INDEX_MASK 0xFF 1646*4882a593Smuzhiyun #define V2Pxx_VA_MASK 0x000FFFFF 1647*4882a593Smuzhiyun 1648*4882a593Smuzhiyun 1649*4882a593Smuzhiyun /* Context Register Shifts */ 1650*4882a593Smuzhiyun /* ACTLR */ 1651*4882a593Smuzhiyun #define CFERE_SHIFT 0 1652*4882a593Smuzhiyun #define CFEIE_SHIFT 1 1653*4882a593Smuzhiyun #define PTSHCFG_SHIFT 2 1654*4882a593Smuzhiyun #define RCOSH_SHIFT 4 1655*4882a593Smuzhiyun #define RCISH_SHIFT 5 1656*4882a593Smuzhiyun #define RCNSH_SHIFT 6 1657*4882a593Smuzhiyun #define PRIVCFG_SHIFT 8 1658*4882a593Smuzhiyun #define DNA_SHIFT 10 1659*4882a593Smuzhiyun #define DNLV2PA_SHIFT 11 1660*4882a593Smuzhiyun #define TLBMCFG_SHIFT 12 1661*4882a593Smuzhiyun #define CFCFG_SHIFT 14 1662*4882a593Smuzhiyun #define TIPCF_SHIFT 15 1663*4882a593Smuzhiyun #define V2PCFG_SHIFT 16 1664*4882a593Smuzhiyun #define HUME_SHIFT 18 1665*4882a593Smuzhiyun #define PTMTCFG_SHIFT 20 1666*4882a593Smuzhiyun #define PTMEMTYPE_SHIFT 21 1667*4882a593Smuzhiyun 1668*4882a593Smuzhiyun 1669*4882a593Smuzhiyun /* BFBCR */ 1670*4882a593Smuzhiyun #define BFBDFE_SHIFT 0 1671*4882a593Smuzhiyun #define BFBSFE_SHIFT 1 1672*4882a593Smuzhiyun #define SFVS_SHIFT 2 1673*4882a593Smuzhiyun #define FLVIC_SHIFT 4 1674*4882a593Smuzhiyun #define SLVIC_SHIFT 8 1675*4882a593Smuzhiyun 1676*4882a593Smuzhiyun 1677*4882a593Smuzhiyun /* CONTEXTIDR */ 1678*4882a593Smuzhiyun #define CONTEXTIDR_ASID_SHIFT 0 1679*4882a593Smuzhiyun #define PROCID_SHIFT 8 1680*4882a593Smuzhiyun 1681*4882a593Smuzhiyun 1682*4882a593Smuzhiyun /* FSR */ 1683*4882a593Smuzhiyun #define TF_SHIFT 1 1684*4882a593Smuzhiyun #define AFF_SHIFT 2 1685*4882a593Smuzhiyun #define APF_SHIFT 3 1686*4882a593Smuzhiyun #define TLBMF_SHIFT 4 1687*4882a593Smuzhiyun #define HTWDEEF_SHIFT 5 1688*4882a593Smuzhiyun #define HTWSEEF_SHIFT 6 1689*4882a593Smuzhiyun #define MHF_SHIFT 7 1690*4882a593Smuzhiyun #define SL_SHIFT 16 1691*4882a593Smuzhiyun #define SS_SHIFT 30 1692*4882a593Smuzhiyun #define MULTI_SHIFT 31 1693*4882a593Smuzhiyun 1694*4882a593Smuzhiyun 1695*4882a593Smuzhiyun /* FSYNR0 */ 1696*4882a593Smuzhiyun #define AMID_SHIFT 0 1697*4882a593Smuzhiyun #define APID_SHIFT 8 1698*4882a593Smuzhiyun #define ABID_SHIFT 13 1699*4882a593Smuzhiyun #define ATID_SHIFT 24 1700*4882a593Smuzhiyun 1701*4882a593Smuzhiyun 1702*4882a593Smuzhiyun /* FSYNR1 */ 1703*4882a593Smuzhiyun #define AMEMTYPE_SHIFT 0 1704*4882a593Smuzhiyun #define ASHARED_SHIFT 3 1705*4882a593Smuzhiyun #define AINNERSHARED_SHIFT 4 1706*4882a593Smuzhiyun #define APRIV_SHIFT 5 1707*4882a593Smuzhiyun #define APROTNS_SHIFT 6 1708*4882a593Smuzhiyun #define AINST_SHIFT 7 1709*4882a593Smuzhiyun #define AWRITE_SHIFT 8 1710*4882a593Smuzhiyun #define ABURST_SHIFT 10 1711*4882a593Smuzhiyun #define ALEN_SHIFT 12 1712*4882a593Smuzhiyun #define FSYNR1_ASIZE_SHIFT 16 1713*4882a593Smuzhiyun #define ALOCK_SHIFT 20 1714*4882a593Smuzhiyun #define AFULL_SHIFT 24 1715*4882a593Smuzhiyun 1716*4882a593Smuzhiyun 1717*4882a593Smuzhiyun /* NMRR */ 1718*4882a593Smuzhiyun #define ICPC0_SHIFT 0 1719*4882a593Smuzhiyun #define ICPC1_SHIFT 2 1720*4882a593Smuzhiyun #define ICPC2_SHIFT 4 1721*4882a593Smuzhiyun #define ICPC3_SHIFT 6 1722*4882a593Smuzhiyun #define ICPC4_SHIFT 8 1723*4882a593Smuzhiyun #define ICPC5_SHIFT 10 1724*4882a593Smuzhiyun #define ICPC6_SHIFT 12 1725*4882a593Smuzhiyun #define ICPC7_SHIFT 14 1726*4882a593Smuzhiyun #define OCPC0_SHIFT 16 1727*4882a593Smuzhiyun #define OCPC1_SHIFT 18 1728*4882a593Smuzhiyun #define OCPC2_SHIFT 20 1729*4882a593Smuzhiyun #define OCPC3_SHIFT 22 1730*4882a593Smuzhiyun #define OCPC4_SHIFT 24 1731*4882a593Smuzhiyun #define OCPC5_SHIFT 26 1732*4882a593Smuzhiyun #define OCPC6_SHIFT 28 1733*4882a593Smuzhiyun #define OCPC7_SHIFT 30 1734*4882a593Smuzhiyun 1735*4882a593Smuzhiyun 1736*4882a593Smuzhiyun /* PAR */ 1737*4882a593Smuzhiyun #define FAULT_SHIFT 0 1738*4882a593Smuzhiyun /* If a fault is present, these are the 1739*4882a593Smuzhiyun same as the fault fields in the FAR */ 1740*4882a593Smuzhiyun #define FAULT_TF_SHIFT 1 1741*4882a593Smuzhiyun #define FAULT_AFF_SHIFT 2 1742*4882a593Smuzhiyun #define FAULT_APF_SHIFT 3 1743*4882a593Smuzhiyun #define FAULT_TLBMF_SHIFT 4 1744*4882a593Smuzhiyun #define FAULT_HTWDEEF_SHIFT 5 1745*4882a593Smuzhiyun #define FAULT_HTWSEEF_SHIFT 6 1746*4882a593Smuzhiyun #define FAULT_MHF_SHIFT 7 1747*4882a593Smuzhiyun #define FAULT_SL_SHIFT 16 1748*4882a593Smuzhiyun #define FAULT_SS_SHIFT 30 1749*4882a593Smuzhiyun 1750*4882a593Smuzhiyun /* If NO fault is present, the following 1751*4882a593Smuzhiyun * fields are in effect 1752*4882a593Smuzhiyun * (FAULT remains as before) */ 1753*4882a593Smuzhiyun #define PAR_NOFAULT_SS_SHIFT 1 1754*4882a593Smuzhiyun #define PAR_NOFAULT_MT_SHIFT 4 1755*4882a593Smuzhiyun #define PAR_NOFAULT_SH_SHIFT 7 1756*4882a593Smuzhiyun #define PAR_NOFAULT_NS_SHIFT 9 1757*4882a593Smuzhiyun #define PAR_NOFAULT_NOS_SHIFT 10 1758*4882a593Smuzhiyun #define PAR_NPFAULT_PA_SHIFT 12 1759*4882a593Smuzhiyun 1760*4882a593Smuzhiyun 1761*4882a593Smuzhiyun /* PRRR */ 1762*4882a593Smuzhiyun #define MTC0_SHIFT 0 1763*4882a593Smuzhiyun #define MTC1_SHIFT 2 1764*4882a593Smuzhiyun #define MTC2_SHIFT 4 1765*4882a593Smuzhiyun #define MTC3_SHIFT 6 1766*4882a593Smuzhiyun #define MTC4_SHIFT 8 1767*4882a593Smuzhiyun #define MTC5_SHIFT 10 1768*4882a593Smuzhiyun #define MTC6_SHIFT 12 1769*4882a593Smuzhiyun #define MTC7_SHIFT 14 1770*4882a593Smuzhiyun #define SHDSH0_SHIFT 16 1771*4882a593Smuzhiyun #define SHDSH1_SHIFT 17 1772*4882a593Smuzhiyun #define SHNMSH0_SHIFT 18 1773*4882a593Smuzhiyun #define SHNMSH1_SHIFT 19 1774*4882a593Smuzhiyun #define NOS0_SHIFT 24 1775*4882a593Smuzhiyun #define NOS1_SHIFT 25 1776*4882a593Smuzhiyun #define NOS2_SHIFT 26 1777*4882a593Smuzhiyun #define NOS3_SHIFT 27 1778*4882a593Smuzhiyun #define NOS4_SHIFT 28 1779*4882a593Smuzhiyun #define NOS5_SHIFT 29 1780*4882a593Smuzhiyun #define NOS6_SHIFT 30 1781*4882a593Smuzhiyun #define NOS7_SHIFT 31 1782*4882a593Smuzhiyun 1783*4882a593Smuzhiyun 1784*4882a593Smuzhiyun /* RESUME */ 1785*4882a593Smuzhiyun #define TNR_SHIFT 0 1786*4882a593Smuzhiyun 1787*4882a593Smuzhiyun 1788*4882a593Smuzhiyun /* SCTLR */ 1789*4882a593Smuzhiyun #define M_SHIFT 0 1790*4882a593Smuzhiyun #define TRE_SHIFT 1 1791*4882a593Smuzhiyun #define AFE_SHIFT 2 1792*4882a593Smuzhiyun #define HAF_SHIFT 3 1793*4882a593Smuzhiyun #define BE_SHIFT 4 1794*4882a593Smuzhiyun #define AFFD_SHIFT 5 1795*4882a593Smuzhiyun 1796*4882a593Smuzhiyun 1797*4882a593Smuzhiyun /* TLBIASID */ 1798*4882a593Smuzhiyun #define TLBIASID_ASID_SHIFT 0 1799*4882a593Smuzhiyun 1800*4882a593Smuzhiyun 1801*4882a593Smuzhiyun /* TLBIVA */ 1802*4882a593Smuzhiyun #define TLBIVA_ASID_SHIFT 0 1803*4882a593Smuzhiyun #define TLBIVA_VA_SHIFT 12 1804*4882a593Smuzhiyun 1805*4882a593Smuzhiyun 1806*4882a593Smuzhiyun /* TLBIVAA */ 1807*4882a593Smuzhiyun #define TLBIVAA_VA_SHIFT 12 1808*4882a593Smuzhiyun 1809*4882a593Smuzhiyun 1810*4882a593Smuzhiyun /* TLBLCKR */ 1811*4882a593Smuzhiyun #define LKE_SHIFT 0 1812*4882a593Smuzhiyun #define TLBLCKR_TLBIALLCFG_SHIFT 1 1813*4882a593Smuzhiyun #define TLBIASIDCFG_SHIFT 2 1814*4882a593Smuzhiyun #define TLBIVAACFG_SHIFT 3 1815*4882a593Smuzhiyun #define FLOOR_SHIFT 8 1816*4882a593Smuzhiyun #define VICTIM_SHIFT 8 1817*4882a593Smuzhiyun 1818*4882a593Smuzhiyun 1819*4882a593Smuzhiyun /* TTBCR */ 1820*4882a593Smuzhiyun #define N_SHIFT 3 1821*4882a593Smuzhiyun #define PD0_SHIFT 4 1822*4882a593Smuzhiyun #define PD1_SHIFT 5 1823*4882a593Smuzhiyun 1824*4882a593Smuzhiyun 1825*4882a593Smuzhiyun /* TTBR0 */ 1826*4882a593Smuzhiyun #define TTBR0_IRGNH_SHIFT 0 1827*4882a593Smuzhiyun #define TTBR0_SH_SHIFT 1 1828*4882a593Smuzhiyun #define TTBR0_ORGN_SHIFT 3 1829*4882a593Smuzhiyun #define TTBR0_NOS_SHIFT 5 1830*4882a593Smuzhiyun #define TTBR0_IRGNL_SHIFT 6 1831*4882a593Smuzhiyun #define TTBR0_PA_SHIFT 14 1832*4882a593Smuzhiyun 1833*4882a593Smuzhiyun 1834*4882a593Smuzhiyun /* TTBR1 */ 1835*4882a593Smuzhiyun #define TTBR1_IRGNH_SHIFT 0 1836*4882a593Smuzhiyun #define TTBR1_SH_SHIFT 1 1837*4882a593Smuzhiyun #define TTBR1_ORGN_SHIFT 3 1838*4882a593Smuzhiyun #define TTBR1_NOS_SHIFT 5 1839*4882a593Smuzhiyun #define TTBR1_IRGNL_SHIFT 6 1840*4882a593Smuzhiyun #define TTBR1_PA_SHIFT 14 1841*4882a593Smuzhiyun 1842*4882a593Smuzhiyun 1843*4882a593Smuzhiyun /* V2PSR */ 1844*4882a593Smuzhiyun #define HIT_SHIFT 0 1845*4882a593Smuzhiyun #define INDEX_SHIFT 8 1846*4882a593Smuzhiyun 1847*4882a593Smuzhiyun 1848*4882a593Smuzhiyun /* V2Pxx */ 1849*4882a593Smuzhiyun #define V2Pxx_INDEX_SHIFT 0 1850*4882a593Smuzhiyun #define V2Pxx_VA_SHIFT 12 1851*4882a593Smuzhiyun 1852*4882a593Smuzhiyun #endif 1853