Path: blob/master/arch/arm/mach-msm/include/mach/iommu_hw-8xxx.h
17984 views
/* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.1*2* This program is free software; you can redistribute it and/or modify3* it under the terms of the GNU General Public License version 2 and4* only version 2 as published by the Free Software Foundation.5*6* This program is distributed in the hope that it will be useful,7* but WITHOUT ANY WARRANTY; without even the implied warranty of8* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the9* GNU General Public License for more details.10*11* You should have received a copy of the GNU General Public License12* along with this program; if not, write to the Free Software13* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA14* 02110-1301, USA.15*/1617#ifndef __ARCH_ARM_MACH_MSM_IOMMU_HW_8XXX_H18#define __ARCH_ARM_MACH_MSM_IOMMU_HW_8XXX_H1920#define CTX_SHIFT 122122#define GET_GLOBAL_REG(reg, base) (readl((base) + (reg)))23#define GET_CTX_REG(reg, base, ctx) \24(readl((base) + (reg) + ((ctx) << CTX_SHIFT)))2526#define SET_GLOBAL_REG(reg, base, val) writel((val), ((base) + (reg)))2728#define SET_CTX_REG(reg, base, ctx, val) \29writel((val), ((base) + (reg) + ((ctx) << CTX_SHIFT)))3031/* Wrappers for numbered registers */32#define SET_GLOBAL_REG_N(b, n, r, v) SET_GLOBAL_REG(b, ((r) + (n << 2)), (v))33#define GET_GLOBAL_REG_N(b, n, r) GET_GLOBAL_REG(b, ((r) + (n << 2)))3435/* Field wrappers */36#define GET_GLOBAL_FIELD(b, r, F) GET_FIELD(((b) + (r)), F##_MASK, F##_SHIFT)37#define GET_CONTEXT_FIELD(b, c, r, F) \38GET_FIELD(((b) + (r) + ((c) << CTX_SHIFT)), F##_MASK, F##_SHIFT)3940#define SET_GLOBAL_FIELD(b, r, F, v) \41SET_FIELD(((b) + (r)), F##_MASK, F##_SHIFT, (v))42#define SET_CONTEXT_FIELD(b, c, r, F, v) \43SET_FIELD(((b) + (r) + ((c) << CTX_SHIFT)), F##_MASK, F##_SHIFT, (v))4445#define GET_FIELD(addr, mask, shift) ((readl(addr) >> (shift)) & (mask))4647#define SET_FIELD(addr, mask, shift, v) \48do { \49int t = readl(addr); \50writel((t & ~((mask) << (shift))) + (((v) & (mask)) << (shift)), addr);\51} while (0)525354#define NUM_FL_PTE 409655#define NUM_SL_PTE 25656#define NUM_TEX_CLASS 85758/* First-level page table bits */59#define FL_BASE_MASK 0xFFFFFC0060#define FL_TYPE_TABLE (1 << 0)61#define FL_TYPE_SECT (2 << 0)62#define FL_SUPERSECTION (1 << 18)63#define FL_AP_WRITE (1 << 10)64#define FL_AP_READ (1 << 11)65#define FL_SHARED (1 << 16)66#define FL_BUFFERABLE (1 << 2)67#define FL_CACHEABLE (1 << 3)68#define FL_TEX0 (1 << 12)69#define FL_OFFSET(va) (((va) & 0xFFF00000) >> 20)70#define FL_NG (1 << 17)7172/* Second-level page table bits */73#define SL_BASE_MASK_LARGE 0xFFFF000074#define SL_BASE_MASK_SMALL 0xFFFFF00075#define SL_TYPE_LARGE (1 << 0)76#define SL_TYPE_SMALL (2 << 0)77#define SL_AP0 (1 << 4)78#define SL_AP1 (2 << 4)79#define SL_SHARED (1 << 10)80#define SL_BUFFERABLE (1 << 2)81#define SL_CACHEABLE (1 << 3)82#define SL_TEX0 (1 << 6)83#define SL_OFFSET(va) (((va) & 0xFF000) >> 12)84#define SL_NG (1 << 11)8586/* Memory type and cache policy attributes */87#define MT_SO 088#define MT_DEV 189#define MT_NORMAL 290#define CP_NONCACHED 091#define CP_WB_WA 192#define CP_WT 293#define CP_WB_NWA 39495/* Global register setters / getters */96#define SET_M2VCBR_N(b, N, v) SET_GLOBAL_REG_N(M2VCBR_N, N, (b), (v))97#define SET_CBACR_N(b, N, v) SET_GLOBAL_REG_N(CBACR_N, N, (b), (v))98#define SET_TLBRSW(b, v) SET_GLOBAL_REG(TLBRSW, (b), (v))99#define SET_TLBTR0(b, v) SET_GLOBAL_REG(TLBTR0, (b), (v))100#define SET_TLBTR1(b, v) SET_GLOBAL_REG(TLBTR1, (b), (v))101#define SET_TLBTR2(b, v) SET_GLOBAL_REG(TLBTR2, (b), (v))102#define SET_TESTBUSCR(b, v) SET_GLOBAL_REG(TESTBUSCR, (b), (v))103#define SET_GLOBAL_TLBIALL(b, v) SET_GLOBAL_REG(GLOBAL_TLBIALL, (b), (v))104#define SET_TLBIVMID(b, v) SET_GLOBAL_REG(TLBIVMID, (b), (v))105#define SET_CR(b, v) SET_GLOBAL_REG(CR, (b), (v))106#define SET_EAR(b, v) SET_GLOBAL_REG(EAR, (b), (v))107#define SET_ESR(b, v) SET_GLOBAL_REG(ESR, (b), (v))108#define SET_ESRRESTORE(b, v) SET_GLOBAL_REG(ESRRESTORE, (b), (v))109#define SET_ESYNR0(b, v) SET_GLOBAL_REG(ESYNR0, (b), (v))110#define SET_ESYNR1(b, v) SET_GLOBAL_REG(ESYNR1, (b), (v))111#define SET_RPU_ACR(b, v) SET_GLOBAL_REG(RPU_ACR, (b), (v))112113#define GET_M2VCBR_N(b, N) GET_GLOBAL_REG_N(M2VCBR_N, N, (b))114#define GET_CBACR_N(b, N) GET_GLOBAL_REG_N(CBACR_N, N, (b))115#define GET_TLBTR0(b) GET_GLOBAL_REG(TLBTR0, (b))116#define GET_TLBTR1(b) GET_GLOBAL_REG(TLBTR1, (b))117#define GET_TLBTR2(b) GET_GLOBAL_REG(TLBTR2, (b))118#define GET_TESTBUSCR(b) GET_GLOBAL_REG(TESTBUSCR, (b))119#define GET_GLOBAL_TLBIALL(b) GET_GLOBAL_REG(GLOBAL_TLBIALL, (b))120#define GET_TLBIVMID(b) GET_GLOBAL_REG(TLBIVMID, (b))121#define GET_CR(b) GET_GLOBAL_REG(CR, (b))122#define GET_EAR(b) GET_GLOBAL_REG(EAR, (b))123#define GET_ESR(b) GET_GLOBAL_REG(ESR, (b))124#define GET_ESRRESTORE(b) GET_GLOBAL_REG(ESRRESTORE, (b))125#define GET_ESYNR0(b) GET_GLOBAL_REG(ESYNR0, (b))126#define GET_ESYNR1(b) GET_GLOBAL_REG(ESYNR1, (b))127#define GET_REV(b) GET_GLOBAL_REG(REV, (b))128#define GET_IDR(b) GET_GLOBAL_REG(IDR, (b))129#define GET_RPU_ACR(b) GET_GLOBAL_REG(RPU_ACR, (b))130131132/* Context register setters/getters */133#define SET_SCTLR(b, c, v) SET_CTX_REG(SCTLR, (b), (c), (v))134#define SET_ACTLR(b, c, v) SET_CTX_REG(ACTLR, (b), (c), (v))135#define SET_CONTEXTIDR(b, c, v) SET_CTX_REG(CONTEXTIDR, (b), (c), (v))136#define SET_TTBR0(b, c, v) SET_CTX_REG(TTBR0, (b), (c), (v))137#define SET_TTBR1(b, c, v) SET_CTX_REG(TTBR1, (b), (c), (v))138#define SET_TTBCR(b, c, v) SET_CTX_REG(TTBCR, (b), (c), (v))139#define SET_PAR(b, c, v) SET_CTX_REG(PAR, (b), (c), (v))140#define SET_FSR(b, c, v) SET_CTX_REG(FSR, (b), (c), (v))141#define SET_FSRRESTORE(b, c, v) SET_CTX_REG(FSRRESTORE, (b), (c), (v))142#define SET_FAR(b, c, v) SET_CTX_REG(FAR, (b), (c), (v))143#define SET_FSYNR0(b, c, v) SET_CTX_REG(FSYNR0, (b), (c), (v))144#define SET_FSYNR1(b, c, v) SET_CTX_REG(FSYNR1, (b), (c), (v))145#define SET_PRRR(b, c, v) SET_CTX_REG(PRRR, (b), (c), (v))146#define SET_NMRR(b, c, v) SET_CTX_REG(NMRR, (b), (c), (v))147#define SET_TLBLKCR(b, c, v) SET_CTX_REG(TLBLCKR, (b), (c), (v))148#define SET_V2PSR(b, c, v) SET_CTX_REG(V2PSR, (b), (c), (v))149#define SET_TLBFLPTER(b, c, v) SET_CTX_REG(TLBFLPTER, (b), (c), (v))150#define SET_TLBSLPTER(b, c, v) SET_CTX_REG(TLBSLPTER, (b), (c), (v))151#define SET_BFBCR(b, c, v) SET_CTX_REG(BFBCR, (b), (c), (v))152#define SET_CTX_TLBIALL(b, c, v) SET_CTX_REG(CTX_TLBIALL, (b), (c), (v))153#define SET_TLBIASID(b, c, v) SET_CTX_REG(TLBIASID, (b), (c), (v))154#define SET_TLBIVA(b, c, v) SET_CTX_REG(TLBIVA, (b), (c), (v))155#define SET_TLBIVAA(b, c, v) SET_CTX_REG(TLBIVAA, (b), (c), (v))156#define SET_V2PPR(b, c, v) SET_CTX_REG(V2PPR, (b), (c), (v))157#define SET_V2PPW(b, c, v) SET_CTX_REG(V2PPW, (b), (c), (v))158#define SET_V2PUR(b, c, v) SET_CTX_REG(V2PUR, (b), (c), (v))159#define SET_V2PUW(b, c, v) SET_CTX_REG(V2PUW, (b), (c), (v))160#define SET_RESUME(b, c, v) SET_CTX_REG(RESUME, (b), (c), (v))161162#define GET_SCTLR(b, c) GET_CTX_REG(SCTLR, (b), (c))163#define GET_ACTLR(b, c) GET_CTX_REG(ACTLR, (b), (c))164#define GET_CONTEXTIDR(b, c) GET_CTX_REG(CONTEXTIDR, (b), (c))165#define GET_TTBR0(b, c) GET_CTX_REG(TTBR0, (b), (c))166#define GET_TTBR1(b, c) GET_CTX_REG(TTBR1, (b), (c))167#define GET_TTBCR(b, c) GET_CTX_REG(TTBCR, (b), (c))168#define GET_PAR(b, c) GET_CTX_REG(PAR, (b), (c))169#define GET_FSR(b, c) GET_CTX_REG(FSR, (b), (c))170#define GET_FSRRESTORE(b, c) GET_CTX_REG(FSRRESTORE, (b), (c))171#define GET_FAR(b, c) GET_CTX_REG(FAR, (b), (c))172#define GET_FSYNR0(b, c) GET_CTX_REG(FSYNR0, (b), (c))173#define GET_FSYNR1(b, c) GET_CTX_REG(FSYNR1, (b), (c))174#define GET_PRRR(b, c) GET_CTX_REG(PRRR, (b), (c))175#define GET_NMRR(b, c) GET_CTX_REG(NMRR, (b), (c))176#define GET_TLBLCKR(b, c) GET_CTX_REG(TLBLCKR, (b), (c))177#define GET_V2PSR(b, c) GET_CTX_REG(V2PSR, (b), (c))178#define GET_TLBFLPTER(b, c) GET_CTX_REG(TLBFLPTER, (b), (c))179#define GET_TLBSLPTER(b, c) GET_CTX_REG(TLBSLPTER, (b), (c))180#define GET_BFBCR(b, c) GET_CTX_REG(BFBCR, (b), (c))181#define GET_CTX_TLBIALL(b, c) GET_CTX_REG(CTX_TLBIALL, (b), (c))182#define GET_TLBIASID(b, c) GET_CTX_REG(TLBIASID, (b), (c))183#define GET_TLBIVA(b, c) GET_CTX_REG(TLBIVA, (b), (c))184#define GET_TLBIVAA(b, c) GET_CTX_REG(TLBIVAA, (b), (c))185#define GET_V2PPR(b, c) GET_CTX_REG(V2PPR, (b), (c))186#define GET_V2PPW(b, c) GET_CTX_REG(V2PPW, (b), (c))187#define GET_V2PUR(b, c) GET_CTX_REG(V2PUR, (b), (c))188#define GET_V2PUW(b, c) GET_CTX_REG(V2PUW, (b), (c))189#define GET_RESUME(b, c) GET_CTX_REG(RESUME, (b), (c))190191192/* Global field setters / getters */193/* Global Field Setters: */194/* CBACR_N */195#define SET_RWVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID, v)196#define SET_RWE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE, v)197#define SET_RWGE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE, v)198#define SET_CBVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID, v)199#define SET_IRPTNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX, v)200201202/* M2VCBR_N */203#define SET_VMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID, v)204#define SET_CBNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX, v)205#define SET_BYPASSD(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD, v)206#define SET_BPRCOSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH, v)207#define SET_BPRCISH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH, v)208#define SET_BPRCNSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH, v)209#define SET_BPSHCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG, v)210#define SET_NSCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG, v)211#define SET_BPMTCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG, v)212#define SET_BPMEMTYPE(b, n, v) \213SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE, v)214215216/* CR */217#define SET_RPUE(b, v) SET_GLOBAL_FIELD(b, CR, RPUE, v)218#define SET_RPUERE(b, v) SET_GLOBAL_FIELD(b, CR, RPUERE, v)219#define SET_RPUEIE(b, v) SET_GLOBAL_FIELD(b, CR, RPUEIE, v)220#define SET_DCDEE(b, v) SET_GLOBAL_FIELD(b, CR, DCDEE, v)221#define SET_CLIENTPD(b, v) SET_GLOBAL_FIELD(b, CR, CLIENTPD, v)222#define SET_STALLD(b, v) SET_GLOBAL_FIELD(b, CR, STALLD, v)223#define SET_TLBLKCRWE(b, v) SET_GLOBAL_FIELD(b, CR, TLBLKCRWE, v)224#define SET_CR_TLBIALLCFG(b, v) SET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG, v)225#define SET_TLBIVMIDCFG(b, v) SET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG, v)226#define SET_CR_HUME(b, v) SET_GLOBAL_FIELD(b, CR, CR_HUME, v)227228229/* ESR */230#define SET_CFG(b, v) SET_GLOBAL_FIELD(b, ESR, CFG, v)231#define SET_BYPASS(b, v) SET_GLOBAL_FIELD(b, ESR, BYPASS, v)232#define SET_ESR_MULTI(b, v) SET_GLOBAL_FIELD(b, ESR, ESR_MULTI, v)233234235/* ESYNR0 */236#define SET_ESYNR0_AMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AMID, v)237#define SET_ESYNR0_APID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_APID, v)238#define SET_ESYNR0_ABID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ABID, v)239#define SET_ESYNR0_AVMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AVMID, v)240#define SET_ESYNR0_ATID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ATID, v)241242243/* ESYNR1 */244#define SET_ESYNR1_AMEMTYPE(b, v) \245SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AMEMTYPE, v)246#define SET_ESYNR1_ASHARED(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASHARED, v)247#define SET_ESYNR1_AINNERSHARED(b, v) \248SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINNERSHARED, v)249#define SET_ESYNR1_APRIV(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APRIV, v)250#define SET_ESYNR1_APROTNS(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APROTNS, v)251#define SET_ESYNR1_AINST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINST, v)252#define SET_ESYNR1_AWRITE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AWRITE, v)253#define SET_ESYNR1_ABURST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ABURST, v)254#define SET_ESYNR1_ALEN(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALEN, v)255#define SET_ESYNR1_ASIZE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASIZE, v)256#define SET_ESYNR1_ALOCK(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALOCK, v)257#define SET_ESYNR1_AOOO(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AOOO, v)258#define SET_ESYNR1_AFULL(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AFULL, v)259#define SET_ESYNR1_AC(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AC, v)260#define SET_ESYNR1_DCD(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_DCD, v)261262263/* TESTBUSCR */264#define SET_TBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBE, v)265#define SET_SPDMBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDMBE, v)266#define SET_WGSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, WGSEL, v)267#define SET_TBLSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBLSEL, v)268#define SET_TBHSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBHSEL, v)269#define SET_SPDM0SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM0SEL, v)270#define SET_SPDM1SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM1SEL, v)271#define SET_SPDM2SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM2SEL, v)272#define SET_SPDM3SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM3SEL, v)273274275/* TLBIVMID */276#define SET_TLBIVMID_VMID(b, v) SET_GLOBAL_FIELD(b, TLBIVMID, TLBIVMID_VMID, v)277278279/* TLBRSW */280#define SET_TLBRSW_INDEX(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBRSW_INDEX, v)281#define SET_TLBBFBS(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBBFBS, v)282283284/* TLBTR0 */285#define SET_PR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PR, v)286#define SET_PW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PW, v)287#define SET_UR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UR, v)288#define SET_UW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UW, v)289#define SET_XN(b, v) SET_GLOBAL_FIELD(b, TLBTR0, XN, v)290#define SET_NSDESC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, NSDESC, v)291#define SET_ISH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, ISH, v)292#define SET_SH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, SH, v)293#define SET_MT(b, v) SET_GLOBAL_FIELD(b, TLBTR0, MT, v)294#define SET_DPSIZR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZR, v)295#define SET_DPSIZC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZC, v)296297298/* TLBTR1 */299#define SET_TLBTR1_VMID(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_VMID, v)300#define SET_TLBTR1_PA(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_PA, v)301302303/* TLBTR2 */304#define SET_TLBTR2_ASID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_ASID, v)305#define SET_TLBTR2_V(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_V, v)306#define SET_TLBTR2_NSTID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NSTID, v)307#define SET_TLBTR2_NV(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NV, v)308#define SET_TLBTR2_VA(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_VA, v)309310311/* Global Field Getters */312/* CBACR_N */313#define GET_RWVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID)314#define GET_RWE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE)315#define GET_RWGE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE)316#define GET_CBVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID)317#define GET_IRPTNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX)318319320/* M2VCBR_N */321#define GET_VMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID)322#define GET_CBNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX)323#define GET_BYPASSD(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD)324#define GET_BPRCOSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH)325#define GET_BPRCISH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH)326#define GET_BPRCNSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH)327#define GET_BPSHCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG)328#define GET_NSCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG)329#define GET_BPMTCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG)330#define GET_BPMEMTYPE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE)331332333/* CR */334#define GET_RPUE(b) GET_GLOBAL_FIELD(b, CR, RPUE)335#define GET_RPUERE(b) GET_GLOBAL_FIELD(b, CR, RPUERE)336#define GET_RPUEIE(b) GET_GLOBAL_FIELD(b, CR, RPUEIE)337#define GET_DCDEE(b) GET_GLOBAL_FIELD(b, CR, DCDEE)338#define GET_CLIENTPD(b) GET_GLOBAL_FIELD(b, CR, CLIENTPD)339#define GET_STALLD(b) GET_GLOBAL_FIELD(b, CR, STALLD)340#define GET_TLBLKCRWE(b) GET_GLOBAL_FIELD(b, CR, TLBLKCRWE)341#define GET_CR_TLBIALLCFG(b) GET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG)342#define GET_TLBIVMIDCFG(b) GET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG)343#define GET_CR_HUME(b) GET_GLOBAL_FIELD(b, CR, CR_HUME)344345346/* ESR */347#define GET_CFG(b) GET_GLOBAL_FIELD(b, ESR, CFG)348#define GET_BYPASS(b) GET_GLOBAL_FIELD(b, ESR, BYPASS)349#define GET_ESR_MULTI(b) GET_GLOBAL_FIELD(b, ESR, ESR_MULTI)350351352/* ESYNR0 */353#define GET_ESYNR0_AMID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AMID)354#define GET_ESYNR0_APID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_APID)355#define GET_ESYNR0_ABID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ABID)356#define GET_ESYNR0_AVMID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AVMID)357#define GET_ESYNR0_ATID(b) GET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ATID)358359360/* ESYNR1 */361#define GET_ESYNR1_AMEMTYPE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AMEMTYPE)362#define GET_ESYNR1_ASHARED(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASHARED)363#define GET_ESYNR1_AINNERSHARED(b) \364GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINNERSHARED)365#define GET_ESYNR1_APRIV(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APRIV)366#define GET_ESYNR1_APROTNS(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APROTNS)367#define GET_ESYNR1_AINST(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINST)368#define GET_ESYNR1_AWRITE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AWRITE)369#define GET_ESYNR1_ABURST(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ABURST)370#define GET_ESYNR1_ALEN(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALEN)371#define GET_ESYNR1_ASIZE(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASIZE)372#define GET_ESYNR1_ALOCK(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALOCK)373#define GET_ESYNR1_AOOO(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AOOO)374#define GET_ESYNR1_AFULL(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AFULL)375#define GET_ESYNR1_AC(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AC)376#define GET_ESYNR1_DCD(b) GET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_DCD)377378379/* IDR */380#define GET_NM2VCBMT(b) GET_GLOBAL_FIELD(b, IDR, NM2VCBMT)381#define GET_HTW(b) GET_GLOBAL_FIELD(b, IDR, HTW)382#define GET_HUM(b) GET_GLOBAL_FIELD(b, IDR, HUM)383#define GET_TLBSIZE(b) GET_GLOBAL_FIELD(b, IDR, TLBSIZE)384#define GET_NCB(b) GET_GLOBAL_FIELD(b, IDR, NCB)385#define GET_NIRPT(b) GET_GLOBAL_FIELD(b, IDR, NIRPT)386387388/* REV */389#define GET_MAJOR(b) GET_GLOBAL_FIELD(b, REV, MAJOR)390#define GET_MINOR(b) GET_GLOBAL_FIELD(b, REV, MINOR)391392393/* TESTBUSCR */394#define GET_TBE(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBE)395#define GET_SPDMBE(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDMBE)396#define GET_WGSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, WGSEL)397#define GET_TBLSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBLSEL)398#define GET_TBHSEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, TBHSEL)399#define GET_SPDM0SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM0SEL)400#define GET_SPDM1SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM1SEL)401#define GET_SPDM2SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM2SEL)402#define GET_SPDM3SEL(b) GET_GLOBAL_FIELD(b, TESTBUSCR, SPDM3SEL)403404405/* TLBIVMID */406#define GET_TLBIVMID_VMID(b) GET_GLOBAL_FIELD(b, TLBIVMID, TLBIVMID_VMID)407408409/* TLBTR0 */410#define GET_PR(b) GET_GLOBAL_FIELD(b, TLBTR0, PR)411#define GET_PW(b) GET_GLOBAL_FIELD(b, TLBTR0, PW)412#define GET_UR(b) GET_GLOBAL_FIELD(b, TLBTR0, UR)413#define GET_UW(b) GET_GLOBAL_FIELD(b, TLBTR0, UW)414#define GET_XN(b) GET_GLOBAL_FIELD(b, TLBTR0, XN)415#define GET_NSDESC(b) GET_GLOBAL_FIELD(b, TLBTR0, NSDESC)416#define GET_ISH(b) GET_GLOBAL_FIELD(b, TLBTR0, ISH)417#define GET_SH(b) GET_GLOBAL_FIELD(b, TLBTR0, SH)418#define GET_MT(b) GET_GLOBAL_FIELD(b, TLBTR0, MT)419#define GET_DPSIZR(b) GET_GLOBAL_FIELD(b, TLBTR0, DPSIZR)420#define GET_DPSIZC(b) GET_GLOBAL_FIELD(b, TLBTR0, DPSIZC)421422423/* TLBTR1 */424#define GET_TLBTR1_VMID(b) GET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_VMID)425#define GET_TLBTR1_PA(b) GET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_PA)426427428/* TLBTR2 */429#define GET_TLBTR2_ASID(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_ASID)430#define GET_TLBTR2_V(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_V)431#define GET_TLBTR2_NSTID(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NSTID)432#define GET_TLBTR2_NV(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NV)433#define GET_TLBTR2_VA(b) GET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_VA)434435436/* Context Register setters / getters */437/* Context Register setters */438/* ACTLR */439#define SET_CFERE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFERE, v)440#define SET_CFEIE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFEIE, v)441#define SET_PTSHCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTSHCFG, v)442#define SET_RCOSH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCOSH, v)443#define SET_RCISH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCISH, v)444#define SET_RCNSH(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, RCNSH, v)445#define SET_PRIVCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PRIVCFG, v)446#define SET_DNA(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, DNA, v)447#define SET_DNLV2PA(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, DNLV2PA, v)448#define SET_TLBMCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, TLBMCFG, v)449#define SET_CFCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, CFCFG, v)450#define SET_TIPCF(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, TIPCF, v)451#define SET_V2PCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, V2PCFG, v)452#define SET_HUME(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, HUME, v)453#define SET_PTMTCFG(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTMTCFG, v)454#define SET_PTMEMTYPE(b, c, v) SET_CONTEXT_FIELD(b, c, ACTLR, PTMEMTYPE, v)455456457/* BFBCR */458#define SET_BFBDFE(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, BFBDFE, v)459#define SET_BFBSFE(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, BFBSFE, v)460#define SET_SFVS(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, SFVS, v)461#define SET_FLVIC(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, FLVIC, v)462#define SET_SLVIC(b, c, v) SET_CONTEXT_FIELD(b, c, BFBCR, SLVIC, v)463464465/* CONTEXTIDR */466#define SET_CONTEXTIDR_ASID(b, c, v) \467SET_CONTEXT_FIELD(b, c, CONTEXTIDR, CONTEXTIDR_ASID, v)468#define SET_CONTEXTIDR_PROCID(b, c, v) \469SET_CONTEXT_FIELD(b, c, CONTEXTIDR, PROCID, v)470471472/* FSR */473#define SET_TF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, TF, v)474#define SET_AFF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, AFF, v)475#define SET_APF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, APF, v)476#define SET_TLBMF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, TLBMF, v)477#define SET_HTWDEEF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, HTWDEEF, v)478#define SET_HTWSEEF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, HTWSEEF, v)479#define SET_MHF(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, MHF, v)480#define SET_SL(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, SL, v)481#define SET_SS(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, SS, v)482#define SET_MULTI(b, c, v) SET_CONTEXT_FIELD(b, c, FSR, MULTI, v)483484485/* FSYNR0 */486#define SET_AMID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, AMID, v)487#define SET_APID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, APID, v)488#define SET_ABID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, ABID, v)489#define SET_ATID(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR0, ATID, v)490491492/* FSYNR1 */493#define SET_AMEMTYPE(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AMEMTYPE, v)494#define SET_ASHARED(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ASHARED, v)495#define SET_AINNERSHARED(b, c, v) \496SET_CONTEXT_FIELD(b, c, FSYNR1, AINNERSHARED, v)497#define SET_APRIV(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, APRIV, v)498#define SET_APROTNS(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, APROTNS, v)499#define SET_AINST(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AINST, v)500#define SET_AWRITE(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AWRITE, v)501#define SET_ABURST(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ABURST, v)502#define SET_ALEN(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ALEN, v)503#define SET_FSYNR1_ASIZE(b, c, v) \504SET_CONTEXT_FIELD(b, c, FSYNR1, FSYNR1_ASIZE, v)505#define SET_ALOCK(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, ALOCK, v)506#define SET_AFULL(b, c, v) SET_CONTEXT_FIELD(b, c, FSYNR1, AFULL, v)507508509/* NMRR */510#define SET_ICPC0(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC0, v)511#define SET_ICPC1(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC1, v)512#define SET_ICPC2(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC2, v)513#define SET_ICPC3(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC3, v)514#define SET_ICPC4(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC4, v)515#define SET_ICPC5(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC5, v)516#define SET_ICPC6(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC6, v)517#define SET_ICPC7(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, ICPC7, v)518#define SET_OCPC0(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC0, v)519#define SET_OCPC1(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC1, v)520#define SET_OCPC2(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC2, v)521#define SET_OCPC3(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC3, v)522#define SET_OCPC4(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC4, v)523#define SET_OCPC5(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC5, v)524#define SET_OCPC6(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC6, v)525#define SET_OCPC7(b, c, v) SET_CONTEXT_FIELD(b, c, NMRR, OCPC7, v)526527528/* PAR */529#define SET_FAULT(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT, v)530531#define SET_FAULT_TF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_TF, v)532#define SET_FAULT_AFF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_AFF, v)533#define SET_FAULT_APF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_APF, v)534#define SET_FAULT_TLBMF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_TLBMF, v)535#define SET_FAULT_HTWDEEF(b, c, v) \536SET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWDEEF, v)537#define SET_FAULT_HTWSEEF(b, c, v) \538SET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWSEEF, v)539#define SET_FAULT_MHF(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_MHF, v)540#define SET_FAULT_SL(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_SL, v)541#define SET_FAULT_SS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, FAULT_SS, v)542543#define SET_NOFAULT_SS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_SS, v)544#define SET_NOFAULT_MT(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_MT, v)545#define SET_NOFAULT_SH(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_SH, v)546#define SET_NOFAULT_NS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_NS, v)547#define SET_NOFAULT_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NOFAULT_NOS, v)548#define SET_NPFAULT_PA(b, c, v) SET_CONTEXT_FIELD(b, c, PAR, NPFAULT_PA, v)549550551/* PRRR */552#define SET_MTC0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC0, v)553#define SET_MTC1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC1, v)554#define SET_MTC2(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC2, v)555#define SET_MTC3(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC3, v)556#define SET_MTC4(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC4, v)557#define SET_MTC5(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC5, v)558#define SET_MTC6(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC6, v)559#define SET_MTC7(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, MTC7, v)560#define SET_SHDSH0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHDSH0, v)561#define SET_SHDSH1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHDSH1, v)562#define SET_SHNMSH0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHNMSH0, v)563#define SET_SHNMSH1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, SHNMSH1, v)564#define SET_NOS0(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS0, v)565#define SET_NOS1(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS1, v)566#define SET_NOS2(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS2, v)567#define SET_NOS3(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS3, v)568#define SET_NOS4(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS4, v)569#define SET_NOS5(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS5, v)570#define SET_NOS6(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS6, v)571#define SET_NOS7(b, c, v) SET_CONTEXT_FIELD(b, c, PRRR, NOS7, v)572573574/* RESUME */575#define SET_TNR(b, c, v) SET_CONTEXT_FIELD(b, c, RESUME, TNR, v)576577578/* SCTLR */579#define SET_M(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, M, v)580#define SET_TRE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, TRE, v)581#define SET_AFE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, AFE, v)582#define SET_HAF(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, HAF, v)583#define SET_BE(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, BE, v)584#define SET_AFFD(b, c, v) SET_CONTEXT_FIELD(b, c, SCTLR, AFFD, v)585586587/* TLBLKCR */588#define SET_LKE(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, LKE, v)589#define SET_TLBLKCR_TLBIALLCFG(b, c, v) \590SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBLCKR_TLBIALLCFG, v)591#define SET_TLBIASIDCFG(b, c, v) \592SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIASIDCFG, v)593#define SET_TLBIVAACFG(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIVAACFG, v)594#define SET_FLOOR(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, FLOOR, v)595#define SET_VICTIM(b, c, v) SET_CONTEXT_FIELD(b, c, TLBLKCR, VICTIM, v)596597598/* TTBCR */599#define SET_N(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, N, v)600#define SET_PD0(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, PD0, v)601#define SET_PD1(b, c, v) SET_CONTEXT_FIELD(b, c, TTBCR, PD1, v)602603604/* TTBR0 */605#define SET_TTBR0_IRGNH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNH, v)606#define SET_TTBR0_SH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_SH, v)607#define SET_TTBR0_ORGN(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_ORGN, v)608#define SET_TTBR0_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_NOS, v)609#define SET_TTBR0_IRGNL(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNL, v)610#define SET_TTBR0_PA(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_PA, v)611612613/* TTBR1 */614#define SET_TTBR1_IRGNH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNH, v)615#define SET_TTBR1_SH(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_SH, v)616#define SET_TTBR1_ORGN(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_ORGN, v)617#define SET_TTBR1_NOS(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_NOS, v)618#define SET_TTBR1_IRGNL(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNL, v)619#define SET_TTBR1_PA(b, c, v) SET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_PA, v)620621622/* V2PSR */623#define SET_HIT(b, c, v) SET_CONTEXT_FIELD(b, c, V2PSR, HIT, v)624#define SET_INDEX(b, c, v) SET_CONTEXT_FIELD(b, c, V2PSR, INDEX, v)625626627/* Context Register getters */628/* ACTLR */629#define GET_CFERE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFERE)630#define GET_CFEIE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFEIE)631#define GET_PTSHCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTSHCFG)632#define GET_RCOSH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCOSH)633#define GET_RCISH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCISH)634#define GET_RCNSH(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, RCNSH)635#define GET_PRIVCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PRIVCFG)636#define GET_DNA(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, DNA)637#define GET_DNLV2PA(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, DNLV2PA)638#define GET_TLBMCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, TLBMCFG)639#define GET_CFCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, CFCFG)640#define GET_TIPCF(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, TIPCF)641#define GET_V2PCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, V2PCFG)642#define GET_HUME(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, HUME)643#define GET_PTMTCFG(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTMTCFG)644#define GET_PTMEMTYPE(b, c) GET_CONTEXT_FIELD(b, c, ACTLR, PTMEMTYPE)645646/* BFBCR */647#define GET_BFBDFE(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, BFBDFE)648#define GET_BFBSFE(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, BFBSFE)649#define GET_SFVS(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, SFVS)650#define GET_FLVIC(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, FLVIC)651#define GET_SLVIC(b, c) GET_CONTEXT_FIELD(b, c, BFBCR, SLVIC)652653654/* CONTEXTIDR */655#define GET_CONTEXTIDR_ASID(b, c) \656GET_CONTEXT_FIELD(b, c, CONTEXTIDR, CONTEXTIDR_ASID)657#define GET_CONTEXTIDR_PROCID(b, c) GET_CONTEXT_FIELD(b, c, CONTEXTIDR, PROCID)658659660/* FSR */661#define GET_TF(b, c) GET_CONTEXT_FIELD(b, c, FSR, TF)662#define GET_AFF(b, c) GET_CONTEXT_FIELD(b, c, FSR, AFF)663#define GET_APF(b, c) GET_CONTEXT_FIELD(b, c, FSR, APF)664#define GET_TLBMF(b, c) GET_CONTEXT_FIELD(b, c, FSR, TLBMF)665#define GET_HTWDEEF(b, c) GET_CONTEXT_FIELD(b, c, FSR, HTWDEEF)666#define GET_HTWSEEF(b, c) GET_CONTEXT_FIELD(b, c, FSR, HTWSEEF)667#define GET_MHF(b, c) GET_CONTEXT_FIELD(b, c, FSR, MHF)668#define GET_SL(b, c) GET_CONTEXT_FIELD(b, c, FSR, SL)669#define GET_SS(b, c) GET_CONTEXT_FIELD(b, c, FSR, SS)670#define GET_MULTI(b, c) GET_CONTEXT_FIELD(b, c, FSR, MULTI)671672673/* FSYNR0 */674#define GET_AMID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, AMID)675#define GET_APID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, APID)676#define GET_ABID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, ABID)677#define GET_ATID(b, c) GET_CONTEXT_FIELD(b, c, FSYNR0, ATID)678679680/* FSYNR1 */681#define GET_AMEMTYPE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AMEMTYPE)682#define GET_ASHARED(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ASHARED)683#define GET_AINNERSHARED(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AINNERSHARED)684#define GET_APRIV(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, APRIV)685#define GET_APROTNS(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, APROTNS)686#define GET_AINST(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AINST)687#define GET_AWRITE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AWRITE)688#define GET_ABURST(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ABURST)689#define GET_ALEN(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ALEN)690#define GET_FSYNR1_ASIZE(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, FSYNR1_ASIZE)691#define GET_ALOCK(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, ALOCK)692#define GET_AFULL(b, c) GET_CONTEXT_FIELD(b, c, FSYNR1, AFULL)693694695/* NMRR */696#define GET_ICPC0(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC0)697#define GET_ICPC1(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC1)698#define GET_ICPC2(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC2)699#define GET_ICPC3(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC3)700#define GET_ICPC4(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC4)701#define GET_ICPC5(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC5)702#define GET_ICPC6(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC6)703#define GET_ICPC7(b, c) GET_CONTEXT_FIELD(b, c, NMRR, ICPC7)704#define GET_OCPC0(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC0)705#define GET_OCPC1(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC1)706#define GET_OCPC2(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC2)707#define GET_OCPC3(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC3)708#define GET_OCPC4(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC4)709#define GET_OCPC5(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC5)710#define GET_OCPC6(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC6)711#define GET_OCPC7(b, c) GET_CONTEXT_FIELD(b, c, NMRR, OCPC7)712#define NMRR_ICP(nmrr, n) (((nmrr) & (3 << ((n) * 2))) >> ((n) * 2))713#define NMRR_OCP(nmrr, n) (((nmrr) & (3 << ((n) * 2 + 16))) >> \714((n) * 2 + 16))715716/* PAR */717#define GET_FAULT(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT)718719#define GET_FAULT_TF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_TF)720#define GET_FAULT_AFF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_AFF)721#define GET_FAULT_APF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_APF)722#define GET_FAULT_TLBMF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_TLBMF)723#define GET_FAULT_HTWDEEF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWDEEF)724#define GET_FAULT_HTWSEEF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_HTWSEEF)725#define GET_FAULT_MHF(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_MHF)726#define GET_FAULT_SL(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_SL)727#define GET_FAULT_SS(b, c) GET_CONTEXT_FIELD(b, c, PAR, FAULT_SS)728729#define GET_NOFAULT_SS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_SS)730#define GET_NOFAULT_MT(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_MT)731#define GET_NOFAULT_SH(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_SH)732#define GET_NOFAULT_NS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_NS)733#define GET_NOFAULT_NOS(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NOFAULT_NOS)734#define GET_NPFAULT_PA(b, c) GET_CONTEXT_FIELD(b, c, PAR, PAR_NPFAULT_PA)735736737/* PRRR */738#define GET_MTC0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC0)739#define GET_MTC1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC1)740#define GET_MTC2(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC2)741#define GET_MTC3(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC3)742#define GET_MTC4(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC4)743#define GET_MTC5(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC5)744#define GET_MTC6(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC6)745#define GET_MTC7(b, c) GET_CONTEXT_FIELD(b, c, PRRR, MTC7)746#define GET_SHDSH0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHDSH0)747#define GET_SHDSH1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHDSH1)748#define GET_SHNMSH0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHNMSH0)749#define GET_SHNMSH1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, SHNMSH1)750#define GET_NOS0(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS0)751#define GET_NOS1(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS1)752#define GET_NOS2(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS2)753#define GET_NOS3(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS3)754#define GET_NOS4(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS4)755#define GET_NOS5(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS5)756#define GET_NOS6(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS6)757#define GET_NOS7(b, c) GET_CONTEXT_FIELD(b, c, PRRR, NOS7)758#define PRRR_NOS(prrr, n) ((prrr) & (1 << ((n) + 24)) ? 1 : 0)759#define PRRR_MT(prrr, n) ((((prrr) & (3 << ((n) * 2))) >> ((n) * 2)))760761762/* RESUME */763#define GET_TNR(b, c) GET_CONTEXT_FIELD(b, c, RESUME, TNR)764765766/* SCTLR */767#define GET_M(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, M)768#define GET_TRE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, TRE)769#define GET_AFE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, AFE)770#define GET_HAF(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, HAF)771#define GET_BE(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, BE)772#define GET_AFFD(b, c) GET_CONTEXT_FIELD(b, c, SCTLR, AFFD)773774775/* TLBLKCR */776#define GET_LKE(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, LKE)777#define GET_TLBLCKR_TLBIALLCFG(b, c) \778GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBLCKR_TLBIALLCFG)779#define GET_TLBIASIDCFG(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIASIDCFG)780#define GET_TLBIVAACFG(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, TLBIVAACFG)781#define GET_FLOOR(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, FLOOR)782#define GET_VICTIM(b, c) GET_CONTEXT_FIELD(b, c, TLBLKCR, VICTIM)783784785/* TTBCR */786#define GET_N(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, N)787#define GET_PD0(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, PD0)788#define GET_PD1(b, c) GET_CONTEXT_FIELD(b, c, TTBCR, PD1)789790791/* TTBR0 */792#define GET_TTBR0_IRGNH(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNH)793#define GET_TTBR0_SH(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_SH)794#define GET_TTBR0_ORGN(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_ORGN)795#define GET_TTBR0_NOS(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_NOS)796#define GET_TTBR0_IRGNL(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_IRGNL)797#define GET_TTBR0_PA(b, c) GET_CONTEXT_FIELD(b, c, TTBR0, TTBR0_PA)798799800/* TTBR1 */801#define GET_TTBR1_IRGNH(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNH)802#define GET_TTBR1_SH(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_SH)803#define GET_TTBR1_ORGN(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_ORGN)804#define GET_TTBR1_NOS(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_NOS)805#define GET_TTBR1_IRGNL(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_IRGNL)806#define GET_TTBR1_PA(b, c) GET_CONTEXT_FIELD(b, c, TTBR1, TTBR1_PA)807808809/* V2PSR */810#define GET_HIT(b, c) GET_CONTEXT_FIELD(b, c, V2PSR, HIT)811#define GET_INDEX(b, c) GET_CONTEXT_FIELD(b, c, V2PSR, INDEX)812813814/* Global Registers */815#define M2VCBR_N (0xFF000)816#define CBACR_N (0xFF800)817#define TLBRSW (0xFFE00)818#define TLBTR0 (0xFFE80)819#define TLBTR1 (0xFFE84)820#define TLBTR2 (0xFFE88)821#define TESTBUSCR (0xFFE8C)822#define GLOBAL_TLBIALL (0xFFF00)823#define TLBIVMID (0xFFF04)824#define CR (0xFFF80)825#define EAR (0xFFF84)826#define ESR (0xFFF88)827#define ESRRESTORE (0xFFF8C)828#define ESYNR0 (0xFFF90)829#define ESYNR1 (0xFFF94)830#define REV (0xFFFF4)831#define IDR (0xFFFF8)832#define RPU_ACR (0xFFFFC)833834835/* Context Bank Registers */836#define SCTLR (0x000)837#define ACTLR (0x004)838#define CONTEXTIDR (0x008)839#define TTBR0 (0x010)840#define TTBR1 (0x014)841#define TTBCR (0x018)842#define PAR (0x01C)843#define FSR (0x020)844#define FSRRESTORE (0x024)845#define FAR (0x028)846#define FSYNR0 (0x02C)847#define FSYNR1 (0x030)848#define PRRR (0x034)849#define NMRR (0x038)850#define TLBLCKR (0x03C)851#define V2PSR (0x040)852#define TLBFLPTER (0x044)853#define TLBSLPTER (0x048)854#define BFBCR (0x04C)855#define CTX_TLBIALL (0x800)856#define TLBIASID (0x804)857#define TLBIVA (0x808)858#define TLBIVAA (0x80C)859#define V2PPR (0x810)860#define V2PPW (0x814)861#define V2PUR (0x818)862#define V2PUW (0x81C)863#define RESUME (0x820)864865866/* Global Register Fields */867/* CBACRn */868#define RWVMID (RWVMID_MASK << RWVMID_SHIFT)869#define RWE (RWE_MASK << RWE_SHIFT)870#define RWGE (RWGE_MASK << RWGE_SHIFT)871#define CBVMID (CBVMID_MASK << CBVMID_SHIFT)872#define IRPTNDX (IRPTNDX_MASK << IRPTNDX_SHIFT)873874875/* CR */876#define RPUE (RPUE_MASK << RPUE_SHIFT)877#define RPUERE (RPUERE_MASK << RPUERE_SHIFT)878#define RPUEIE (RPUEIE_MASK << RPUEIE_SHIFT)879#define DCDEE (DCDEE_MASK << DCDEE_SHIFT)880#define CLIENTPD (CLIENTPD_MASK << CLIENTPD_SHIFT)881#define STALLD (STALLD_MASK << STALLD_SHIFT)882#define TLBLKCRWE (TLBLKCRWE_MASK << TLBLKCRWE_SHIFT)883#define CR_TLBIALLCFG (CR_TLBIALLCFG_MASK << CR_TLBIALLCFG_SHIFT)884#define TLBIVMIDCFG (TLBIVMIDCFG_MASK << TLBIVMIDCFG_SHIFT)885#define CR_HUME (CR_HUME_MASK << CR_HUME_SHIFT)886887888/* ESR */889#define CFG (CFG_MASK << CFG_SHIFT)890#define BYPASS (BYPASS_MASK << BYPASS_SHIFT)891#define ESR_MULTI (ESR_MULTI_MASK << ESR_MULTI_SHIFT)892893894/* ESYNR0 */895#define ESYNR0_AMID (ESYNR0_AMID_MASK << ESYNR0_AMID_SHIFT)896#define ESYNR0_APID (ESYNR0_APID_MASK << ESYNR0_APID_SHIFT)897#define ESYNR0_ABID (ESYNR0_ABID_MASK << ESYNR0_ABID_SHIFT)898#define ESYNR0_AVMID (ESYNR0_AVMID_MASK << ESYNR0_AVMID_SHIFT)899#define ESYNR0_ATID (ESYNR0_ATID_MASK << ESYNR0_ATID_SHIFT)900901902/* ESYNR1 */903#define ESYNR1_AMEMTYPE (ESYNR1_AMEMTYPE_MASK << ESYNR1_AMEMTYPE_SHIFT)904#define ESYNR1_ASHARED (ESYNR1_ASHARED_MASK << ESYNR1_ASHARED_SHIFT)905#define ESYNR1_AINNERSHARED (ESYNR1_AINNERSHARED_MASK<< \906ESYNR1_AINNERSHARED_SHIFT)907#define ESYNR1_APRIV (ESYNR1_APRIV_MASK << ESYNR1_APRIV_SHIFT)908#define ESYNR1_APROTNS (ESYNR1_APROTNS_MASK << ESYNR1_APROTNS_SHIFT)909#define ESYNR1_AINST (ESYNR1_AINST_MASK << ESYNR1_AINST_SHIFT)910#define ESYNR1_AWRITE (ESYNR1_AWRITE_MASK << ESYNR1_AWRITE_SHIFT)911#define ESYNR1_ABURST (ESYNR1_ABURST_MASK << ESYNR1_ABURST_SHIFT)912#define ESYNR1_ALEN (ESYNR1_ALEN_MASK << ESYNR1_ALEN_SHIFT)913#define ESYNR1_ASIZE (ESYNR1_ASIZE_MASK << ESYNR1_ASIZE_SHIFT)914#define ESYNR1_ALOCK (ESYNR1_ALOCK_MASK << ESYNR1_ALOCK_SHIFT)915#define ESYNR1_AOOO (ESYNR1_AOOO_MASK << ESYNR1_AOOO_SHIFT)916#define ESYNR1_AFULL (ESYNR1_AFULL_MASK << ESYNR1_AFULL_SHIFT)917#define ESYNR1_AC (ESYNR1_AC_MASK << ESYNR1_AC_SHIFT)918#define ESYNR1_DCD (ESYNR1_DCD_MASK << ESYNR1_DCD_SHIFT)919920921/* IDR */922#define NM2VCBMT (NM2VCBMT_MASK << NM2VCBMT_SHIFT)923#define HTW (HTW_MASK << HTW_SHIFT)924#define HUM (HUM_MASK << HUM_SHIFT)925#define TLBSIZE (TLBSIZE_MASK << TLBSIZE_SHIFT)926#define NCB (NCB_MASK << NCB_SHIFT)927#define NIRPT (NIRPT_MASK << NIRPT_SHIFT)928929930/* M2VCBRn */931#define VMID (VMID_MASK << VMID_SHIFT)932#define CBNDX (CBNDX_MASK << CBNDX_SHIFT)933#define BYPASSD (BYPASSD_MASK << BYPASSD_SHIFT)934#define BPRCOSH (BPRCOSH_MASK << BPRCOSH_SHIFT)935#define BPRCISH (BPRCISH_MASK << BPRCISH_SHIFT)936#define BPRCNSH (BPRCNSH_MASK << BPRCNSH_SHIFT)937#define BPSHCFG (BPSHCFG_MASK << BPSHCFG_SHIFT)938#define NSCFG (NSCFG_MASK << NSCFG_SHIFT)939#define BPMTCFG (BPMTCFG_MASK << BPMTCFG_SHIFT)940#define BPMEMTYPE (BPMEMTYPE_MASK << BPMEMTYPE_SHIFT)941942943/* REV */944#define IDR_MINOR (MINOR_MASK << MINOR_SHIFT)945#define IDR_MAJOR (MAJOR_MASK << MAJOR_SHIFT)946947948/* TESTBUSCR */949#define TBE (TBE_MASK << TBE_SHIFT)950#define SPDMBE (SPDMBE_MASK << SPDMBE_SHIFT)951#define WGSEL (WGSEL_MASK << WGSEL_SHIFT)952#define TBLSEL (TBLSEL_MASK << TBLSEL_SHIFT)953#define TBHSEL (TBHSEL_MASK << TBHSEL_SHIFT)954#define SPDM0SEL (SPDM0SEL_MASK << SPDM0SEL_SHIFT)955#define SPDM1SEL (SPDM1SEL_MASK << SPDM1SEL_SHIFT)956#define SPDM2SEL (SPDM2SEL_MASK << SPDM2SEL_SHIFT)957#define SPDM3SEL (SPDM3SEL_MASK << SPDM3SEL_SHIFT)958959960/* TLBIVMID */961#define TLBIVMID_VMID (TLBIVMID_VMID_MASK << TLBIVMID_VMID_SHIFT)962963964/* TLBRSW */965#define TLBRSW_INDEX (TLBRSW_INDEX_MASK << TLBRSW_INDEX_SHIFT)966#define TLBBFBS (TLBBFBS_MASK << TLBBFBS_SHIFT)967968969/* TLBTR0 */970#define PR (PR_MASK << PR_SHIFT)971#define PW (PW_MASK << PW_SHIFT)972#define UR (UR_MASK << UR_SHIFT)973#define UW (UW_MASK << UW_SHIFT)974#define XN (XN_MASK << XN_SHIFT)975#define NSDESC (NSDESC_MASK << NSDESC_SHIFT)976#define ISH (ISH_MASK << ISH_SHIFT)977#define SH (SH_MASK << SH_SHIFT)978#define MT (MT_MASK << MT_SHIFT)979#define DPSIZR (DPSIZR_MASK << DPSIZR_SHIFT)980#define DPSIZC (DPSIZC_MASK << DPSIZC_SHIFT)981982983/* TLBTR1 */984#define TLBTR1_VMID (TLBTR1_VMID_MASK << TLBTR1_VMID_SHIFT)985#define TLBTR1_PA (TLBTR1_PA_MASK << TLBTR1_PA_SHIFT)986987988/* TLBTR2 */989#define TLBTR2_ASID (TLBTR2_ASID_MASK << TLBTR2_ASID_SHIFT)990#define TLBTR2_V (TLBTR2_V_MASK << TLBTR2_V_SHIFT)991#define TLBTR2_NSTID (TLBTR2_NSTID_MASK << TLBTR2_NSTID_SHIFT)992#define TLBTR2_NV (TLBTR2_NV_MASK << TLBTR2_NV_SHIFT)993#define TLBTR2_VA (TLBTR2_VA_MASK << TLBTR2_VA_SHIFT)994995996/* Context Register Fields */997/* ACTLR */998#define CFERE (CFERE_MASK << CFERE_SHIFT)999#define CFEIE (CFEIE_MASK << CFEIE_SHIFT)1000#define PTSHCFG (PTSHCFG_MASK << PTSHCFG_SHIFT)1001#define RCOSH (RCOSH_MASK << RCOSH_SHIFT)1002#define RCISH (RCISH_MASK << RCISH_SHIFT)1003#define RCNSH (RCNSH_MASK << RCNSH_SHIFT)1004#define PRIVCFG (PRIVCFG_MASK << PRIVCFG_SHIFT)1005#define DNA (DNA_MASK << DNA_SHIFT)1006#define DNLV2PA (DNLV2PA_MASK << DNLV2PA_SHIFT)1007#define TLBMCFG (TLBMCFG_MASK << TLBMCFG_SHIFT)1008#define CFCFG (CFCFG_MASK << CFCFG_SHIFT)1009#define TIPCF (TIPCF_MASK << TIPCF_SHIFT)1010#define V2PCFG (V2PCFG_MASK << V2PCFG_SHIFT)1011#define HUME (HUME_MASK << HUME_SHIFT)1012#define PTMTCFG (PTMTCFG_MASK << PTMTCFG_SHIFT)1013#define PTMEMTYPE (PTMEMTYPE_MASK << PTMEMTYPE_SHIFT)101410151016/* BFBCR */1017#define BFBDFE (BFBDFE_MASK << BFBDFE_SHIFT)1018#define BFBSFE (BFBSFE_MASK << BFBSFE_SHIFT)1019#define SFVS (SFVS_MASK << SFVS_SHIFT)1020#define FLVIC (FLVIC_MASK << FLVIC_SHIFT)1021#define SLVIC (SLVIC_MASK << SLVIC_SHIFT)102210231024/* CONTEXTIDR */1025#define CONTEXTIDR_ASID (CONTEXTIDR_ASID_MASK << CONTEXTIDR_ASID_SHIFT)1026#define PROCID (PROCID_MASK << PROCID_SHIFT)102710281029/* FSR */1030#define TF (TF_MASK << TF_SHIFT)1031#define AFF (AFF_MASK << AFF_SHIFT)1032#define APF (APF_MASK << APF_SHIFT)1033#define TLBMF (TLBMF_MASK << TLBMF_SHIFT)1034#define HTWDEEF (HTWDEEF_MASK << HTWDEEF_SHIFT)1035#define HTWSEEF (HTWSEEF_MASK << HTWSEEF_SHIFT)1036#define MHF (MHF_MASK << MHF_SHIFT)1037#define SL (SL_MASK << SL_SHIFT)1038#define SS (SS_MASK << SS_SHIFT)1039#define MULTI (MULTI_MASK << MULTI_SHIFT)104010411042/* FSYNR0 */1043#define AMID (AMID_MASK << AMID_SHIFT)1044#define APID (APID_MASK << APID_SHIFT)1045#define ABID (ABID_MASK << ABID_SHIFT)1046#define ATID (ATID_MASK << ATID_SHIFT)104710481049/* FSYNR1 */1050#define AMEMTYPE (AMEMTYPE_MASK << AMEMTYPE_SHIFT)1051#define ASHARED (ASHARED_MASK << ASHARED_SHIFT)1052#define AINNERSHARED (AINNERSHARED_MASK << AINNERSHARED_SHIFT)1053#define APRIV (APRIV_MASK << APRIV_SHIFT)1054#define APROTNS (APROTNS_MASK << APROTNS_SHIFT)1055#define AINST (AINST_MASK << AINST_SHIFT)1056#define AWRITE (AWRITE_MASK << AWRITE_SHIFT)1057#define ABURST (ABURST_MASK << ABURST_SHIFT)1058#define ALEN (ALEN_MASK << ALEN_SHIFT)1059#define FSYNR1_ASIZE (FSYNR1_ASIZE_MASK << FSYNR1_ASIZE_SHIFT)1060#define ALOCK (ALOCK_MASK << ALOCK_SHIFT)1061#define AFULL (AFULL_MASK << AFULL_SHIFT)106210631064/* NMRR */1065#define ICPC0 (ICPC0_MASK << ICPC0_SHIFT)1066#define ICPC1 (ICPC1_MASK << ICPC1_SHIFT)1067#define ICPC2 (ICPC2_MASK << ICPC2_SHIFT)1068#define ICPC3 (ICPC3_MASK << ICPC3_SHIFT)1069#define ICPC4 (ICPC4_MASK << ICPC4_SHIFT)1070#define ICPC5 (ICPC5_MASK << ICPC5_SHIFT)1071#define ICPC6 (ICPC6_MASK << ICPC6_SHIFT)1072#define ICPC7 (ICPC7_MASK << ICPC7_SHIFT)1073#define OCPC0 (OCPC0_MASK << OCPC0_SHIFT)1074#define OCPC1 (OCPC1_MASK << OCPC1_SHIFT)1075#define OCPC2 (OCPC2_MASK << OCPC2_SHIFT)1076#define OCPC3 (OCPC3_MASK << OCPC3_SHIFT)1077#define OCPC4 (OCPC4_MASK << OCPC4_SHIFT)1078#define OCPC5 (OCPC5_MASK << OCPC5_SHIFT)1079#define OCPC6 (OCPC6_MASK << OCPC6_SHIFT)1080#define OCPC7 (OCPC7_MASK << OCPC7_SHIFT)108110821083/* PAR */1084#define FAULT (FAULT_MASK << FAULT_SHIFT)1085/* If a fault is present, these are the1086same as the fault fields in the FAR */1087#define FAULT_TF (FAULT_TF_MASK << FAULT_TF_SHIFT)1088#define FAULT_AFF (FAULT_AFF_MASK << FAULT_AFF_SHIFT)1089#define FAULT_APF (FAULT_APF_MASK << FAULT_APF_SHIFT)1090#define FAULT_TLBMF (FAULT_TLBMF_MASK << FAULT_TLBMF_SHIFT)1091#define FAULT_HTWDEEF (FAULT_HTWDEEF_MASK << FAULT_HTWDEEF_SHIFT)1092#define FAULT_HTWSEEF (FAULT_HTWSEEF_MASK << FAULT_HTWSEEF_SHIFT)1093#define FAULT_MHF (FAULT_MHF_MASK << FAULT_MHF_SHIFT)1094#define FAULT_SL (FAULT_SL_MASK << FAULT_SL_SHIFT)1095#define FAULT_SS (FAULT_SS_MASK << FAULT_SS_SHIFT)10961097/* If NO fault is present, the following fields are in effect */1098/* (FAULT remains as before) */1099#define PAR_NOFAULT_SS (PAR_NOFAULT_SS_MASK << PAR_NOFAULT_SS_SHIFT)1100#define PAR_NOFAULT_MT (PAR_NOFAULT_MT_MASK << PAR_NOFAULT_MT_SHIFT)1101#define PAR_NOFAULT_SH (PAR_NOFAULT_SH_MASK << PAR_NOFAULT_SH_SHIFT)1102#define PAR_NOFAULT_NS (PAR_NOFAULT_NS_MASK << PAR_NOFAULT_NS_SHIFT)1103#define PAR_NOFAULT_NOS (PAR_NOFAULT_NOS_MASK << PAR_NOFAULT_NOS_SHIFT)1104#define PAR_NPFAULT_PA (PAR_NPFAULT_PA_MASK << PAR_NPFAULT_PA_SHIFT)110511061107/* PRRR */1108#define MTC0 (MTC0_MASK << MTC0_SHIFT)1109#define MTC1 (MTC1_MASK << MTC1_SHIFT)1110#define MTC2 (MTC2_MASK << MTC2_SHIFT)1111#define MTC3 (MTC3_MASK << MTC3_SHIFT)1112#define MTC4 (MTC4_MASK << MTC4_SHIFT)1113#define MTC5 (MTC5_MASK << MTC5_SHIFT)1114#define MTC6 (MTC6_MASK << MTC6_SHIFT)1115#define MTC7 (MTC7_MASK << MTC7_SHIFT)1116#define SHDSH0 (SHDSH0_MASK << SHDSH0_SHIFT)1117#define SHDSH1 (SHDSH1_MASK << SHDSH1_SHIFT)1118#define SHNMSH0 (SHNMSH0_MASK << SHNMSH0_SHIFT)1119#define SHNMSH1 (SHNMSH1_MASK << SHNMSH1_SHIFT)1120#define NOS0 (NOS0_MASK << NOS0_SHIFT)1121#define NOS1 (NOS1_MASK << NOS1_SHIFT)1122#define NOS2 (NOS2_MASK << NOS2_SHIFT)1123#define NOS3 (NOS3_MASK << NOS3_SHIFT)1124#define NOS4 (NOS4_MASK << NOS4_SHIFT)1125#define NOS5 (NOS5_MASK << NOS5_SHIFT)1126#define NOS6 (NOS6_MASK << NOS6_SHIFT)1127#define NOS7 (NOS7_MASK << NOS7_SHIFT)112811291130/* RESUME */1131#define TNR (TNR_MASK << TNR_SHIFT)113211331134/* SCTLR */1135#define M (M_MASK << M_SHIFT)1136#define TRE (TRE_MASK << TRE_SHIFT)1137#define AFE (AFE_MASK << AFE_SHIFT)1138#define HAF (HAF_MASK << HAF_SHIFT)1139#define BE (BE_MASK << BE_SHIFT)1140#define AFFD (AFFD_MASK << AFFD_SHIFT)114111421143/* TLBIASID */1144#define TLBIASID_ASID (TLBIASID_ASID_MASK << TLBIASID_ASID_SHIFT)114511461147/* TLBIVA */1148#define TLBIVA_ASID (TLBIVA_ASID_MASK << TLBIVA_ASID_SHIFT)1149#define TLBIVA_VA (TLBIVA_VA_MASK << TLBIVA_VA_SHIFT)115011511152/* TLBIVAA */1153#define TLBIVAA_VA (TLBIVAA_VA_MASK << TLBIVAA_VA_SHIFT)115411551156/* TLBLCKR */1157#define LKE (LKE_MASK << LKE_SHIFT)1158#define TLBLCKR_TLBIALLCFG (TLBLCKR_TLBIALLCFG_MASK<<TLBLCKR_TLBIALLCFG_SHIFT)1159#define TLBIASIDCFG (TLBIASIDCFG_MASK << TLBIASIDCFG_SHIFT)1160#define TLBIVAACFG (TLBIVAACFG_MASK << TLBIVAACFG_SHIFT)1161#define FLOOR (FLOOR_MASK << FLOOR_SHIFT)1162#define VICTIM (VICTIM_MASK << VICTIM_SHIFT)116311641165/* TTBCR */1166#define N (N_MASK << N_SHIFT)1167#define PD0 (PD0_MASK << PD0_SHIFT)1168#define PD1 (PD1_MASK << PD1_SHIFT)116911701171/* TTBR0 */1172#define TTBR0_IRGNH (TTBR0_IRGNH_MASK << TTBR0_IRGNH_SHIFT)1173#define TTBR0_SH (TTBR0_SH_MASK << TTBR0_SH_SHIFT)1174#define TTBR0_ORGN (TTBR0_ORGN_MASK << TTBR0_ORGN_SHIFT)1175#define TTBR0_NOS (TTBR0_NOS_MASK << TTBR0_NOS_SHIFT)1176#define TTBR0_IRGNL (TTBR0_IRGNL_MASK << TTBR0_IRGNL_SHIFT)1177#define TTBR0_PA (TTBR0_PA_MASK << TTBR0_PA_SHIFT)117811791180/* TTBR1 */1181#define TTBR1_IRGNH (TTBR1_IRGNH_MASK << TTBR1_IRGNH_SHIFT)1182#define TTBR1_SH (TTBR1_SH_MASK << TTBR1_SH_SHIFT)1183#define TTBR1_ORGN (TTBR1_ORGN_MASK << TTBR1_ORGN_SHIFT)1184#define TTBR1_NOS (TTBR1_NOS_MASK << TTBR1_NOS_SHIFT)1185#define TTBR1_IRGNL (TTBR1_IRGNL_MASK << TTBR1_IRGNL_SHIFT)1186#define TTBR1_PA (TTBR1_PA_MASK << TTBR1_PA_SHIFT)118711881189/* V2PSR */1190#define HIT (HIT_MASK << HIT_SHIFT)1191#define INDEX (INDEX_MASK << INDEX_SHIFT)119211931194/* V2Pxx */1195#define V2Pxx_INDEX (V2Pxx_INDEX_MASK << V2Pxx_INDEX_SHIFT)1196#define V2Pxx_VA (V2Pxx_VA_MASK << V2Pxx_VA_SHIFT)119711981199/* Global Register Masks */1200/* CBACRn */1201#define RWVMID_MASK 0x1F1202#define RWE_MASK 0x011203#define RWGE_MASK 0x011204#define CBVMID_MASK 0x1F1205#define IRPTNDX_MASK 0xFF120612071208/* CR */1209#define RPUE_MASK 0x011210#define RPUERE_MASK 0x011211#define RPUEIE_MASK 0x011212#define DCDEE_MASK 0x011213#define CLIENTPD_MASK 0x011214#define STALLD_MASK 0x011215#define TLBLKCRWE_MASK 0x011216#define CR_TLBIALLCFG_MASK 0x011217#define TLBIVMIDCFG_MASK 0x011218#define CR_HUME_MASK 0x01121912201221/* ESR */1222#define CFG_MASK 0x011223#define BYPASS_MASK 0x011224#define ESR_MULTI_MASK 0x01122512261227/* ESYNR0 */1228#define ESYNR0_AMID_MASK 0xFF1229#define ESYNR0_APID_MASK 0x1F1230#define ESYNR0_ABID_MASK 0x071231#define ESYNR0_AVMID_MASK 0x1F1232#define ESYNR0_ATID_MASK 0xFF123312341235/* ESYNR1 */1236#define ESYNR1_AMEMTYPE_MASK 0x071237#define ESYNR1_ASHARED_MASK 0x011238#define ESYNR1_AINNERSHARED_MASK 0x011239#define ESYNR1_APRIV_MASK 0x011240#define ESYNR1_APROTNS_MASK 0x011241#define ESYNR1_AINST_MASK 0x011242#define ESYNR1_AWRITE_MASK 0x011243#define ESYNR1_ABURST_MASK 0x011244#define ESYNR1_ALEN_MASK 0x0F1245#define ESYNR1_ASIZE_MASK 0x011246#define ESYNR1_ALOCK_MASK 0x031247#define ESYNR1_AOOO_MASK 0x011248#define ESYNR1_AFULL_MASK 0x011249#define ESYNR1_AC_MASK 0x011250#define ESYNR1_DCD_MASK 0x01125112521253/* IDR */1254#define NM2VCBMT_MASK 0x1FF1255#define HTW_MASK 0x011256#define HUM_MASK 0x011257#define TLBSIZE_MASK 0x0F1258#define NCB_MASK 0xFF1259#define NIRPT_MASK 0xFF126012611262/* M2VCBRn */1263#define VMID_MASK 0x1F1264#define CBNDX_MASK 0xFF1265#define BYPASSD_MASK 0x011266#define BPRCOSH_MASK 0x011267#define BPRCISH_MASK 0x011268#define BPRCNSH_MASK 0x011269#define BPSHCFG_MASK 0x031270#define NSCFG_MASK 0x031271#define BPMTCFG_MASK 0x011272#define BPMEMTYPE_MASK 0x07127312741275/* REV */1276#define MINOR_MASK 0x0F1277#define MAJOR_MASK 0x0F127812791280/* TESTBUSCR */1281#define TBE_MASK 0x011282#define SPDMBE_MASK 0x011283#define WGSEL_MASK 0x031284#define TBLSEL_MASK 0x031285#define TBHSEL_MASK 0x031286#define SPDM0SEL_MASK 0x0F1287#define SPDM1SEL_MASK 0x0F1288#define SPDM2SEL_MASK 0x0F1289#define SPDM3SEL_MASK 0x0F129012911292/* TLBIMID */1293#define TLBIVMID_VMID_MASK 0x1F129412951296/* TLBRSW */1297#define TLBRSW_INDEX_MASK 0xFF1298#define TLBBFBS_MASK 0x03129913001301/* TLBTR0 */1302#define PR_MASK 0x011303#define PW_MASK 0x011304#define UR_MASK 0x011305#define UW_MASK 0x011306#define XN_MASK 0x011307#define NSDESC_MASK 0x011308#define ISH_MASK 0x011309#define SH_MASK 0x011310#define MT_MASK 0x071311#define DPSIZR_MASK 0x071312#define DPSIZC_MASK 0x07131313141315/* TLBTR1 */1316#define TLBTR1_VMID_MASK 0x1F1317#define TLBTR1_PA_MASK 0x000FFFFF131813191320/* TLBTR2 */1321#define TLBTR2_ASID_MASK 0xFF1322#define TLBTR2_V_MASK 0x011323#define TLBTR2_NSTID_MASK 0x011324#define TLBTR2_NV_MASK 0x011325#define TLBTR2_VA_MASK 0x000FFFFF132613271328/* Global Register Shifts */1329/* CBACRn */1330#define RWVMID_SHIFT 01331#define RWE_SHIFT 81332#define RWGE_SHIFT 91333#define CBVMID_SHIFT 161334#define IRPTNDX_SHIFT 24133513361337/* CR */1338#define RPUE_SHIFT 01339#define RPUERE_SHIFT 11340#define RPUEIE_SHIFT 21341#define DCDEE_SHIFT 31342#define CLIENTPD_SHIFT 41343#define STALLD_SHIFT 51344#define TLBLKCRWE_SHIFT 61345#define CR_TLBIALLCFG_SHIFT 71346#define TLBIVMIDCFG_SHIFT 81347#define CR_HUME_SHIFT 9134813491350/* ESR */1351#define CFG_SHIFT 01352#define BYPASS_SHIFT 11353#define ESR_MULTI_SHIFT 31135413551356/* ESYNR0 */1357#define ESYNR0_AMID_SHIFT 01358#define ESYNR0_APID_SHIFT 81359#define ESYNR0_ABID_SHIFT 131360#define ESYNR0_AVMID_SHIFT 161361#define ESYNR0_ATID_SHIFT 24136213631364/* ESYNR1 */1365#define ESYNR1_AMEMTYPE_SHIFT 01366#define ESYNR1_ASHARED_SHIFT 31367#define ESYNR1_AINNERSHARED_SHIFT 41368#define ESYNR1_APRIV_SHIFT 51369#define ESYNR1_APROTNS_SHIFT 61370#define ESYNR1_AINST_SHIFT 71371#define ESYNR1_AWRITE_SHIFT 81372#define ESYNR1_ABURST_SHIFT 101373#define ESYNR1_ALEN_SHIFT 121374#define ESYNR1_ASIZE_SHIFT 161375#define ESYNR1_ALOCK_SHIFT 201376#define ESYNR1_AOOO_SHIFT 221377#define ESYNR1_AFULL_SHIFT 241378#define ESYNR1_AC_SHIFT 301379#define ESYNR1_DCD_SHIFT 31138013811382/* IDR */1383#define NM2VCBMT_SHIFT 01384#define HTW_SHIFT 91385#define HUM_SHIFT 101386#define TLBSIZE_SHIFT 121387#define NCB_SHIFT 161388#define NIRPT_SHIFT 24138913901391/* M2VCBRn */1392#define VMID_SHIFT 01393#define CBNDX_SHIFT 81394#define BYPASSD_SHIFT 161395#define BPRCOSH_SHIFT 171396#define BPRCISH_SHIFT 181397#define BPRCNSH_SHIFT 191398#define BPSHCFG_SHIFT 201399#define NSCFG_SHIFT 221400#define BPMTCFG_SHIFT 241401#define BPMEMTYPE_SHIFT 25140214031404/* REV */1405#define MINOR_SHIFT 01406#define MAJOR_SHIFT 4140714081409/* TESTBUSCR */1410#define TBE_SHIFT 01411#define SPDMBE_SHIFT 11412#define WGSEL_SHIFT 81413#define TBLSEL_SHIFT 121414#define TBHSEL_SHIFT 141415#define SPDM0SEL_SHIFT 161416#define SPDM1SEL_SHIFT 201417#define SPDM2SEL_SHIFT 241418#define SPDM3SEL_SHIFT 28141914201421/* TLBIMID */1422#define TLBIVMID_VMID_SHIFT 0142314241425/* TLBRSW */1426#define TLBRSW_INDEX_SHIFT 01427#define TLBBFBS_SHIFT 8142814291430/* TLBTR0 */1431#define PR_SHIFT 01432#define PW_SHIFT 11433#define UR_SHIFT 21434#define UW_SHIFT 31435#define XN_SHIFT 41436#define NSDESC_SHIFT 61437#define ISH_SHIFT 71438#define SH_SHIFT 81439#define MT_SHIFT 91440#define DPSIZR_SHIFT 161441#define DPSIZC_SHIFT 20144214431444/* TLBTR1 */1445#define TLBTR1_VMID_SHIFT 01446#define TLBTR1_PA_SHIFT 12144714481449/* TLBTR2 */1450#define TLBTR2_ASID_SHIFT 01451#define TLBTR2_V_SHIFT 81452#define TLBTR2_NSTID_SHIFT 91453#define TLBTR2_NV_SHIFT 101454#define TLBTR2_VA_SHIFT 12145514561457/* Context Register Masks */1458/* ACTLR */1459#define CFERE_MASK 0x011460#define CFEIE_MASK 0x011461#define PTSHCFG_MASK 0x031462#define RCOSH_MASK 0x011463#define RCISH_MASK 0x011464#define RCNSH_MASK 0x011465#define PRIVCFG_MASK 0x031466#define DNA_MASK 0x011467#define DNLV2PA_MASK 0x011468#define TLBMCFG_MASK 0x031469#define CFCFG_MASK 0x011470#define TIPCF_MASK 0x011471#define V2PCFG_MASK 0x031472#define HUME_MASK 0x011473#define PTMTCFG_MASK 0x011474#define PTMEMTYPE_MASK 0x07147514761477/* BFBCR */1478#define BFBDFE_MASK 0x011479#define BFBSFE_MASK 0x011480#define SFVS_MASK 0x011481#define FLVIC_MASK 0x0F1482#define SLVIC_MASK 0x0F148314841485/* CONTEXTIDR */1486#define CONTEXTIDR_ASID_MASK 0xFF1487#define PROCID_MASK 0x00FFFFFF148814891490/* FSR */1491#define TF_MASK 0x011492#define AFF_MASK 0x011493#define APF_MASK 0x011494#define TLBMF_MASK 0x011495#define HTWDEEF_MASK 0x011496#define HTWSEEF_MASK 0x011497#define MHF_MASK 0x011498#define SL_MASK 0x011499#define SS_MASK 0x011500#define MULTI_MASK 0x01150115021503/* FSYNR0 */1504#define AMID_MASK 0xFF1505#define APID_MASK 0x1F1506#define ABID_MASK 0x071507#define ATID_MASK 0xFF150815091510/* FSYNR1 */1511#define AMEMTYPE_MASK 0x071512#define ASHARED_MASK 0x011513#define AINNERSHARED_MASK 0x011514#define APRIV_MASK 0x011515#define APROTNS_MASK 0x011516#define AINST_MASK 0x011517#define AWRITE_MASK 0x011518#define ABURST_MASK 0x011519#define ALEN_MASK 0x0F1520#define FSYNR1_ASIZE_MASK 0x071521#define ALOCK_MASK 0x031522#define AFULL_MASK 0x01152315241525/* NMRR */1526#define ICPC0_MASK 0x031527#define ICPC1_MASK 0x031528#define ICPC2_MASK 0x031529#define ICPC3_MASK 0x031530#define ICPC4_MASK 0x031531#define ICPC5_MASK 0x031532#define ICPC6_MASK 0x031533#define ICPC7_MASK 0x031534#define OCPC0_MASK 0x031535#define OCPC1_MASK 0x031536#define OCPC2_MASK 0x031537#define OCPC3_MASK 0x031538#define OCPC4_MASK 0x031539#define OCPC5_MASK 0x031540#define OCPC6_MASK 0x031541#define OCPC7_MASK 0x03154215431544/* PAR */1545#define FAULT_MASK 0x011546/* If a fault is present, these are the1547same as the fault fields in the FAR */1548#define FAULT_TF_MASK 0x011549#define FAULT_AFF_MASK 0x011550#define FAULT_APF_MASK 0x011551#define FAULT_TLBMF_MASK 0x011552#define FAULT_HTWDEEF_MASK 0x011553#define FAULT_HTWSEEF_MASK 0x011554#define FAULT_MHF_MASK 0x011555#define FAULT_SL_MASK 0x011556#define FAULT_SS_MASK 0x0115571558/* If NO fault is present, the following1559* fields are in effect1560* (FAULT remains as before) */1561#define PAR_NOFAULT_SS_MASK 0x011562#define PAR_NOFAULT_MT_MASK 0x071563#define PAR_NOFAULT_SH_MASK 0x011564#define PAR_NOFAULT_NS_MASK 0x011565#define PAR_NOFAULT_NOS_MASK 0x011566#define PAR_NPFAULT_PA_MASK 0x000FFFFF156715681569/* PRRR */1570#define MTC0_MASK 0x031571#define MTC1_MASK 0x031572#define MTC2_MASK 0x031573#define MTC3_MASK 0x031574#define MTC4_MASK 0x031575#define MTC5_MASK 0x031576#define MTC6_MASK 0x031577#define MTC7_MASK 0x031578#define SHDSH0_MASK 0x011579#define SHDSH1_MASK 0x011580#define SHNMSH0_MASK 0x011581#define SHNMSH1_MASK 0x011582#define NOS0_MASK 0x011583#define NOS1_MASK 0x011584#define NOS2_MASK 0x011585#define NOS3_MASK 0x011586#define NOS4_MASK 0x011587#define NOS5_MASK 0x011588#define NOS6_MASK 0x011589#define NOS7_MASK 0x01159015911592/* RESUME */1593#define TNR_MASK 0x01159415951596/* SCTLR */1597#define M_MASK 0x011598#define TRE_MASK 0x011599#define AFE_MASK 0x011600#define HAF_MASK 0x011601#define BE_MASK 0x011602#define AFFD_MASK 0x01160316041605/* TLBIASID */1606#define TLBIASID_ASID_MASK 0xFF160716081609/* TLBIVA */1610#define TLBIVA_ASID_MASK 0xFF1611#define TLBIVA_VA_MASK 0x000FFFFF161216131614/* TLBIVAA */1615#define TLBIVAA_VA_MASK 0x000FFFFF161616171618/* TLBLCKR */1619#define LKE_MASK 0x011620#define TLBLCKR_TLBIALLCFG_MASK 0x011621#define TLBIASIDCFG_MASK 0x011622#define TLBIVAACFG_MASK 0x011623#define FLOOR_MASK 0xFF1624#define VICTIM_MASK 0xFF162516261627/* TTBCR */1628#define N_MASK 0x071629#define PD0_MASK 0x011630#define PD1_MASK 0x01163116321633/* TTBR0 */1634#define TTBR0_IRGNH_MASK 0x011635#define TTBR0_SH_MASK 0x011636#define TTBR0_ORGN_MASK 0x031637#define TTBR0_NOS_MASK 0x011638#define TTBR0_IRGNL_MASK 0x011639#define TTBR0_PA_MASK 0x0003FFFF164016411642/* TTBR1 */1643#define TTBR1_IRGNH_MASK 0x011644#define TTBR1_SH_MASK 0x011645#define TTBR1_ORGN_MASK 0x031646#define TTBR1_NOS_MASK 0x011647#define TTBR1_IRGNL_MASK 0x011648#define TTBR1_PA_MASK 0x0003FFFF164916501651/* V2PSR */1652#define HIT_MASK 0x011653#define INDEX_MASK 0xFF165416551656/* V2Pxx */1657#define V2Pxx_INDEX_MASK 0xFF1658#define V2Pxx_VA_MASK 0x000FFFFF165916601661/* Context Register Shifts */1662/* ACTLR */1663#define CFERE_SHIFT 01664#define CFEIE_SHIFT 11665#define PTSHCFG_SHIFT 21666#define RCOSH_SHIFT 41667#define RCISH_SHIFT 51668#define RCNSH_SHIFT 61669#define PRIVCFG_SHIFT 81670#define DNA_SHIFT 101671#define DNLV2PA_SHIFT 111672#define TLBMCFG_SHIFT 121673#define CFCFG_SHIFT 141674#define TIPCF_SHIFT 151675#define V2PCFG_SHIFT 161676#define HUME_SHIFT 181677#define PTMTCFG_SHIFT 201678#define PTMEMTYPE_SHIFT 21167916801681/* BFBCR */1682#define BFBDFE_SHIFT 01683#define BFBSFE_SHIFT 11684#define SFVS_SHIFT 21685#define FLVIC_SHIFT 41686#define SLVIC_SHIFT 8168716881689/* CONTEXTIDR */1690#define CONTEXTIDR_ASID_SHIFT 01691#define PROCID_SHIFT 8169216931694/* FSR */1695#define TF_SHIFT 11696#define AFF_SHIFT 21697#define APF_SHIFT 31698#define TLBMF_SHIFT 41699#define HTWDEEF_SHIFT 51700#define HTWSEEF_SHIFT 61701#define MHF_SHIFT 71702#define SL_SHIFT 161703#define SS_SHIFT 301704#define MULTI_SHIFT 31170517061707/* FSYNR0 */1708#define AMID_SHIFT 01709#define APID_SHIFT 81710#define ABID_SHIFT 131711#define ATID_SHIFT 24171217131714/* FSYNR1 */1715#define AMEMTYPE_SHIFT 01716#define ASHARED_SHIFT 31717#define AINNERSHARED_SHIFT 41718#define APRIV_SHIFT 51719#define APROTNS_SHIFT 61720#define AINST_SHIFT 71721#define AWRITE_SHIFT 81722#define ABURST_SHIFT 101723#define ALEN_SHIFT 121724#define FSYNR1_ASIZE_SHIFT 161725#define ALOCK_SHIFT 201726#define AFULL_SHIFT 24172717281729/* NMRR */1730#define ICPC0_SHIFT 01731#define ICPC1_SHIFT 21732#define ICPC2_SHIFT 41733#define ICPC3_SHIFT 61734#define ICPC4_SHIFT 81735#define ICPC5_SHIFT 101736#define ICPC6_SHIFT 121737#define ICPC7_SHIFT 141738#define OCPC0_SHIFT 161739#define OCPC1_SHIFT 181740#define OCPC2_SHIFT 201741#define OCPC3_SHIFT 221742#define OCPC4_SHIFT 241743#define OCPC5_SHIFT 261744#define OCPC6_SHIFT 281745#define OCPC7_SHIFT 30174617471748/* PAR */1749#define FAULT_SHIFT 01750/* If a fault is present, these are the1751same as the fault fields in the FAR */1752#define FAULT_TF_SHIFT 11753#define FAULT_AFF_SHIFT 21754#define FAULT_APF_SHIFT 31755#define FAULT_TLBMF_SHIFT 41756#define FAULT_HTWDEEF_SHIFT 51757#define FAULT_HTWSEEF_SHIFT 61758#define FAULT_MHF_SHIFT 71759#define FAULT_SL_SHIFT 161760#define FAULT_SS_SHIFT 3017611762/* If NO fault is present, the following1763* fields are in effect1764* (FAULT remains as before) */1765#define PAR_NOFAULT_SS_SHIFT 11766#define PAR_NOFAULT_MT_SHIFT 41767#define PAR_NOFAULT_SH_SHIFT 71768#define PAR_NOFAULT_NS_SHIFT 91769#define PAR_NOFAULT_NOS_SHIFT 101770#define PAR_NPFAULT_PA_SHIFT 12177117721773/* PRRR */1774#define MTC0_SHIFT 01775#define MTC1_SHIFT 21776#define MTC2_SHIFT 41777#define MTC3_SHIFT 61778#define MTC4_SHIFT 81779#define MTC5_SHIFT 101780#define MTC6_SHIFT 121781#define MTC7_SHIFT 141782#define SHDSH0_SHIFT 161783#define SHDSH1_SHIFT 171784#define SHNMSH0_SHIFT 181785#define SHNMSH1_SHIFT 191786#define NOS0_SHIFT 241787#define NOS1_SHIFT 251788#define NOS2_SHIFT 261789#define NOS3_SHIFT 271790#define NOS4_SHIFT 281791#define NOS5_SHIFT 291792#define NOS6_SHIFT 301793#define NOS7_SHIFT 31179417951796/* RESUME */1797#define TNR_SHIFT 0179817991800/* SCTLR */1801#define M_SHIFT 01802#define TRE_SHIFT 11803#define AFE_SHIFT 21804#define HAF_SHIFT 31805#define BE_SHIFT 41806#define AFFD_SHIFT 5180718081809/* TLBIASID */1810#define TLBIASID_ASID_SHIFT 0181118121813/* TLBIVA */1814#define TLBIVA_ASID_SHIFT 01815#define TLBIVA_VA_SHIFT 12181618171818/* TLBIVAA */1819#define TLBIVAA_VA_SHIFT 12182018211822/* TLBLCKR */1823#define LKE_SHIFT 01824#define TLBLCKR_TLBIALLCFG_SHIFT 11825#define TLBIASIDCFG_SHIFT 21826#define TLBIVAACFG_SHIFT 31827#define FLOOR_SHIFT 81828#define VICTIM_SHIFT 8182918301831/* TTBCR */1832#define N_SHIFT 31833#define PD0_SHIFT 41834#define PD1_SHIFT 5183518361837/* TTBR0 */1838#define TTBR0_IRGNH_SHIFT 01839#define TTBR0_SH_SHIFT 11840#define TTBR0_ORGN_SHIFT 31841#define TTBR0_NOS_SHIFT 51842#define TTBR0_IRGNL_SHIFT 61843#define TTBR0_PA_SHIFT 14184418451846/* TTBR1 */1847#define TTBR1_IRGNH_SHIFT 01848#define TTBR1_SH_SHIFT 11849#define TTBR1_ORGN_SHIFT 31850#define TTBR1_NOS_SHIFT 51851#define TTBR1_IRGNL_SHIFT 61852#define TTBR1_PA_SHIFT 14185318541855/* V2PSR */1856#define HIT_SHIFT 01857#define INDEX_SHIFT 8185818591860/* V2Pxx */1861#define V2Pxx_INDEX_SHIFT 01862#define V2Pxx_VA_SHIFT 1218631864#endif186518661867