|
@@ -179,3 +179,175 @@ do { \
|
|
|
#define GET_TLBFLPTER(b, c) GET_CTX_REG(TLBFLPTER, (b), (c))
|
|
|
#define GET_TLBSLPTER(b, c) GET_CTX_REG(TLBSLPTER, (b), (c))
|
|
|
#define GET_BFBCR(b, c) GET_CTX_REG(BFBCR, (b), (c))
|
|
|
+#define GET_CTX_TLBIALL(b, c) GET_CTX_REG(CTX_TLBIALL, (b), (c))
|
|
|
+#define GET_TLBIASID(b, c) GET_CTX_REG(TLBIASID, (b), (c))
|
|
|
+#define GET_TLBIVA(b, c) GET_CTX_REG(TLBIVA, (b), (c))
|
|
|
+#define GET_TLBIVAA(b, c) GET_CTX_REG(TLBIVAA, (b), (c))
|
|
|
+#define GET_V2PPR(b, c) GET_CTX_REG(V2PPR, (b), (c))
|
|
|
+#define GET_V2PPW(b, c) GET_CTX_REG(V2PPW, (b), (c))
|
|
|
+#define GET_V2PUR(b, c) GET_CTX_REG(V2PUR, (b), (c))
|
|
|
+#define GET_V2PUW(b, c) GET_CTX_REG(V2PUW, (b), (c))
|
|
|
+#define GET_RESUME(b, c) GET_CTX_REG(RESUME, (b), (c))
|
|
|
+
|
|
|
+
|
|
|
+/* Global field setters / getters */
|
|
|
+/* Global Field Setters: */
|
|
|
+/* CBACR_N */
|
|
|
+#define SET_RWVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID, v)
|
|
|
+#define SET_RWE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE, v)
|
|
|
+#define SET_RWGE(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE, v)
|
|
|
+#define SET_CBVMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID, v)
|
|
|
+#define SET_IRPTNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX, v)
|
|
|
+
|
|
|
+
|
|
|
+/* M2VCBR_N */
|
|
|
+#define SET_VMID(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID, v)
|
|
|
+#define SET_CBNDX(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX, v)
|
|
|
+#define SET_BYPASSD(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD, v)
|
|
|
+#define SET_BPRCOSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH, v)
|
|
|
+#define SET_BPRCISH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH, v)
|
|
|
+#define SET_BPRCNSH(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH, v)
|
|
|
+#define SET_BPSHCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG, v)
|
|
|
+#define SET_NSCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG, v)
|
|
|
+#define SET_BPMTCFG(b, n, v) SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG, v)
|
|
|
+#define SET_BPMEMTYPE(b, n, v) \
|
|
|
+ SET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE, v)
|
|
|
+
|
|
|
+
|
|
|
+/* CR */
|
|
|
+#define SET_RPUE(b, v) SET_GLOBAL_FIELD(b, CR, RPUE, v)
|
|
|
+#define SET_RPUERE(b, v) SET_GLOBAL_FIELD(b, CR, RPUERE, v)
|
|
|
+#define SET_RPUEIE(b, v) SET_GLOBAL_FIELD(b, CR, RPUEIE, v)
|
|
|
+#define SET_DCDEE(b, v) SET_GLOBAL_FIELD(b, CR, DCDEE, v)
|
|
|
+#define SET_CLIENTPD(b, v) SET_GLOBAL_FIELD(b, CR, CLIENTPD, v)
|
|
|
+#define SET_STALLD(b, v) SET_GLOBAL_FIELD(b, CR, STALLD, v)
|
|
|
+#define SET_TLBLKCRWE(b, v) SET_GLOBAL_FIELD(b, CR, TLBLKCRWE, v)
|
|
|
+#define SET_CR_TLBIALLCFG(b, v) SET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG, v)
|
|
|
+#define SET_TLBIVMIDCFG(b, v) SET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG, v)
|
|
|
+#define SET_CR_HUME(b, v) SET_GLOBAL_FIELD(b, CR, CR_HUME, v)
|
|
|
+
|
|
|
+
|
|
|
+/* ESR */
|
|
|
+#define SET_CFG(b, v) SET_GLOBAL_FIELD(b, ESR, CFG, v)
|
|
|
+#define SET_BYPASS(b, v) SET_GLOBAL_FIELD(b, ESR, BYPASS, v)
|
|
|
+#define SET_ESR_MULTI(b, v) SET_GLOBAL_FIELD(b, ESR, ESR_MULTI, v)
|
|
|
+
|
|
|
+
|
|
|
+/* ESYNR0 */
|
|
|
+#define SET_ESYNR0_AMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AMID, v)
|
|
|
+#define SET_ESYNR0_APID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_APID, v)
|
|
|
+#define SET_ESYNR0_ABID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ABID, v)
|
|
|
+#define SET_ESYNR0_AVMID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_AVMID, v)
|
|
|
+#define SET_ESYNR0_ATID(b, v) SET_GLOBAL_FIELD(b, ESYNR0, ESYNR0_ATID, v)
|
|
|
+
|
|
|
+
|
|
|
+/* ESYNR1 */
|
|
|
+#define SET_ESYNR1_AMEMTYPE(b, v) \
|
|
|
+ SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AMEMTYPE, v)
|
|
|
+#define SET_ESYNR1_ASHARED(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASHARED, v)
|
|
|
+#define SET_ESYNR1_AINNERSHARED(b, v) \
|
|
|
+ SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINNERSHARED, v)
|
|
|
+#define SET_ESYNR1_APRIV(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APRIV, v)
|
|
|
+#define SET_ESYNR1_APROTNS(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_APROTNS, v)
|
|
|
+#define SET_ESYNR1_AINST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AINST, v)
|
|
|
+#define SET_ESYNR1_AWRITE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AWRITE, v)
|
|
|
+#define SET_ESYNR1_ABURST(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ABURST, v)
|
|
|
+#define SET_ESYNR1_ALEN(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALEN, v)
|
|
|
+#define SET_ESYNR1_ASIZE(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ASIZE, v)
|
|
|
+#define SET_ESYNR1_ALOCK(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_ALOCK, v)
|
|
|
+#define SET_ESYNR1_AOOO(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AOOO, v)
|
|
|
+#define SET_ESYNR1_AFULL(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AFULL, v)
|
|
|
+#define SET_ESYNR1_AC(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_AC, v)
|
|
|
+#define SET_ESYNR1_DCD(b, v) SET_GLOBAL_FIELD(b, ESYNR1, ESYNR1_DCD, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TESTBUSCR */
|
|
|
+#define SET_TBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBE, v)
|
|
|
+#define SET_SPDMBE(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDMBE, v)
|
|
|
+#define SET_WGSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, WGSEL, v)
|
|
|
+#define SET_TBLSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBLSEL, v)
|
|
|
+#define SET_TBHSEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, TBHSEL, v)
|
|
|
+#define SET_SPDM0SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM0SEL, v)
|
|
|
+#define SET_SPDM1SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM1SEL, v)
|
|
|
+#define SET_SPDM2SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM2SEL, v)
|
|
|
+#define SET_SPDM3SEL(b, v) SET_GLOBAL_FIELD(b, TESTBUSCR, SPDM3SEL, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TLBIVMID */
|
|
|
+#define SET_TLBIVMID_VMID(b, v) SET_GLOBAL_FIELD(b, TLBIVMID, TLBIVMID_VMID, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TLBRSW */
|
|
|
+#define SET_TLBRSW_INDEX(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBRSW_INDEX, v)
|
|
|
+#define SET_TLBBFBS(b, v) SET_GLOBAL_FIELD(b, TLBRSW, TLBBFBS, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TLBTR0 */
|
|
|
+#define SET_PR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PR, v)
|
|
|
+#define SET_PW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, PW, v)
|
|
|
+#define SET_UR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UR, v)
|
|
|
+#define SET_UW(b, v) SET_GLOBAL_FIELD(b, TLBTR0, UW, v)
|
|
|
+#define SET_XN(b, v) SET_GLOBAL_FIELD(b, TLBTR0, XN, v)
|
|
|
+#define SET_NSDESC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, NSDESC, v)
|
|
|
+#define SET_ISH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, ISH, v)
|
|
|
+#define SET_SH(b, v) SET_GLOBAL_FIELD(b, TLBTR0, SH, v)
|
|
|
+#define SET_MT(b, v) SET_GLOBAL_FIELD(b, TLBTR0, MT, v)
|
|
|
+#define SET_DPSIZR(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZR, v)
|
|
|
+#define SET_DPSIZC(b, v) SET_GLOBAL_FIELD(b, TLBTR0, DPSIZC, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TLBTR1 */
|
|
|
+#define SET_TLBTR1_VMID(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_VMID, v)
|
|
|
+#define SET_TLBTR1_PA(b, v) SET_GLOBAL_FIELD(b, TLBTR1, TLBTR1_PA, v)
|
|
|
+
|
|
|
+
|
|
|
+/* TLBTR2 */
|
|
|
+#define SET_TLBTR2_ASID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_ASID, v)
|
|
|
+#define SET_TLBTR2_V(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_V, v)
|
|
|
+#define SET_TLBTR2_NSTID(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NSTID, v)
|
|
|
+#define SET_TLBTR2_NV(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_NV, v)
|
|
|
+#define SET_TLBTR2_VA(b, v) SET_GLOBAL_FIELD(b, TLBTR2, TLBTR2_VA, v)
|
|
|
+
|
|
|
+
|
|
|
+/* Global Field Getters */
|
|
|
+/* CBACR_N */
|
|
|
+#define GET_RWVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWVMID)
|
|
|
+#define GET_RWE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWE)
|
|
|
+#define GET_RWGE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), RWGE)
|
|
|
+#define GET_CBVMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), CBVMID)
|
|
|
+#define GET_IRPTNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(CBACR_N), IRPTNDX)
|
|
|
+
|
|
|
+
|
|
|
+/* M2VCBR_N */
|
|
|
+#define GET_VMID(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), VMID)
|
|
|
+#define GET_CBNDX(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), CBNDX)
|
|
|
+#define GET_BYPASSD(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BYPASSD)
|
|
|
+#define GET_BPRCOSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCOSH)
|
|
|
+#define GET_BPRCISH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCISH)
|
|
|
+#define GET_BPRCNSH(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPRCNSH)
|
|
|
+#define GET_BPSHCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPSHCFG)
|
|
|
+#define GET_NSCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), NSCFG)
|
|
|
+#define GET_BPMTCFG(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMTCFG)
|
|
|
+#define GET_BPMEMTYPE(b, n) GET_GLOBAL_FIELD(b, (n<<2)|(M2VCBR_N), BPMEMTYPE)
|
|
|
+
|
|
|
+
|
|
|
+/* CR */
|
|
|
+#define GET_RPUE(b) GET_GLOBAL_FIELD(b, CR, RPUE)
|
|
|
+#define GET_RPUERE(b) GET_GLOBAL_FIELD(b, CR, RPUERE)
|
|
|
+#define GET_RPUEIE(b) GET_GLOBAL_FIELD(b, CR, RPUEIE)
|
|
|
+#define GET_DCDEE(b) GET_GLOBAL_FIELD(b, CR, DCDEE)
|
|
|
+#define GET_CLIENTPD(b) GET_GLOBAL_FIELD(b, CR, CLIENTPD)
|
|
|
+#define GET_STALLD(b) GET_GLOBAL_FIELD(b, CR, STALLD)
|
|
|
+#define GET_TLBLKCRWE(b) GET_GLOBAL_FIELD(b, CR, TLBLKCRWE)
|
|
|
+#define GET_CR_TLBIALLCFG(b) GET_GLOBAL_FIELD(b, CR, CR_TLBIALLCFG)
|
|
|
+#define GET_TLBIVMIDCFG(b) GET_GLOBAL_FIELD(b, CR, TLBIVMIDCFG)
|
|
|
+#define GET_CR_HUME(b) GET_GLOBAL_FIELD(b, CR, CR_HUME)
|
|
|
+
|
|
|
+
|
|
|
+/* ESR */
|
|
|
+#define GET_CFG(b) GET_GLOBAL_FIELD(b, ESR, CFG)
|
|
|
+#define GET_BYPASS(b) GET_GLOBAL_FIELD(b, ESR, BYPASS)
|
|
|
+#define GET_ESR_MULTI(b) GET_GLOBAL_FIELD(b, ESR, ESR_MULTI)
|
|
|
+
|
|
|
+
|
|
|
+/* ESYNR0 */
|