diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-02-22 08:58:22 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-02-22 12:14:55 +0000 |
commit | 36bec0096e0fcda9964e91a4c8b76561a47d842f (patch) | |
tree | 48cf494bde8251a76d27647a227b2093dc3a70f7 /xen/arch/arm/setup.c | |
parent | 7a016c8427353f9876560d7e01ea16f7a42d7fcb (diff) | |
download | xen-36bec0096e0fcda9964e91a4c8b76561a47d842f.tar.gz xen-36bec0096e0fcda9964e91a4c8b76561a47d842f.tar.bz2 xen-36bec0096e0fcda9964e91a4c8b76561a47d842f.zip |
xen: arm: Explicitly setup VPIDR & VMPIDR at start of day
These are supposed to reset to the value of the underlying hardware
but appears not to be on at least some v8 models. There's no harm in
setting them explicitly.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/arch/arm/setup.c')
-rw-r--r-- | xen/arch/arm/setup.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index f40cc7fe34..832603466b 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -56,6 +56,11 @@ static void __init init_idle_domain(void) static void __init processor_id(void) { + + /* Setup the virtual ID to match the physical */ + WRITE_SYSREG32(READ_SYSREG32(MIDR_EL1), VPIDR_EL2); + WRITE_SYSREG(READ_SYSREG(MPIDR_EL1), VMPIDR_EL2); + #if defined(CONFIG_ARM_64) printk("64-bit Processor Features: %016"PRIx64" %016"PRIx64"\n", READ_SYSREG64(ID_AA64PFR0_EL1), READ_SYSREG64(ID_AA64PFR1_EL1)); |