hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support.
commit77af8a2b95b79699de650965d5228772743efe84
authorPhil Dennis-Jordan <phil@philjordan.eu>
Wed, 15 Mar 2017 06:20:26 +0000 (15 19:20 +1300)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 3 May 2017 10:29:40 +0000 (3 12:29 +0200)
tree99f42e47728226f4743aa91b234451343d63cebc
parente619b14746e5d8c0e53061661fd0e1da01fd4d60
hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support.

This updates the FADT generated for x86/64 machine types from Revision 1 to 3. (Based on ACPI standard 2.0 instead of 1.0) The intention is to expose the reset register information to guest operating systems which require it, specifically OS X/macOS. Revision 1 FADTs do not contain the fields relating to the reset register.

The new layout and contents remains backwards-compatible with operating systems which only support ACPI 1.0, as the existing fields are not modified by this change, as the 64-bit and 32-bit variants are allowed to co-exist according to the ACPI 2.0 standard. No regressions became apparent in tests with a range of Windows (XP-10) and Linux versions.

The BIOS tables test suite's FADT checksum test has also been updated to reflect the new FADT layout and content.

Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Message-Id: <1489558827-28971-2-git-send-email-phil@philjordan.eu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/i386/acpi-build.c
include/hw/acpi/acpi-defs.h
tests/acpi-utils.h
tests/bios-tables-test.c