diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-03-01 11:59:58 -1000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2022-03-07 14:32:21 +0000 |
commit | 0942820408dc788560f6968e9b5f011803b846c2 (patch) | |
tree | 455438f799c23504eca41bab6ae61b22ce4a190a /hw/arm | |
parent | 69b2265d5fe8e0f401d75e175e0a243a7d505e53 (diff) | |
download | qemu-0942820408dc788560f6968e9b5f011803b846c2.zip qemu-0942820408dc788560f6968e9b5f011803b846c2.tar.gz qemu-0942820408dc788560f6968e9b5f011803b846c2.tar.bz2 |
hw/arm/virt: Disable LPA2 for -machine virt-6.2
There is a Linux kernel bug present until v5.12 that prevents
booting with FEAT_LPA2 enabled. As a workaround for TCG,
disable this feature for machine versions prior to 7.0.
Cc: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm')
-rw-r--r-- | hw/arm/virt.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 46bf7ce..46a4250 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2102,6 +2102,10 @@ static void machvirt_init(MachineState *machine) object_property_set_bool(cpuobj, "pmu", false, NULL); } + if (vmc->no_tcg_lpa2 && object_property_find(cpuobj, "lpa2")) { + object_property_set_bool(cpuobj, "lpa2", false, NULL); + } + if (object_property_find(cpuobj, "reset-cbar")) { object_property_set_int(cpuobj, "reset-cbar", vms->memmap[VIRT_CPUPERIPHS].base, @@ -3020,8 +3024,11 @@ DEFINE_VIRT_MACHINE_AS_LATEST(7, 0) static void virt_machine_6_2_options(MachineClass *mc) { + VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + virt_machine_7_0_options(mc); compat_props_add(mc->compat_props, hw_compat_6_2, hw_compat_6_2_len); + vmc->no_tcg_lpa2 = true; } DEFINE_VIRT_MACHINE(6, 2) |