Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: arm64: Add new (V)TCR_EL2 field definitions for FEAT_LPA2

As per Arm ARM (0487I.a), (V)TCR_EL2.DS fields control whether 52 bit
input and output addresses are supported on 4K and 16K page size
configurations when FEAT_LPA2 is known to have been implemented.

This adds these field definitions which will be used by KVM when
FEAT_LPA2 is enabled.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20231127111737.1897081-7-ryan.roberts@arm.com

authored by

Ryan Roberts and committed by
Marc Zyngier
d4fbbb26 b1366d21

+2
+2
arch/arm64/include/asm/kvm_arm.h
··· 108 108 #define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn | HCRX_EL2_TCR2En) 109 109 110 110 /* TCR_EL2 Registers bits */ 111 + #define TCR_EL2_DS (1UL << 32) 111 112 #define TCR_EL2_RES1 ((1U << 31) | (1 << 23)) 112 113 #define TCR_EL2_TBI (1 << 20) 113 114 #define TCR_EL2_PS_SHIFT 16 ··· 123 122 TCR_EL2_ORGN0_MASK | TCR_EL2_IRGN0_MASK | TCR_EL2_T0SZ_MASK) 124 123 125 124 /* VTCR_EL2 Registers bits */ 125 + #define VTCR_EL2_DS TCR_EL2_DS 126 126 #define VTCR_EL2_RES1 (1U << 31) 127 127 #define VTCR_EL2_HD (1 << 22) 128 128 #define VTCR_EL2_HA (1 << 21)