From: Aastha Rawat <aastharawat@linux.microsoft.com>
Enable the build of the MSHV accelerator for arm64 in the Meson build
system. Introduce initial files and stub implementations to support MSHV
for the ARM target.
Signed-off-by: Aastha Rawat <aastharawat@linux.microsoft.com>
---
meson.build | 7 +++---
target/arm/meson.build | 1 +
target/arm/mshv/meson.build | 7 ++++++
target/arm/mshv/mshv-all.c | 54 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index ed82247111..bf12fda40f 100644
--- a/meson.build
+++ b/meson.build
@@ -303,7 +303,8 @@ if cpu == 'aarch64'
accelerator_targets += {
'CONFIG_HVF': ['aarch64-softmmu'],
'CONFIG_NITRO': ['aarch64-softmmu'],
- 'CONFIG_WHPX': ['aarch64-softmmu']
+ 'CONFIG_WHPX': ['aarch64-softmmu'],
+ 'CONFIG_MSHV': ['aarch64-softmmu'],
}
elif cpu == 'x86_64'
accelerator_targets += {
@@ -855,8 +856,8 @@ if get_option('kvm').allowed() and host_os == 'linux'
endif
if get_option('mshv').allowed() and host_os == 'linux'
- if get_option('mshv').enabled() and host_machine.cpu() != 'x86_64'
- error('mshv accelerator requires x64_64 host')
+ if get_option('mshv').enabled() and not (host_machine.cpu() in [ 'x86_64', 'aarch64' ])
+ error('The mshv accelerator requires an x86_64 or aarch64 host')
endif
accelerators += 'CONFIG_MSHV'
endif
diff --git a/target/arm/meson.build b/target/arm/meson.build
index 6e0e504a40..8aa8cac137 100644
--- a/target/arm/meson.build
+++ b/target/arm/meson.build
@@ -59,6 +59,7 @@ arm_common_system_ss.add(files(
subdir('hvf')
subdir('whpx')
+subdir('mshv')
if 'CONFIG_TCG' in config_all_accel
subdir('tcg')
diff --git a/target/arm/mshv/meson.build b/target/arm/mshv/meson.build
new file mode 100644
index 0000000000..169643691e
--- /dev/null
+++ b/target/arm/mshv/meson.build
@@ -0,0 +1,7 @@
+arm_mshv_ss = ss.source_set()
+
+arm_mshv_ss.add(files(
+ 'mshv-all.c',
+))
+
+arm_system_ss.add_all(when: 'CONFIG_MSHV', if_true: arm_mshv_ss)
diff --git a/target/arm/mshv/mshv-all.c b/target/arm/mshv/mshv-all.c
new file mode 100644
index 0000000000..1c82e2c593
--- /dev/null
+++ b/target/arm/mshv/mshv-all.c
@@ -0,0 +1,54 @@
+/*
+ * QEMU MSHV support
+ *
+ * Copyright Microsoft, Corp. 2026
+ *
+ * Authors: Aastha Rawat <aastharawat@linux.microsoft.com>
+ * Anirudh Rayabharam <anirudh@anirudhrb.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "system/mshv.h"
+#include "system/mshv_int.h"
+
+int mshv_load_regs(CPUState *cpu)
+{
+ return 0;
+}
+
+int mshv_arch_put_registers(const CPUState *cpu)
+{
+ return 0;
+}
+
+int mshv_run_vcpu(int vm_fd, CPUState *cpu, hv_message *msg, MshvVmExit *exit)
+{
+ return 0;
+}
+
+void mshv_arch_init_vcpu(CPUState *cpu)
+{
+
+}
+
+void mshv_arch_destroy_vcpu(CPUState *cpu)
+{
+
+}
+
+void mshv_init_mmio_emu(void)
+{
+
+}
+
+void mshv_arch_amend_proc_features(
+ union hv_partition_synthetic_processor_features *features)
+{
+
+}
+
+int mshv_arch_post_init_vm(int vm_fd)
+{
+ return 0;
+}
--
2.43.0