linux_dsm_epyc7002/arch/arm64/kvm/hyp
Kristina Martsenko 787fd1d019 arm64: limit PA size to supported range
We currently copy the physical address size from
ID_AA64MMFR0_EL1.PARange directly into TCR.(I)PS. This will not work for
4k and 16k granule kernels on systems that support 52-bit physical
addresses, since 52-bit addresses are only permitted with the 64k
granule.

To fix this, fall back to 48 bits when configuring the PA size when the
kernel does not support 52-bit PAs. When it does, fall back to 52, to
avoid similar problems in the future if the PA size is ever increased
above 52.

Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Tested-by: Bob Picco <bob.picco@oracle.com>
Reviewed-by: Bob Picco <bob.picco@oracle.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
[catalin.marinas@arm.com: tcr_set_pa_size macro renamed to tcr_compute_pa_size]
[catalin.marinas@arm.com: comments added to tcr_compute_pa_size]
[catalin.marinas@arm.com: definitions added for TCR_*PS_SHIFT]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-12-22 17:34:52 +00:00
..
debug-sr.c arm64: sysreg: Move SPE registers and PSB into common header files 2017-10-18 12:53:32 +01:00
entry.S arm64: KVM: Handle async aborts delivered while at EL2 2016-09-08 12:53:00 +02:00
fpsimd.S arm64: KVM: Implement fpsimd save/restore 2015-12-14 11:30:41 +00:00
hyp-entry.S arm64: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors 2017-04-09 07:49:22 -07:00
Makefile Fixes for interrupt controller emulation in ARM/ARM64 and x86, plus a one-liner 2017-11-04 11:44:55 -07:00
s2-setup.c arm64: limit PA size to supported range 2017-12-22 17:34:52 +00:00
switch.c kvm: arm64: handle single-step of hyp emulated mmio instructions 2017-11-29 18:17:47 +01:00
sysreg-sr.c arm64: KVM: VHE: Context switch MDSCR_EL1 2016-07-23 18:07:12 +02:00
tlb.c arm64: KVM: Add support for VPIPT I-caches 2017-03-20 16:25:45 +00:00