diff --git a/src/vmspawn/vmspawn-util.h b/src/vmspawn/vmspawn-util.h index a8a69a9e50..f851fd48e0 100644 --- a/src/vmspawn/vmspawn-util.h +++ b/src/vmspawn/vmspawn-util.h @@ -27,6 +27,12 @@ # define ARCHITECTURE_SUPPORTS_SMM 0 #endif +#if defined(__x86_64__) || defined(__i386__) +# define ARCHITECTURE_SUPPORTS_HPET 1 +#else +# define ARCHITECTURE_SUPPORTS_HPET 0 +#endif + #if defined(__x86_64__) || defined(__i386__) # define QEMU_MACHINE_TYPE "q35" #elif defined(__arm__) || defined(__aarch64__) || defined(__riscv) || defined(__loongarch64) diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c index a3dd1432b2..2771b26349 100644 --- a/src/vmspawn/vmspawn.c +++ b/src/vmspawn/vmspawn.c @@ -1578,10 +1578,11 @@ static int run_virtual_machine(int kvm_device_fd, int vhost_device_fd) { "falling back to OVMF firmware blobs without Secure Boot support."); shm = arg_directory || arg_runtime_mounts.n_mounts != 0 ? ",memory-backend=mem" : ""; + const char *hpet = ARCHITECTURE_SUPPORTS_HPET ? ",hpet=off" : ""; if (ARCHITECTURE_SUPPORTS_SMM) - machine = strjoin("type=" QEMU_MACHINE_TYPE ",smm=", on_off(ovmf_config->supports_sb), shm); + machine = strjoin("type=" QEMU_MACHINE_TYPE ",smm=", on_off(ovmf_config->supports_sb), shm, hpet); else - machine = strjoin("type=" QEMU_MACHINE_TYPE, shm); + machine = strjoin("type=" QEMU_MACHINE_TYPE, shm, hpet); if (!machine) return log_oom();