From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbT7H-0002CE-Cs for qemu-devel@nongnu.org; Tue, 07 Oct 2014 07:39:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XbT7C-0004a5-AU for qemu-devel@nongnu.org; Tue, 07 Oct 2014 07:39:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:10381) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbT7B-0004Zo-Sa for qemu-devel@nongnu.org; Tue, 07 Oct 2014 07:39:38 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s97BdZNM003468 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Tue, 7 Oct 2014 07:39:36 -0400 Date: Tue, 7 Oct 2014 13:39:32 +0200 From: Igor Mammedov Message-ID: <20141007133932.7ebcdad4@nial.usersys.redhat.com> In-Reply-To: <1412607113-13512-1-git-send-email-pbonzini@redhat.com> References: <1412607113-13512-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH] target-i386: move generic memory hotplug methods to DSDTs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, mst@redhat.com On Mon, 6 Oct 2014 16:51:53 +0200 Paolo Bonzini wrote: > This makes it simpler to keep the SSDT byte-for-byte identical for a > given machine type, which is a goal we want to have for 2.2 and newer > types. > > This is not tested well and is still missing update of "make check" > data, but I wanted to throw this out for an early look. > > Signed-off-by: Paolo Bonzini > --- > hw/i386/acpi-dsdt-mem-hotplug.dsl | 176 ++++++++ > hw/i386/acpi-dsdt.dsl | 3 +- > hw/i386/acpi-dsdt.hex.generated | 795 ++++++++++++++++++++++++++++++++++- > hw/i386/q35-acpi-dsdt.dsl | 3 +- > hw/i386/q35-acpi-dsdt.hex.generated | 797 +++++++++++++++++++++++++++++++++++- > hw/i386/ssdt-mem.hex.generated | 8 +- > hw/i386/ssdt-misc.dsl | 156 ------- > hw/i386/ssdt-misc.hex.generated | 787 +---------------------------------- > 8 files changed, 1773 insertions(+), 952 deletions(-) > create mode 100644 hw/i386/acpi-dsdt-mem-hotplug.dsl > > diff --git a/hw/i386/acpi-dsdt-mem-hotplug.dsl b/hw/i386/acpi-dsdt-mem-hotplug.dsl > new file mode 100644 > index 0000000..2a36c47 > --- /dev/null > +++ b/hw/i386/acpi-dsdt-mem-hotplug.dsl > @@ -0,0 +1,176 @@ > +/* > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + > + * You should have received a copy of the GNU General Public License along > + * with this program; if not, see . > + */ > + > + External(MEMORY_SLOT_NOTIFY_METHOD, MethodObj) > + > + Scope(\_SB.PCI0) { > + Device(MEMORY_HOTPLUG_DEVICE) { > + Name(_HID, "PNP0A06") > + Name(_UID, "Memory hotplug resources") > + External(MEMORY_SLOTS_NUMBER, IntObj) > + > + /* Memory hotplug IO registers */ > + OperationRegion(MEMORY_HOTPLUG_IO_REGION, SystemIO, > + ACPI_MEMORY_HOTPLUG_BASE, > + ACPI_MEMORY_HOTPLUG_IO_LEN) > + > + Name(_CRS, ResourceTemplate() { > + IO(Decode16, ACPI_MEMORY_HOTPLUG_BASE, ACPI_MEMORY_HOTPLUG_BASE, > + 0, ACPI_MEMORY_HOTPLUG_IO_LEN, IO) > + }) > + > + Method(_STA, 0) { > + If (LEqual(MEMORY_SLOTS_NUMBER, Zero)) { > + Return(0x0) > + } > + /* present, functioning, decoding, not shown in UI */ > + Return(0xB) > + } > + > + Field(MEMORY_HOTPLUG_IO_REGION, DWordAcc, NoLock, Preserve) { > + MEMORY_SLOT_ADDR_LOW, 32, // read only > + MEMORY_SLOT_ADDR_HIGH, 32, // read only > + MEMORY_SLOT_SIZE_LOW, 32, // read only > + MEMORY_SLOT_SIZE_HIGH, 32, // read only > + MEMORY_SLOT_PROXIMITY, 32, // read only > + } > + Field(MEMORY_HOTPLUG_IO_REGION, ByteAcc, NoLock, Preserve) { > + Offset(20), > + MEMORY_SLOT_ENABLED, 1, // 1 if enabled, read only > + MEMORY_SLOT_INSERT_EVENT, 1, // (read) 1 if has a insert event. (write) 1 to clear event > + } > + > + Mutex (MEMORY_SLOT_LOCK, 0) > + Field (MEMORY_HOTPLUG_IO_REGION, DWordAcc, NoLock, Preserve) { > + MEMORY_SLOT_SLECTOR, 32, // DIMM selector, write only > + MEMORY_SLOT_OST_EVENT, 32, // _OST event code, write only > + MEMORY_SLOT_OST_STATUS, 32, // _OST status code, write only > + } > + > + Method(MEMORY_SLOT_SCAN_METHOD, 0) { > + If (LEqual(MEMORY_SLOTS_NUMBER, Zero)) { > + Return(Zero) > + } > + > + Store(Zero, Local0) // Mem devs iterrator > + Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > + while (LLess(Local0, MEMORY_SLOTS_NUMBER)) { > + Store(Local0, MEMORY_SLOT_SLECTOR) // select Local0 DIMM > + If (LEqual(MEMORY_SLOT_INSERT_EVENT, One)) { // Memory device needs check > + MEMORY_SLOT_NOTIFY_METHOD(Local0, 1) > + Store(1, MEMORY_SLOT_INSERT_EVENT) > + } > + // TODO: handle memory eject request > + Add(Local0, One, Local0) // goto next DIMM > + } > + Release(MEMORY_SLOT_LOCK) > + Return(One) > + } > + > + Method(MEMORY_SLOT_STATUS_METHOD, 1) { > + Store(Zero, Local0) > + > + Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > + Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > + > + If (LEqual(MEMORY_SLOT_ENABLED, One)) { > + Store(0xF, Local0) > + } > + > + Release(MEMORY_SLOT_LOCK) > + Return(Local0) > + } > + > + Method(MEMORY_SLOT_CRS_METHOD, 1, Serialized) { > + Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > + Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > + > + Name(MR64, ResourceTemplate() { > + QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, > + Cacheable, ReadWrite, > + 0x0000000000000000, // Address Space Granularity > + 0x0000000000000000, // Address Range Minimum > + 0xFFFFFFFFFFFFFFFE, // Address Range Maximum > + 0x0000000000000000, // Address Translation Offset > + 0xFFFFFFFFFFFFFFFF, // Address Length > + ,, MW64, AddressRangeMemory, TypeStatic) > + }) > + > + CreateDWordField(MR64, 14, MINL) > + CreateDWordField(MR64, 18, MINH) > + CreateDWordField(MR64, 38, LENL) > + CreateDWordField(MR64, 42, LENH) > + CreateDWordField(MR64, 22, MAXL) > + CreateDWordField(MR64, 26, MAXH) > + > + Store(MEMORY_SLOT_ADDR_HIGH, MINH) > + Store(MEMORY_SLOT_ADDR_LOW, MINL) > + Store(MEMORY_SLOT_SIZE_HIGH, LENH) > + Store(MEMORY_SLOT_SIZE_LOW, LENL) > + > + // 64-bit math: MAX = MIN + LEN - 1 > + Add(MINL, LENL, MAXL) > + Add(MINH, LENH, MAXH) > + If (LLess(MAXL, MINL)) { > + Add(MAXH, One, MAXH) > + } > + If (LLess(MAXL, One)) { > + Subtract(MAXH, One, MAXH) > + } > + Subtract(MAXL, One, MAXL) > + > + If (LEqual(MAXH, Zero)){ > + Name(MR32, ResourceTemplate() { > + DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, > + Cacheable, ReadWrite, > + 0x00000000, // Address Space Granularity > + 0x00000000, // Address Range Minimum > + 0xFFFFFFFE, // Address Range Maximum > + 0x00000000, // Address Translation Offset > + 0xFFFFFFFF, // Address Length > + ,, MW32, AddressRangeMemory, TypeStatic) > + }) > + CreateDWordField(MR32, MW32._MIN, MIN) > + CreateDWordField(MR32, MW32._MAX, MAX) > + CreateDWordField(MR32, MW32._LEN, LEN) > + Store(MINL, MIN) > + Store(MAXL, MAX) > + Store(LENL, LEN) > + > + Release(MEMORY_SLOT_LOCK) > + Return(MR32) > + } > + > + Release(MEMORY_SLOT_LOCK) > + Return(MR64) > + } > + > + Method(MEMORY_SLOT_PROXIMITY_METHOD, 1) { > + Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > + Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > + Store(MEMORY_SLOT_PROXIMITY, Local0) > + Release(MEMORY_SLOT_LOCK) > + Return(Local0) > + } > + > + Method(MEMORY_SLOT_OST_METHOD, 4) { > + Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > + Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > + Store(Arg1, MEMORY_SLOT_OST_EVENT) > + Store(Arg2, MEMORY_SLOT_OST_STATUS) > + Release(MEMORY_SLOT_LOCK) > + } > + } // Device() > + } // Scope() > diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl > index 559f4b6..a611e07 100644 > --- a/hw/i386/acpi-dsdt.dsl > +++ b/hw/i386/acpi-dsdt.dsl > @@ -297,13 +297,12 @@ DefinitionBlock ( > #include "hw/acpi/pc-hotplug.h" > #define CPU_STATUS_BASE PIIX4_CPU_HOTPLUG_IO_BASE > #include "acpi-dsdt-cpu-hotplug.dsl" > +#include "acpi-dsdt-mem-hotplug.dsl" > > > /**************************************************************** > * General purpose events > ****************************************************************/ > - External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) > - > Scope(\_GPE) { > Name(_HID, "ACPI0006") > > diff --git a/hw/i386/acpi-dsdt.hex.generated b/hw/i386/acpi-dsdt.hex.generated > index a21bf41..875570e 100644 > --- a/hw/i386/acpi-dsdt.hex.generated > +++ b/hw/i386/acpi-dsdt.hex.generated > @@ -3,12 +3,12 @@ static unsigned char AcpiDsdtAmlCode[] = { > 0x53, > 0x44, > 0x54, > -0xf7, > -0xa, > +0x8, > +0xe, > 0x0, > 0x0, > 0x1, > -0x1f, > +0xfc, > 0x42, > 0x58, > 0x50, > @@ -32,8 +32,8 @@ static unsigned char AcpiDsdtAmlCode[] = { > 0x54, > 0x4c, > 0x28, > -0x5, > -0x10, > +0x8, > +0x14, > 0x20, > 0x10, > 0x49, > @@ -2593,6 +2593,791 @@ static unsigned char AcpiDsdtAmlCode[] = { > 0xa, > 0xb, > 0x10, > +0x40, > +0x31, > +0x2e, > +0x5f, > +0x53, > +0x42, > +0x5f, > +0x50, > +0x43, > +0x49, > +0x30, > +0x5b, > +0x82, > +0x43, > +0x30, > +0x4d, > +0x48, > +0x50, > +0x44, > +0x8, > +0x5f, > +0x48, > +0x49, > +0x44, > +0xd, > +0x50, > +0x4e, > +0x50, > +0x30, > +0x41, > +0x30, > +0x36, > +0x0, > +0x8, > +0x5f, > +0x55, > +0x49, > +0x44, > +0xd, > +0x4d, > +0x65, > +0x6d, > +0x6f, > +0x72, > +0x79, > +0x20, > +0x68, > +0x6f, > +0x74, > +0x70, > +0x6c, > +0x75, > +0x67, > +0x20, > +0x72, > +0x65, > +0x73, > +0x6f, > +0x75, > +0x72, > +0x63, > +0x65, > +0x73, > +0x0, > +0x5b, > +0x80, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x1, > +0xb, > +0x0, > +0xa, > +0xa, > +0x18, > +0x8, > +0x5f, > +0x43, > +0x52, > +0x53, > +0x11, > +0xd, > +0xa, > +0xa, > +0x47, > +0x1, > +0x0, > +0xa, > +0x0, > +0xa, > +0x0, > +0x18, > +0x79, > +0x0, > +0x14, > +0x13, > +0x5f, > +0x53, > +0x54, > +0x41, > +0x0, > +0xa0, > +0x9, > +0x93, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x0, > +0xa4, > +0x0, > +0xa4, > +0xa, > +0xb, > +0x5b, > +0x81, > +0x1f, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x3, > +0x4d, > +0x52, > +0x42, > +0x4c, > +0x20, > +0x4d, > +0x52, > +0x42, > +0x48, > +0x20, > +0x4d, > +0x52, > +0x4c, > +0x4c, > +0x20, > +0x4d, > +0x52, > +0x4c, > +0x48, > +0x20, > +0x4d, > +0x50, > +0x58, > +0x5f, > +0x20, > +0x5b, > +0x81, > +0x13, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x1, > +0x0, > +0x40, > +0xa, > +0x4d, > +0x45, > +0x53, > +0x5f, > +0x1, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x1, > +0x5b, > +0x1, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0x0, > +0x5b, > +0x81, > +0x15, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x3, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x20, > +0x4d, > +0x4f, > +0x45, > +0x56, > +0x20, > +0x4d, > +0x4f, > +0x53, > +0x43, > +0x20, > +0x14, > +0x4a, > +0x4, > +0x4d, > +0x53, > +0x43, > +0x4e, > +0x0, > +0xa0, > +0x9, > +0x93, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x0, > +0xa4, > +0x0, > +0x70, > +0x0, > +0x60, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0xa2, > +0x25, > +0x95, > +0x60, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x70, > +0x60, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0xa0, > +0x13, > +0x93, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x1, > +0x4d, > +0x54, > +0x46, > +0x59, > +0x60, > +0x1, > +0x70, > +0x1, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x72, > +0x60, > +0x1, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x1, > +0x14, > +0x2d, > +0x4d, > +0x52, > +0x53, > +0x54, > +0x1, > +0x70, > +0x0, > +0x60, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0xa0, > +0xb, > +0x93, > +0x4d, > +0x45, > +0x53, > +0x5f, > +0x1, > +0x70, > +0xa, > +0xf, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x60, > +0x14, > +0x41, > +0x18, > +0x4d, > +0x43, > +0x52, > +0x53, > +0x9, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x8, > +0x4d, > +0x52, > +0x36, > +0x34, > +0x11, > +0x33, > +0xa, > +0x30, > +0x8a, > +0x2b, > +0x0, > +0x0, > +0xc, > +0x3, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xfe, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0x79, > +0x0, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0xe, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x12, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x26, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x2a, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x16, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x1a, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x42, > +0x48, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x42, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x70, > +0x4d, > +0x52, > +0x4c, > +0x48, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x4c, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x72, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x72, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x4d, > +0x41, > +0x58, > +0x48, > +0xa0, > +0x14, > +0x95, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x72, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x48, > +0xa0, > +0x11, > +0x95, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x1, > +0x74, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x74, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0xa0, > +0x44, > +0x7, > +0x93, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x0, > +0x8, > +0x4d, > +0x52, > +0x33, > +0x32, > +0x11, > +0x1f, > +0xa, > +0x1c, > +0x87, > +0x17, > +0x0, > +0x0, > +0xc, > +0x3, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xfe, > +0xff, > +0xff, > +0xff, > +0x0, > +0x0, > +0x0, > +0x0, > +0xff, > +0xff, > +0xff, > +0xff, > +0x79, > +0x0, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0xa, > +0x4d, > +0x49, > +0x4e, > +0x5f, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0xe, > +0x4d, > +0x41, > +0x58, > +0x5f, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0x16, > +0x4c, > +0x45, > +0x4e, > +0x5f, > +0x70, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x5f, > +0x70, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x4d, > +0x41, > +0x58, > +0x5f, > +0x70, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x5f, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x4d, > +0x52, > +0x33, > +0x32, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x4d, > +0x52, > +0x36, > +0x34, > +0x14, > +0x24, > +0x4d, > +0x50, > +0x58, > +0x4d, > +0x1, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x70, > +0x4d, > +0x50, > +0x58, > +0x5f, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x60, > +0x14, > +0x28, > +0x4d, > +0x4f, > +0x53, > +0x54, > +0x4, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x70, > +0x69, > +0x4d, > +0x4f, > +0x45, > +0x56, > +0x70, > +0x6a, > +0x4d, > +0x4f, > +0x53, > +0x43, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0x10, > 0x45, > 0xd, > 0x5f, > diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl > index 054b035..e1cee5d 100644 > --- a/hw/i386/q35-acpi-dsdt.dsl > +++ b/hw/i386/q35-acpi-dsdt.dsl > @@ -405,13 +405,12 @@ DefinitionBlock ( > #include "hw/acpi/pc-hotplug.h" > #define CPU_STATUS_BASE ICH9_CPU_HOTPLUG_IO_BASE > #include "acpi-dsdt-cpu-hotplug.dsl" > +#include "acpi-dsdt-mem-hotplug.dsl" > > > /**************************************************************** > * General purpose events > ****************************************************************/ > - External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) > - > Scope(\_GPE) { > Name(_HID, "ACPI0006") > > diff --git a/hw/i386/q35-acpi-dsdt.hex.generated b/hw/i386/q35-acpi-dsdt.hex.generated > index c9eb4ac..4807bdf 100644 > --- a/hw/i386/q35-acpi-dsdt.hex.generated > +++ b/hw/i386/q35-acpi-dsdt.hex.generated > @@ -3,12 +3,12 @@ static unsigned char Q35AcpiDsdtAmlCode[] = { > 0x53, > 0x44, > 0x54, > -0xe5, > -0x1c, > +0xf6, > +0x1f, > 0x0, > 0x0, > 0x1, > -0xb7, > +0x91, > 0x42, > 0x58, > 0x50, > @@ -31,9 +31,9 @@ static unsigned char Q35AcpiDsdtAmlCode[] = { > 0x4e, > 0x54, > 0x4c, > -0x15, > -0x11, > -0x13, > +0x28, > +0x8, > +0x14, > 0x20, > 0x10, > 0x49, > @@ -7234,6 +7234,791 @@ static unsigned char Q35AcpiDsdtAmlCode[] = { > 0xa, > 0xb, > 0x10, > +0x40, > +0x31, > +0x2e, > +0x5f, > +0x53, > +0x42, > +0x5f, > +0x50, > +0x43, > +0x49, > +0x30, > +0x5b, > +0x82, > +0x43, > +0x30, > +0x4d, > +0x48, > +0x50, > +0x44, > +0x8, > +0x5f, > +0x48, > +0x49, > +0x44, > +0xd, > +0x50, > +0x4e, > +0x50, > +0x30, > +0x41, > +0x30, > +0x36, > +0x0, > +0x8, > +0x5f, > +0x55, > +0x49, > +0x44, > +0xd, > +0x4d, > +0x65, > +0x6d, > +0x6f, > +0x72, > +0x79, > +0x20, > +0x68, > +0x6f, > +0x74, > +0x70, > +0x6c, > +0x75, > +0x67, > +0x20, > +0x72, > +0x65, > +0x73, > +0x6f, > +0x75, > +0x72, > +0x63, > +0x65, > +0x73, > +0x0, > +0x5b, > +0x80, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x1, > +0xb, > +0x0, > +0xa, > +0xa, > +0x18, > +0x8, > +0x5f, > +0x43, > +0x52, > +0x53, > +0x11, > +0xd, > +0xa, > +0xa, > +0x47, > +0x1, > +0x0, > +0xa, > +0x0, > +0xa, > +0x0, > +0x18, > +0x79, > +0x0, > +0x14, > +0x13, > +0x5f, > +0x53, > +0x54, > +0x41, > +0x0, > +0xa0, > +0x9, > +0x93, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x0, > +0xa4, > +0x0, > +0xa4, > +0xa, > +0xb, > +0x5b, > +0x81, > +0x1f, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x3, > +0x4d, > +0x52, > +0x42, > +0x4c, > +0x20, > +0x4d, > +0x52, > +0x42, > +0x48, > +0x20, > +0x4d, > +0x52, > +0x4c, > +0x4c, > +0x20, > +0x4d, > +0x52, > +0x4c, > +0x48, > +0x20, > +0x4d, > +0x50, > +0x58, > +0x5f, > +0x20, > +0x5b, > +0x81, > +0x13, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x1, > +0x0, > +0x40, > +0xa, > +0x4d, > +0x45, > +0x53, > +0x5f, > +0x1, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x1, > +0x5b, > +0x1, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0x0, > +0x5b, > +0x81, > +0x15, > +0x48, > +0x50, > +0x4d, > +0x52, > +0x3, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x20, > +0x4d, > +0x4f, > +0x45, > +0x56, > +0x20, > +0x4d, > +0x4f, > +0x53, > +0x43, > +0x20, > +0x14, > +0x4a, > +0x4, > +0x4d, > +0x53, > +0x43, > +0x4e, > +0x0, > +0xa0, > +0x9, > +0x93, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x0, > +0xa4, > +0x0, > +0x70, > +0x0, > +0x60, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0xa2, > +0x25, > +0x95, > +0x60, > +0x4d, > +0x44, > +0x4e, > +0x52, > +0x70, > +0x60, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0xa0, > +0x13, > +0x93, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x1, > +0x4d, > +0x54, > +0x46, > +0x59, > +0x60, > +0x1, > +0x70, > +0x1, > +0x4d, > +0x49, > +0x4e, > +0x53, > +0x72, > +0x60, > +0x1, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x1, > +0x14, > +0x2d, > +0x4d, > +0x52, > +0x53, > +0x54, > +0x1, > +0x70, > +0x0, > +0x60, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0xa0, > +0xb, > +0x93, > +0x4d, > +0x45, > +0x53, > +0x5f, > +0x1, > +0x70, > +0xa, > +0xf, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x60, > +0x14, > +0x41, > +0x18, > +0x4d, > +0x43, > +0x52, > +0x53, > +0x9, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x8, > +0x4d, > +0x52, > +0x36, > +0x34, > +0x11, > +0x33, > +0xa, > +0x30, > +0x8a, > +0x2b, > +0x0, > +0x0, > +0xc, > +0x3, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xfe, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0xff, > +0x79, > +0x0, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0xe, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x12, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x26, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x2a, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x16, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x8a, > +0x4d, > +0x52, > +0x36, > +0x34, > +0xa, > +0x1a, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x42, > +0x48, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x42, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x70, > +0x4d, > +0x52, > +0x4c, > +0x48, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x70, > +0x4d, > +0x52, > +0x4c, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x72, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x72, > +0x4d, > +0x49, > +0x4e, > +0x48, > +0x4c, > +0x45, > +0x4e, > +0x48, > +0x4d, > +0x41, > +0x58, > +0x48, > +0xa0, > +0x14, > +0x95, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x72, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x48, > +0xa0, > +0x11, > +0x95, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x1, > +0x74, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x74, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x1, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0xa0, > +0x44, > +0x7, > +0x93, > +0x4d, > +0x41, > +0x58, > +0x48, > +0x0, > +0x8, > +0x4d, > +0x52, > +0x33, > +0x32, > +0x11, > +0x1f, > +0xa, > +0x1c, > +0x87, > +0x17, > +0x0, > +0x0, > +0xc, > +0x3, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0x0, > +0xfe, > +0xff, > +0xff, > +0xff, > +0x0, > +0x0, > +0x0, > +0x0, > +0xff, > +0xff, > +0xff, > +0xff, > +0x79, > +0x0, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0xa, > +0x4d, > +0x49, > +0x4e, > +0x5f, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0xe, > +0x4d, > +0x41, > +0x58, > +0x5f, > +0x8a, > +0x4d, > +0x52, > +0x33, > +0x32, > +0xa, > +0x16, > +0x4c, > +0x45, > +0x4e, > +0x5f, > +0x70, > +0x4d, > +0x49, > +0x4e, > +0x4c, > +0x4d, > +0x49, > +0x4e, > +0x5f, > +0x70, > +0x4d, > +0x41, > +0x58, > +0x4c, > +0x4d, > +0x41, > +0x58, > +0x5f, > +0x70, > +0x4c, > +0x45, > +0x4e, > +0x4c, > +0x4c, > +0x45, > +0x4e, > +0x5f, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x4d, > +0x52, > +0x33, > +0x32, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x4d, > +0x52, > +0x36, > +0x34, > +0x14, > +0x24, > +0x4d, > +0x50, > +0x58, > +0x4d, > +0x1, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x70, > +0x4d, > +0x50, > +0x58, > +0x5f, > +0x60, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xa4, > +0x60, > +0x14, > +0x28, > +0x4d, > +0x4f, > +0x53, > +0x54, > +0x4, > +0x5b, > +0x23, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0xff, > +0xff, > +0x70, > +0x99, > +0x68, > +0x0, > +0x4d, > +0x53, > +0x45, > +0x4c, > +0x70, > +0x69, > +0x4d, > +0x4f, > +0x45, > +0x56, > +0x70, > +0x6a, > +0x4d, > +0x4f, > +0x53, > +0x43, > +0x5b, > +0x27, > +0x4d, > +0x4c, > +0x43, > +0x4b, > +0x10, > 0x42, > 0xa, > 0x5f, > diff --git a/hw/i386/ssdt-mem.hex.generated b/hw/i386/ssdt-mem.hex.generated > index 00bd34d..b3bfbbd 100644 > --- a/hw/i386/ssdt-mem.hex.generated > +++ b/hw/i386/ssdt-mem.hex.generated > @@ -11,7 +11,7 @@ static unsigned char ssdm_mem_aml[] = { > 0x0, > 0x0, > 0x2, > -0x71, > +0x66, > 0x42, > 0x58, > 0x50, > @@ -34,9 +34,9 @@ static unsigned char ssdm_mem_aml[] = { > 0x4e, > 0x54, > 0x4c, > -0x15, > -0x11, > -0x13, > +0x28, > +0x8, > +0x14, > 0x20, > 0x10, > 0x42, > diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl > index 0fd4480..2d50f0a 100644 > --- a/hw/i386/ssdt-misc.dsl > +++ b/hw/i386/ssdt-misc.dsl > @@ -118,166 +118,10 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1) > } > } > > - External(MEMORY_SLOT_NOTIFY_METHOD, MethodObj) > Scope(\_SB.PCI0) { > Device(MEMORY_HOTPLUG_DEVICE) { keeping it as device here triggers duplicate device BSOD in XP it should be a scope or a just var at / scope which a few bytes shorter following patch on top of this fixes issue: diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl index 2d50f0a..1e3baae 100644 --- a/hw/i386/ssdt-misc.dsl +++ b/hw/i386/ssdt-misc.dsl @@ -36,6 +36,8 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1) Name(P1E, Buffer() { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) ACPI_EXTRACT_NAME_BUFFER8 acpi_pci64_length Name(P1L, Buffer() { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) + ACPI_EXTRACT_NAME_DWORD_CONST ssdt_mctrl_nr_slots + Name(MEMORY_SLOTS_NUMBER, 0x12345678) } @@ -117,11 +119,4 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1) } } } - - Scope(\_SB.PCI0) { - Device(MEMORY_HOTPLUG_DEVICE) { - ACPI_EXTRACT_NAME_DWORD_CONST ssdt_mctrl_nr_slots - Name(MEMORY_SLOTS_NUMBER, 0x12345678) - } // Device() - } // Scope() } > - Name(_HID, "PNP0A06") > - Name(_UID, "Memory hotplug resources") > - > ACPI_EXTRACT_NAME_DWORD_CONST ssdt_mctrl_nr_slots > Name(MEMORY_SLOTS_NUMBER, 0x12345678) > - > - /* Memory hotplug IO registers */ > - OperationRegion(MEMORY_HOTPLUG_IO_REGION, SystemIO, > - ACPI_MEMORY_HOTPLUG_BASE, > - ACPI_MEMORY_HOTPLUG_IO_LEN) > - > - Name(_CRS, ResourceTemplate() { > - IO(Decode16, ACPI_MEMORY_HOTPLUG_BASE, ACPI_MEMORY_HOTPLUG_BASE, > - 0, ACPI_MEMORY_HOTPLUG_IO_LEN, IO) > - }) > - > - Method(_STA, 0) { > - If (LEqual(MEMORY_SLOTS_NUMBER, Zero)) { > - Return(0x0) > - } > - /* present, functioning, decoding, not shown in UI */ > - Return(0xB) > - } > - > - Field(MEMORY_HOTPLUG_IO_REGION, DWordAcc, NoLock, Preserve) { > - MEMORY_SLOT_ADDR_LOW, 32, // read only > - MEMORY_SLOT_ADDR_HIGH, 32, // read only > - MEMORY_SLOT_SIZE_LOW, 32, // read only > - MEMORY_SLOT_SIZE_HIGH, 32, // read only > - MEMORY_SLOT_PROXIMITY, 32, // read only > - } > - Field(MEMORY_HOTPLUG_IO_REGION, ByteAcc, NoLock, Preserve) { > - Offset(20), > - MEMORY_SLOT_ENABLED, 1, // 1 if enabled, read only > - MEMORY_SLOT_INSERT_EVENT, 1, // (read) 1 if has a insert event. (write) 1 to clear event > - } > - > - Mutex (MEMORY_SLOT_LOCK, 0) > - Field (MEMORY_HOTPLUG_IO_REGION, DWordAcc, NoLock, Preserve) { > - MEMORY_SLOT_SLECTOR, 32, // DIMM selector, write only > - MEMORY_SLOT_OST_EVENT, 32, // _OST event code, write only > - MEMORY_SLOT_OST_STATUS, 32, // _OST status code, write only > - } > - > - Method(MEMORY_SLOT_SCAN_METHOD, 0) { > - If (LEqual(MEMORY_SLOTS_NUMBER, Zero)) { > - Return(Zero) > - } > - > - Store(Zero, Local0) // Mem devs iterrator > - Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > - while (LLess(Local0, MEMORY_SLOTS_NUMBER)) { > - Store(Local0, MEMORY_SLOT_SLECTOR) // select Local0 DIMM > - If (LEqual(MEMORY_SLOT_INSERT_EVENT, One)) { // Memory device needs check > - MEMORY_SLOT_NOTIFY_METHOD(Local0, 1) > - Store(1, MEMORY_SLOT_INSERT_EVENT) > - } > - // TODO: handle memory eject request > - Add(Local0, One, Local0) // goto next DIMM > - } > - Release(MEMORY_SLOT_LOCK) > - Return(One) > - } > - > - Method(MEMORY_SLOT_STATUS_METHOD, 1) { > - Store(Zero, Local0) > - > - Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > - Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > - > - If (LEqual(MEMORY_SLOT_ENABLED, One)) { > - Store(0xF, Local0) > - } > - > - Release(MEMORY_SLOT_LOCK) > - Return(Local0) > - } > - > - Method(MEMORY_SLOT_CRS_METHOD, 1, Serialized) { > - Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > - Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > - > - Name(MR64, ResourceTemplate() { > - QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, > - Cacheable, ReadWrite, > - 0x0000000000000000, // Address Space Granularity > - 0x0000000000000000, // Address Range Minimum > - 0xFFFFFFFFFFFFFFFE, // Address Range Maximum > - 0x0000000000000000, // Address Translation Offset > - 0xFFFFFFFFFFFFFFFF, // Address Length > - ,, MW64, AddressRangeMemory, TypeStatic) > - }) > - > - CreateDWordField(MR64, 14, MINL) > - CreateDWordField(MR64, 18, MINH) > - CreateDWordField(MR64, 38, LENL) > - CreateDWordField(MR64, 42, LENH) > - CreateDWordField(MR64, 22, MAXL) > - CreateDWordField(MR64, 26, MAXH) > - > - Store(MEMORY_SLOT_ADDR_HIGH, MINH) > - Store(MEMORY_SLOT_ADDR_LOW, MINL) > - Store(MEMORY_SLOT_SIZE_HIGH, LENH) > - Store(MEMORY_SLOT_SIZE_LOW, LENL) > - > - // 64-bit math: MAX = MIN + LEN - 1 > - Add(MINL, LENL, MAXL) > - Add(MINH, LENH, MAXH) > - If (LLess(MAXL, MINL)) { > - Add(MAXH, One, MAXH) > - } > - If (LLess(MAXL, One)) { > - Subtract(MAXH, One, MAXH) > - } > - Subtract(MAXL, One, MAXL) > - > - If (LEqual(MAXH, Zero)){ > - Name(MR32, ResourceTemplate() { > - DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, > - Cacheable, ReadWrite, > - 0x00000000, // Address Space Granularity > - 0x00000000, // Address Range Minimum > - 0xFFFFFFFE, // Address Range Maximum > - 0x00000000, // Address Translation Offset > - 0xFFFFFFFF, // Address Length > - ,, MW32, AddressRangeMemory, TypeStatic) > - }) > - CreateDWordField(MR32, MW32._MIN, MIN) > - CreateDWordField(MR32, MW32._MAX, MAX) > - CreateDWordField(MR32, MW32._LEN, LEN) > - Store(MINL, MIN) > - Store(MAXL, MAX) > - Store(LENL, LEN) > - > - Release(MEMORY_SLOT_LOCK) > - Return(MR32) > - } > - > - Release(MEMORY_SLOT_LOCK) > - Return(MR64) > - } > - > - Method(MEMORY_SLOT_PROXIMITY_METHOD, 1) { > - Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > - Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > - Store(MEMORY_SLOT_PROXIMITY, Local0) > - Release(MEMORY_SLOT_LOCK) > - Return(Local0) > - } > - > - Method(MEMORY_SLOT_OST_METHOD, 4) { > - Acquire(MEMORY_SLOT_LOCK, 0xFFFF) > - Store(ToInteger(Arg0), MEMORY_SLOT_SLECTOR) // select DIMM > - Store(Arg1, MEMORY_SLOT_OST_EVENT) > - Store(Arg2, MEMORY_SLOT_OST_STATUS) > - Release(MEMORY_SLOT_LOCK) > - } > } // Device() > } // Scope() > } > diff --git a/hw/i386/ssdt-misc.hex.generated b/hw/i386/ssdt-misc.hex.generated > index ba4268a..62f45bb 100644 > --- a/hw/i386/ssdt-misc.hex.generated > +++ b/hw/i386/ssdt-misc.hex.generated > @@ -5,7 +5,7 @@ static unsigned char acpi_s4_pkg[] = { > 0x8f > }; > static unsigned short ssdt_mctrl_nr_slots[] = { > -0x1aa > +0x17b > }; > static unsigned char acpi_s3_name[] = { > 0x7c > @@ -21,12 +21,12 @@ static unsigned char ssdp_misc_aml[] = { > 0x53, > 0x44, > 0x54, > -0x7e, > -0x4, > +0x7f, > +0x1, > 0x0, > 0x0, > 0x1, > -0x8b, > +0xd0, > 0x42, > 0x58, > 0x50, > @@ -49,9 +49,9 @@ static unsigned char ssdp_misc_aml[] = { > 0x4e, > 0x54, > 0x4c, > -0x15, > -0x11, > -0x13, > +0x28, > +0x8, > +0x14, > 0x20, > 0x10, > 0x42, > @@ -372,8 +372,7 @@ static unsigned char ssdp_misc_aml[] = { > 0x4d, > 0x58, > 0x10, > -0x4b, > -0x31, > +0x1c, > 0x5c, > 0x2e, > 0x5f, > @@ -386,57 +385,11 @@ static unsigned char ssdp_misc_aml[] = { > 0x30, > 0x5b, > 0x82, > +0xf, > 0x4d, > -0x30, > -0x4d, > -0x48, > -0x50, > -0x44, > -0x8, > -0x5f, > 0x48, > -0x49, > -0x44, > -0xd, > 0x50, > -0x4e, > -0x50, > -0x30, > -0x41, > -0x30, > -0x36, > -0x0, > -0x8, > -0x5f, > -0x55, > -0x49, > 0x44, > -0xd, > -0x4d, > -0x65, > -0x6d, > -0x6f, > -0x72, > -0x79, > -0x20, > -0x68, > -0x6f, > -0x74, > -0x70, > -0x6c, > -0x75, > -0x67, > -0x20, > -0x72, > -0x65, > -0x73, > -0x6f, > -0x75, > -0x72, > -0x63, > -0x65, > -0x73, > -0x0, > 0x8, > 0x4d, > 0x44, > @@ -446,727 +399,7 @@ static unsigned char ssdp_misc_aml[] = { > 0x78, > 0x56, > 0x34, > -0x12, > -0x5b, > -0x80, > -0x48, > -0x50, > -0x4d, > -0x52, > -0x1, > -0xb, > -0x0, > -0xa, > -0xa, > -0x18, > -0x8, > -0x5f, > -0x43, > -0x52, > -0x53, > -0x11, > -0xd, > -0xa, > -0xa, > -0x47, > -0x1, > -0x0, > -0xa, > -0x0, > -0xa, > -0x0, > -0x18, > -0x79, > -0x0, > -0x14, > -0x13, > -0x5f, > -0x53, > -0x54, > -0x41, > -0x0, > -0xa0, > -0x9, > -0x93, > -0x4d, > -0x44, > -0x4e, > -0x52, > -0x0, > -0xa4, > -0x0, > -0xa4, > -0xa, > -0xb, > -0x5b, > -0x81, > -0x1f, > -0x48, > -0x50, > -0x4d, > -0x52, > -0x3, > -0x4d, > -0x52, > -0x42, > -0x4c, > -0x20, > -0x4d, > -0x52, > -0x42, > -0x48, > -0x20, > -0x4d, > -0x52, > -0x4c, > -0x4c, > -0x20, > -0x4d, > -0x52, > -0x4c, > -0x48, > -0x20, > -0x4d, > -0x50, > -0x58, > -0x5f, > -0x20, > -0x5b, > -0x81, > -0x13, > -0x48, > -0x50, > -0x4d, > -0x52, > -0x1, > -0x0, > -0x40, > -0xa, > -0x4d, > -0x45, > -0x53, > -0x5f, > -0x1, > -0x4d, > -0x49, > -0x4e, > -0x53, > -0x1, > -0x5b, > -0x1, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0x0, > -0x5b, > -0x81, > -0x15, > -0x48, > -0x50, > -0x4d, > -0x52, > -0x3, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0x20, > -0x4d, > -0x4f, > -0x45, > -0x56, > -0x20, > -0x4d, > -0x4f, > -0x53, > -0x43, > -0x20, > -0x14, > -0x4a, > -0x4, > -0x4d, > -0x53, > -0x43, > -0x4e, > -0x0, > -0xa0, > -0x9, > -0x93, > -0x4d, > -0x44, > -0x4e, > -0x52, > -0x0, > -0xa4, > -0x0, > -0x70, > -0x0, > -0x60, > -0x5b, > -0x23, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xff, > -0xff, > -0xa2, > -0x25, > -0x95, > -0x60, > -0x4d, > -0x44, > -0x4e, > -0x52, > -0x70, > -0x60, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0xa0, > -0x13, > -0x93, > -0x4d, > -0x49, > -0x4e, > -0x53, > -0x1, > -0x4d, > -0x54, > -0x46, > -0x59, > -0x60, > -0x1, > -0x70, > -0x1, > -0x4d, > -0x49, > -0x4e, > -0x53, > -0x72, > -0x60, > -0x1, > -0x60, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xa4, > -0x1, > -0x14, > -0x2d, > -0x4d, > -0x52, > -0x53, > -0x54, > -0x1, > -0x70, > -0x0, > -0x60, > -0x5b, > -0x23, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xff, > -0xff, > -0x70, > -0x99, > -0x68, > -0x0, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0xa0, > -0xb, > -0x93, > -0x4d, > -0x45, > -0x53, > -0x5f, > -0x1, > -0x70, > -0xa, > -0xf, > -0x60, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xa4, > -0x60, > -0x14, > -0x41, > -0x18, > -0x4d, > -0x43, > -0x52, > -0x53, > -0x9, > -0x5b, > -0x23, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xff, > -0xff, > -0x70, > -0x99, > -0x68, > -0x0, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0x8, > -0x4d, > -0x52, > -0x36, > -0x34, > -0x11, > -0x33, > -0xa, > -0x30, > -0x8a, > -0x2b, > -0x0, > -0x0, > -0xc, > -0x3, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0xfe, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0xff, > -0x79, > -0x0, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0xe, > -0x4d, > -0x49, > -0x4e, > -0x4c, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0x12, > -0x4d, > -0x49, > -0x4e, > -0x48, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0x26, > -0x4c, > -0x45, > -0x4e, > -0x4c, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0x2a, > -0x4c, > -0x45, > -0x4e, > -0x48, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0x16, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x8a, > -0x4d, > -0x52, > -0x36, > -0x34, > -0xa, > -0x1a, > -0x4d, > -0x41, > -0x58, > -0x48, > -0x70, > -0x4d, > -0x52, > -0x42, > -0x48, > -0x4d, > -0x49, > -0x4e, > -0x48, > -0x70, > -0x4d, > -0x52, > -0x42, > -0x4c, > -0x4d, > -0x49, > -0x4e, > -0x4c, > -0x70, > -0x4d, > -0x52, > -0x4c, > -0x48, > -0x4c, > -0x45, > -0x4e, > -0x48, > -0x70, > -0x4d, > -0x52, > -0x4c, > -0x4c, > -0x4c, > -0x45, > -0x4e, > -0x4c, > -0x72, > -0x4d, > -0x49, > -0x4e, > -0x4c, > -0x4c, > -0x45, > -0x4e, > -0x4c, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x72, > -0x4d, > -0x49, > -0x4e, > -0x48, > -0x4c, > -0x45, > -0x4e, > -0x48, > -0x4d, > -0x41, > -0x58, > -0x48, > -0xa0, > -0x14, > -0x95, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x4d, > -0x49, > -0x4e, > -0x4c, > -0x72, > -0x4d, > -0x41, > -0x58, > -0x48, > -0x1, > -0x4d, > -0x41, > -0x58, > -0x48, > -0xa0, > -0x11, > -0x95, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x1, > -0x74, > -0x4d, > -0x41, > -0x58, > -0x48, > -0x1, > -0x4d, > -0x41, > -0x58, > -0x48, > -0x74, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x1, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0xa0, > -0x44, > -0x7, > -0x93, > -0x4d, > -0x41, > -0x58, > -0x48, > -0x0, > -0x8, > -0x4d, > -0x52, > -0x33, > -0x32, > -0x11, > -0x1f, > -0xa, > -0x1c, > -0x87, > -0x17, > -0x0, > -0x0, > -0xc, > -0x3, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0x0, > -0xfe, > -0xff, > -0xff, > -0xff, > -0x0, > -0x0, > -0x0, > -0x0, > -0xff, > -0xff, > -0xff, > -0xff, > -0x79, > -0x0, > -0x8a, > -0x4d, > -0x52, > -0x33, > -0x32, > -0xa, > -0xa, > -0x4d, > -0x49, > -0x4e, > -0x5f, > -0x8a, > -0x4d, > -0x52, > -0x33, > -0x32, > -0xa, > -0xe, > -0x4d, > -0x41, > -0x58, > -0x5f, > -0x8a, > -0x4d, > -0x52, > -0x33, > -0x32, > -0xa, > -0x16, > -0x4c, > -0x45, > -0x4e, > -0x5f, > -0x70, > -0x4d, > -0x49, > -0x4e, > -0x4c, > -0x4d, > -0x49, > -0x4e, > -0x5f, > -0x70, > -0x4d, > -0x41, > -0x58, > -0x4c, > -0x4d, > -0x41, > -0x58, > -0x5f, > -0x70, > -0x4c, > -0x45, > -0x4e, > -0x4c, > -0x4c, > -0x45, > -0x4e, > -0x5f, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xa4, > -0x4d, > -0x52, > -0x33, > -0x32, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xa4, > -0x4d, > -0x52, > -0x36, > -0x34, > -0x14, > -0x24, > -0x4d, > -0x50, > -0x58, > -0x4d, > -0x1, > -0x5b, > -0x23, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xff, > -0xff, > -0x70, > -0x99, > -0x68, > -0x0, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0x70, > -0x4d, > -0x50, > -0x58, > -0x5f, > -0x60, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xa4, > -0x60, > -0x14, > -0x28, > -0x4d, > -0x4f, > -0x53, > -0x54, > -0x4, > -0x5b, > -0x23, > -0x4d, > -0x4c, > -0x43, > -0x4b, > -0xff, > -0xff, > -0x70, > -0x99, > -0x68, > -0x0, > -0x4d, > -0x53, > -0x45, > -0x4c, > -0x70, > -0x69, > -0x4d, > -0x4f, > -0x45, > -0x56, > -0x70, > -0x6a, > -0x4d, > -0x4f, > -0x53, > -0x43, > -0x5b, > -0x27, > -0x4d, > -0x4c, > -0x43, > -0x4b > +0x12 > }; > static unsigned char ssdt_isa_pest[] = { > 0xd0