hw/arm/virt: Check for attempt to use TrustZone with KVM or HVF
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 4 Apr 2022 15:53:01 +0000 (16:53 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 21 Apr 2022 10:37:03 +0000 (11:37 +0100)
commit78255ce392dc8596f9886476ad1e5c3c67f1c10a
tree94a5889f26eff3ba97a23422b5141a4f4a67354f
parent9c125d17e9402c232c46610802e5931b3639d77b
hw/arm/virt: Check for attempt to use TrustZone with KVM or HVF

It's not possible to provide the guest with the Security extensions
(TrustZone) when using KVM or HVF, because the hardware
virtualization extensions don't permit running EL3 guest code.
However, we weren't checking for this combination, with the result
that QEMU would assert if you tried it:

$ qemu-system-aarch64 -enable-kvm -machine virt,secure=on -cpu host -display none
Unexpected error in object_property_find_err() at ../../qom/object.c:1304:
qemu-system-aarch64: Property 'host-arm-cpu.secure-memory' not found
Aborted

Check for this combination of options and report an error, in the
same way we already do for attempts to give a KVM or HVF guest the
Virtualization or MTE extensions. Now we will report:

qemu-system-aarch64: mach-virt: KVM does not support providing Security extensions (TrustZone) to the guest CPU

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/961
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220404155301.566542-1-peter.maydell@linaro.org
hw/arm/virt.c