Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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