From: Igor Mammedov Date: Tue, 3 Mar 2026 09:25:13 +0000 (+0100) Subject: x86: q35: add 'wdat' property X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d30189cce17038ecaeaaacbfee9ab2c1a07c80fa;p=thirdparty%2Fqemu.git x86: q35: add 'wdat' property Used for enabling WDAT based watchdog for builtin iTCO watchdog. Usage: -M q35,wdat={on|off} By default it is disabled. Signed-off-by: Igor Mammedov Reviewed-by: Zhao Liu Reviewed-by: Ani Sinha Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Message-Id: <20260303092532.2410177-3-imammedo@redhat.com> --- diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index d8fed698c7..6c1e4eff5f 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -331,6 +331,18 @@ static void pc_q35_init(MachineState *machine) } } +static bool pc_q35_machine_get_wdat(Object *o, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(o); + return pcms->wdat_enabled; +} + +static void pc_q35_machine_set_wdat(Object *o, bool value, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(o); + pcms->wdat_enabled = value; +} + #define DEFINE_Q35_MACHINE(major, minor) \ DEFINE_PC_VER_MACHINE(pc_q35, "pc-q35", pc_q35_init, false, NULL, major, minor); @@ -343,6 +355,7 @@ static void pc_q35_init(MachineState *machine) static void pc_q35_machine_options(MachineClass *m) { PCMachineClass *pcmc = PC_MACHINE_CLASS(m); + ObjectClass *oc = OBJECT_CLASS(m); pcmc->pci_root_uid = 0; pcmc->default_cpu_version = 1; @@ -361,6 +374,11 @@ static void pc_q35_machine_options(MachineClass *m) machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE); machine_class_allow_dynamic_sysbus_dev(m, TYPE_UEFI_VARS_X64); + object_class_property_add_bool(oc, "wdat", + pc_q35_machine_get_wdat, pc_q35_machine_set_wdat); + object_class_property_set_description(oc, "wdat", + "Enable WDAT watchdog support. Default: off"); + compat_props_add(m->compat_props, pc_q35_compat_defaults, pc_q35_compat_defaults_len); } diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 85a74363b5..d4b6d3ed57 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -45,6 +45,7 @@ typedef struct PCMachineState { const char *south_bridge; bool acpi_build_enabled; + bool wdat_enabled; bool smbus_enabled; bool sata_enabled; bool hpet_enabled;