On Fri, Jan 14, 2022 at 04:24:37PM +0900, Shuuichirou Ishii wrote: > At A64FX specification, VHE is enabled by default, so > the virtualization option should be enabled when -cpu a64fx > is specified. > > Signed-off-by: Shuuichirou Ishii <[email protected]> > --- > hw/arm/virt.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index b45b52c90e..56acf5cc7e 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1932,6 +1932,12 @@ static void machvirt_init(MachineState *machine) > firmware_loaded = virt_firmware_init(vms, sysmem, > secure_sysmem ?: sysmem); > > + /* A64FX proceesor is supported the ARMv8.1-VHE */ > + if (!vms->virt && > + !strncmp(machine->cpu_type, ARM_CPU_TYPE_NAME("a64fx"), 13)) { > + vms->virt = true; > + } > + > /* If we have an EL3 boot ROM then the assumption is that it will > * implement PSCI itself, so disable QEMU's internal implementation > * so it doesn't get in the way. Instead of starting secondary > -- > 2.27.0 >
a64fx isn't the only CPU type the virt machine type supports which has EL2 support. In fact, all the CPU types supported by mach-virt do, unless KVM is enabled. So, while I understand the sentiment of this patch, it doesn't fit the current model. And, since we don't want to start accumulating hacks like this one in mach-virt, then the options are either a) push the problem up the stack to whatever constructs the QEMU command line or b) consider/propose a different machine type. Thanks, drew
