Commit 4abc783e authored by Marc Zyngier's avatar Marc Zyngier
Browse files

arm64: Add missing APTable and TCR_ELx.HPD masks



Although Linux doesn't make use of hierarchical permissions (TFFT!),
KVM needs to know where the various bits related to this feature
live in the TCR_ELx registers as well as in the page tables.

Add the missing bits.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 69231a6f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@
/* TCR_EL2 Registers bits */
#define TCR_EL2_DS		(1UL << 32)
#define TCR_EL2_RES1		((1U << 31) | (1 << 23))
#define TCR_EL2_HPD		(1 << 24)
#define TCR_EL2_TBI		(1 << 20)
#define TCR_EL2_PS_SHIFT	16
#define TCR_EL2_PS_MASK		(7 << TCR_EL2_PS_SHIFT)
+9 −0
Original line number Diff line number Diff line
@@ -204,6 +204,11 @@
 */
#define PTE_S2_MEMATTR(t)	(_AT(pteval_t, (t)) << 2)

/*
 * Hierarchical permission for Stage-1 tables
 */
#define S1_TABLE_AP		(_AT(pmdval_t, 3) << 61)

/*
 * Highest possible physical address supported.
 */
@@ -298,6 +303,10 @@
#define TCR_TBI1		(UL(1) << 38)
#define TCR_HA			(UL(1) << 39)
#define TCR_HD			(UL(1) << 40)
#define TCR_HPD0_SHIFT		41
#define TCR_HPD0		(UL(1) << TCR_HPD0_SHIFT)
#define TCR_HPD1_SHIFT		42
#define TCR_HPD1		(UL(1) << TCR_HPD1_SHIFT)
#define TCR_TBID0		(UL(1) << 51)
#define TCR_TBID1		(UL(1) << 52)
#define TCR_NFD0		(UL(1) << 53)