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 <[email protected]> --- meson.build | 8 +++---- target/arm/meson.build | 1 + target/arm/mshv/meson.build | 7 ++++++ target/arm/mshv/mshv-all.c | 56 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index eb07491819..ff54d48e6e 100644 --- a/meson.build +++ b/meson.build @@ -305,7 +305,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 += { @@ -871,10 +872,9 @@ 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 host_machine.cpu() in [ 'x86_64', 'aarch64' ] + accelerators += 'CONFIG_MSHV' endif - accelerators += 'CONFIG_MSHV' endif if get_option('whpx').allowed() and host_os == 'windows' diff --git a/target/arm/meson.build b/target/arm/meson.build index 4723f9f170..74d21544b9 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -58,6 +58,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..32adf26838 --- /dev/null +++ b/target/arm/mshv/mshv-all.c @@ -0,0 +1,56 @@ +/* + * QEMU MSHV support + * + * Copyright Microsoft, Corp. 2026 + * + * Authors: Aastha Rawat <[email protected]> + * Anirudh Rayabharam <[email protected]> + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/arm/virt.h" +#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) +{ + +} + +int mshv_arch_accel_init(AccelState *as, MachineState *ms, int mshv_fd) +{ + return 0; +} + +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.45.4
