whpx: arm: enable more enlightenments
Unconditionally enable some more enlightenments for whpx. In particular, linux uses AccessVpRegs without checking availability and panics if it's not there, so it's important to expose it. We also had a duplicate line where we set AccessHypercallRegs = 1 twice; remove the duplicate. Microsoft’s VMM exposes SyncContext on arm64 and FastHypercallOutput regardless of architecture unconditionally, so add those two to match that configuration. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Message-id: 20260314221529.47841-4-mohamed@unpredictable.fr Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Mohamed Mediouni committed
Mar 23, 2026 at 09:51 UTC
f3364a1b04ae6018ee2216446a2b0683ab21e07c
1 file changed
+4
-2
target/arm/whpx/whpx-all.c
+4
-2
@@ -832,6 +832,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
832
UINT32 whpx_cap_size;
833
WHV_PARTITION_PROPERTY prop;
834
WHV_CAPABILITY_FEATURES features;
835
+ WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features;
836
MachineClass *mc = MACHINE_GET_CLASS(ms);
837
int pa_range = 0;
838
@@ -942,7 +943,6 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
943
}
944
945
/* Enable synthetic processor features */
945
- WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features;
946
memset(&synthetic_features, 0, sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS));
947
synthetic_features.BanksCount = 1;
948
@@ -953,13 +953,15 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
953
synthetic_features.Bank0.AccessPartitionReferenceTsc = 1;
954
synthetic_features.Bank0.AccessHypercallRegs = 1;
955
synthetic_features.Bank0.AccessVpIndex = 1;
956
- synthetic_features.Bank0.AccessHypercallRegs = 1;
956
synthetic_features.Bank0.TbFlushHypercalls = 1;
957
synthetic_features.Bank0.AccessSynicRegs = 1;
958
synthetic_features.Bank0.AccessSyntheticTimerRegs = 1;
959
synthetic_features.Bank0.AccessIntrCtrlRegs = 1;
960
synthetic_features.Bank0.SyntheticClusterIpi = 1;
961
synthetic_features.Bank0.DirectSyntheticTimers = 1;
962
+ synthetic_features.Bank0.FastHypercallOutput = 1;
963
+ synthetic_features.Bank0.AccessVpRegs = 1;
964
+ synthetic_features.Bank0.SyncContext = 1;
965
966
/*
967
* On ARM64, have enlightenments off by default