On 26/07/2017 14:52, Michael S. Tsirkin wrote:
On Wed, Jul 26, 2017 at 11:31:36AM +0200, Paolo Bonzini wrote:
The tables that QEMU provides are not ACPI 1.0 compatible since commit 77af8a2b95 ("hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support.", 2017-05-03). This is visible with Windows 2000, which refuses to parse the rev3 FADT and fails to boot.
The recommended solution in this case is to build two FADTs, v1 being pointed to by the RSDT and v3 by the XSDT. However, we leave this task to the firmware. This patch simply switches the RSDT to the XSDT, which is valid for all ACPI 2.0-friendly operating systems and also leaves SeaBIOS the freedom to build an RSDT that points to the compatibility FADT.
When running Windows 2000 with an old BIOS, Windows would simply fall back to a non-ACPI HAL; however, the plan should be to include a BIOS with the new feature in 2.10.
Reported-by: Programmingkid programmingkidx@gmail.com Signed-off-by: Paolo Bonzini pbonzini@redhat.com
I'm not against this but let's do it for q35 only please. PC is a legacy machine type and let's just leave it alone.
I disagree with calling PC legacy when 99.99% of our users (probably underestimated) are using it. Doing it for PC only would mean switching back from FADT rev3 to rev1, which is worse for guest OS support, and adds yet another little-tested path.
Together with the corresponding SeaBIOS patch, this provides the best of both worlds IMO.
Paolo