Currently, Apple doesn't support the nested virtualisation + SME combination.
Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/arm/hvf/hvf.c | 5 +++++
target/arm/hvf_arm.h | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
index dc9d3a24ce..88d4732fbf 100644
--- a/target/arm/hvf/hvf.c
+++ b/target/arm/hvf/hvf.c
@@ -1206,6 +1206,11 @@ static bool hvf_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf)
FIELD_DP64_IDREG(&host_isar, ID_AA64DFR0, PMUVER, 0x1);
}
+ if (hvf_nested_virt_enabled()) {
+ /* SME is not implemented with nested virt on the Apple side */
+ FIELD_DP64_IDREG(&host_isar, ID_AA64PFR1, SME, 0);
+ }
+
ahcf->isar = host_isar;
/*
diff --git a/target/arm/hvf_arm.h b/target/arm/hvf_arm.h
index 8029d48caf..59e19f6e84 100644
--- a/target/arm/hvf_arm.h
+++ b/target/arm/hvf_arm.h
@@ -11,6 +11,7 @@
#ifndef QEMU_HVF_ARM_H
#define QEMU_HVF_ARM_H
+#include "system/hvf.h"
#include "target/arm/cpu-qom.h"
/**
@@ -35,6 +36,10 @@ void hvf_arm_set_cpu_features_from_host(ARMCPU *cpu);
if (__builtin_available(macOS 15.2, *)) {
size_t svl_bytes;
hv_return_t result = hv_sme_config_get_max_svl_bytes(&svl_bytes);
+ /* Nested virt not supported together with SME right now. */
+ if (hvf_nested_virt_enabled()) {
+ return false;
+ }
if (result == HV_UNSUPPORTED) {
return false;
}
--
2.50.1 (Apple Git-155)