> On 7. Mar 2026, at 10:06, Mohamed Mediouni <[email protected]> wrote:
> 
> Currently, Apple doesn't support the nested virtualisation + SME combination.
> 
> Signed-off-by: Mohamed Mediouni <[email protected]>
> ---
> target/arm/hvf/hvf.c | 3 +++
> target/arm/hvf_arm.h | 5 +++++
> 2 files changed, 8 insertions(+)
> 
> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
> index 6666d77e18..2cb4c4aa4e 100644
> --- a/target/arm/hvf/hvf.c
> +++ b/target/arm/hvf/hvf.c
> @@ -1189,6 +1189,9 @@ static bool 
> hvf_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf)
> 
>     if (hvf_nested_virt_enabled()) {
>         FIELD_DP64_IDREG(&host_isar, ID_AA64DFR0, PMUVER, 0x1);
> +        /* SME is not implemented with nested virt on the Apple side */
> +        SET_IDREG(&host_isar, ID_AA64PFR1,
> +              GET_IDREG(&host_isar, ID_AA64PFR1) & ~R_ID_AA64PFR1_SME_MASK);

Oops, same note applies that this is equivalent to

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 6b1c3b9792..9cb58ad9ab 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)
> 


Reply via email to