arm64: KVM: Configure TCR_EL2.PS at runtime
authorTirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
Wed, 10 Feb 2016 18:46:53 +0000 (10:46 -0800)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 11 Feb 2016 13:16:47 +0000 (13:16 +0000)
commit3c5b1d92b3b02be07873d611a27950addff544d3
tree0455ab148d85fee4bd8700315bc606d8e7f568fb
parentb3aff6ccbb1d25e506b60ccd9c559013903f3464
arm64: KVM: Configure TCR_EL2.PS at runtime

Setting TCR_EL2.PS to 40 bits is wrong on systems with less that
less than 40 bits of physical addresses. and breaks KVM on systems
where the RAM is above 40 bits.

This patch uses ID_AA64MMFR0_EL1.PARange to set TCR_EL2.PS dynamically,
just like we already do for VTCR_EL2.PS.

[Marc: rewrote commit message, patch tidy up]

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/include/asm/kvm_arm.h
arch/arm64/kvm/hyp-init.S