On Wed, Jul 26, 2017 at 03:01:25PM +0200, Paolo Bonzini wrote:
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.
Call it compatibility then :)
The point is that for PC we really should not keep piling up hacks, compatibility is more important. Let's face it - we have addressed all their needs for a lot of users a while ago. New features are just churn and opportunity for bugs for them.
It seems like a rather clean solution to maintain two machines with more and with less features.
Doing it for PC only would mean switching back from FADT rev3 to rev1, which is worse for guest OS support,
It's only OSX AFAIK and IIRC OSX doesn't run on PC anyway.
and adds yet another little-tested path.
So I think we'll be moving to a cleaner pc/q35 split, sharing less and less code.
Together with the corresponding SeaBIOS patch, this provides the best of both worlds IMO.
Paolo
It's definitely way more code. I'll change my mind if there's a guest that needs the new FADT.