----- Original Message -----
From: "Michael S. Tsirkin" mst@redhat.com To: "Paolo Bonzini" pbonzini@redhat.com Cc: seabios@seabios.org, "Kevin O'Connor" kevin@koconnor.net, qemu-devel@nongnu.org, lersek@redhat.com, lists@philjordan.eu, imammedo@redhat.com, phil@philjordan.eu, programmingkidx@gmail.com, kraxel@redhat.com Sent: Wednesday, July 26, 2017 10:05:03 PM Subject: Re: [seabios PATCH 1/2] seabios: build RSDT from XSDT
On Wed, Jul 26, 2017 at 11:42:34AM +0200, Paolo Bonzini wrote:
Old operating systems would like to have a rev1 (ACPI 1.0) FADT, but new operating systems would like to have rev3 (ACPI 2.0).
Since old operating systems do not know about XSDTs, the solution is to point the RSDT to a rev1 FADT and the XSDT to a rev3 FADT.
But, edk2 is not able to handle QEMU providing two FADTs and barfs when it sees the second; edk2 subscribes to the view that the platform code (meaning not only OVMF, but transitively QEMU's ACPI table builder) should not handle such hacks; it's common edk2 code that should handle FADT rev1 vs. rev3 and RSDT vs. XSDT.
What exactly does it do wrt RSDT?
It ignores the one produced by QEMU and builds it from scratch. Same for RSDP and XSDT.
Paolo