From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2KAL-0004SW-MH for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:06:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z2KAF-0006ry-7t for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:06:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39236) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2KAE-0006qz-SN for qemu-devel@nongnu.org; Tue, 09 Jun 2015 10:06:03 -0400 Date: Tue, 9 Jun 2015 16:05:59 +0200 From: "Michael S. Tsirkin" Message-ID: <20150609160429-mutt-send-email-mst@redhat.com> 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> <5576F1E0.9050504@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5576F1E0.9050504@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 0/4] acpi: xsdt support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek Cc: ghammer@redhat.com, Paolo Bonzini , imammedo@redhat.com, qemu-devel@nongnu.org, shannon.zhao@linaro.org On Tue, Jun 09, 2015 at 04:02:08PM +0200, Laszlo Ersek wrote: > 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 Mind you, I still think it's worth it to support XSDT eventually, but the immediate need to do this in 2.4 timeframe is gone. -- MST