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>
This commit is contained in:
parent
69b2265d5f
commit
0942820408
@ -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)
|
||||
|
||||
|
@ -132,6 +132,7 @@ struct VirtMachineClass {
|
||||
bool no_secure_gpio;
|
||||
/* Machines < 6.2 have no support for describing cpu topology to guest */
|
||||
bool no_cpu_topology;
|
||||
bool no_tcg_lpa2;
|
||||
};
|
||||
|
||||
struct VirtMachineState {
|
||||
|
Loading…
Reference in New Issue
Block a user