[SeaBIOS] [qemu PATCH for 2.10] i386: acpi: provide an XSDT instead of an RSDT

Paolo Bonzini pbonzini at redhat.com
Wed Jul 26 15:01:25 CEST 2017


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 at gmail.com>
>> Signed-off-by: Paolo Bonzini <pbonzini at 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



More information about the SeaBIOS mailing list