On Tue, Jun 09, 2015 at 02:02:31AM -0400, Paolo Bonzini wrote: > I would just patch OVMF to ignore the RSDT if there is an XSDT. > > Alternatively, can you check for ACPI 2.0 support via _OSI, and load the ACPI > 2.0 bits via LoadTable? Hopefully XP does not BSOD if the invalid (for ACPI > 1.0) opcodes are in a Then block or in a separate method... Then you can use > just an RSDT. > > Paolo
So it's even easier. The following doesn't crash XP: Method(ADDR, 0, Serialized) { /* Region is local to method to avoid crashing ACPI 1.0 guests */ DataTableRegion(IDPT, "UEFI", "BXPC", "VMGENI"); Field (IDPT, AnyAcc, NoLock, Preserve) { Offset (54), VGIA, 64 // address of "etc/acpi/vmgenid" blob } Return(Add(VGIA), 40); } Simply because XP doesn't ever call ADDR. Method must be serialized since attempts to create two regions or fields with the same name would crash OSPM. -- MST