summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAmit Shah2015-01-12 13:00:14 +0100
committerMichael S. Tsirkin2015-01-26 19:25:52 +0100
commit6ac0d8d44c0966225b200cc25f8c5270f1191ec0 (patch)
tree0a753c8dcb4abf0ea3bdb6c532496f742cc22452 /include
parentMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150116'... (diff)
downloadqemu-6ac0d8d44c0966225b200cc25f8c5270f1191ec0.tar.gz
qemu-6ac0d8d44c0966225b200cc25f8c5270f1191ec0.tar.xz
qemu-6ac0d8d44c0966225b200cc25f8c5270f1191ec0.zip
ich9: add disable_s3, disable_s4, s4_val properties
PIIX4 has disable_s3 and disable_s4 properties to enable or disable PM functions. Add such properties to the ICH9 chipset as well for the Q35 machine type. S3 / S4 are not guaranteed to always work (needs work in the guest as well as QEMU for things to work properly), and disabling advertising of these features ensures guests don't go into zombie state if something isn't working right. The defaults are kept the same as in PIIX4: both S3 and S4 are enabled by default. These can be disabled via the cmdline: ... -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 Note: some guests can fake hibernation by writing a hibernate image and doing a shutdown instead of S4 if S4 isn't available; there's nothing we can do guests to stop doing this, and this patch can't affect that functionality. Signed-off-by: Amit Shah <amit.shah@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/hw/acpi/ich9.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
index fe975e6624..12d7a7af5f 100644
--- a/include/hw/acpi/ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -49,6 +49,10 @@ typedef struct ICH9LPCPMRegs {
AcpiCpuHotplug gpe_cpu;
MemHotplugState acpi_memory_hotplug;
+
+ uint8_t disable_s3;
+ uint8_t disable_s4;
+ uint8_t s4_val;
} ICH9LPCPMRegs;
void ich9_pm_init(PCIDevice *lpc_pci, ICH9LPCPMRegs *pm,