From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58112) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2K6e-0001AP-GL for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:02:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z2K6Y-00036D-B5 for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:02:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2K6Y-000362-57 for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:02:14 -0400 Message-ID: <5576F1E0.9050504@redhat.com> Date: Tue, 09 Jun 2015 16:02:08 +0200 From: Laszlo Ersek MIME-Version: 1.0 References: <1433787255-4372-1-git-send-email-mst@redhat.com> <55762E63.7010606@redhat.com> <20150609072936-mutt-send-email-mst@redhat.com> <964733846.17699064.1433829751766.JavaMail.zimbra@zmail13.collab.prod.int.phx2.redhat.com> <20150609112550-mutt-send-email-mst@redhat.com> In-Reply-To: <20150609112550-mutt-send-email-mst@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 0/4] acpi: xsdt support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" , Paolo Bonzini Cc: ghammer@redhat.com, imammedo@redhat.com, qemu-devel@nongnu.org, shannon.zhao@linaro.org On 06/09/15 11:49, Michael S. Tsirkin wrote: > 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. That sounds like a huge relief to me, so thank you for researching it. Laszlo