From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: imammedo@redhat.com, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2] target-i386: move generic memory hotplug methods to DSDTs
Date: Thu, 20 Nov 2014 07:05:17 +0100 [thread overview]
Message-ID: <546D849D.1070500@redhat.com> (raw)
In-Reply-To: <546243C3.4020101@redhat.com>
On 11/11/2014 18:13, Paolo Bonzini wrote:
> On 15/10/2014 09:45, 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.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> v1->v2: do not define the same Device twice (Igor)
>>
>> 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 | 165 +------
>> hw/i386/ssdt-misc.hex.generated | 834 ++----------------------------------
>> tests/acpi-test-data/pc/DSDT | Bin 2807 -> 3592 bytes
>> tests/acpi-test-data/pc/SSDT | Bin 3065 -> 2279 bytes
>> tests/acpi-test-data/q35/DSDT | Bin 7397 -> 8182 bytes
>> tests/acpi-test-data/q35/SSDT | Bin 1346 -> 560 bytes
>> 12 files changed, 1789 insertions(+), 992 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 <http://www.gnu.org/licenses/>.
>> + */
>> +
>> + 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..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,167 +119,4 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
>> }
>> }
>> }
>> -
>> - External(MEMORY_SLOT_NOTIFY_METHOD, MethodObj)
>> - Scope(\_SB.PCI0) {
>> - Device(MEMORY_HOTPLUG_DEVICE) {
>> - 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..cbcf61d 100644
>> --- a/hw/i386/ssdt-misc.hex.generated
>> +++ b/hw/i386/ssdt-misc.hex.generated
>> @@ -2,13 +2,13 @@ static unsigned char acpi_pci64_length[] = {
>> 0x6f
>> };
>> static unsigned char acpi_s4_pkg[] = {
>> -0x8f
>> +0x99
>> };
>> -static unsigned short ssdt_mctrl_nr_slots[] = {
>> -0x1aa
>> +static unsigned char ssdt_mctrl_nr_slots[] = {
>> +0x7d
>> };
>> static unsigned char acpi_s3_name[] = {
>> -0x7c
>> +0x86
>> };
>> static unsigned char acpi_pci32_start[] = {
>> 0x2f
>> @@ -21,12 +21,12 @@ static unsigned char ssdp_misc_aml[] = {
>> 0x53,
>> 0x44,
>> 0x54,
>> -0x7e,
>> -0x4,
>> +0x6c,
>> +0x1,
>> 0x0,
>> 0x0,
>> 0x1,
>> -0x8b,
>> +0x3,
>> 0x42,
>> 0x58,
>> 0x50,
>> @@ -49,12 +49,12 @@ static unsigned char ssdp_misc_aml[] = {
>> 0x4e,
>> 0x54,
>> 0x4c,
>> -0x15,
>> -0x11,
>> -0x13,
>> +0x28,
>> +0x8,
>> +0x14,
>> 0x20,
>> 0x10,
>> -0x42,
>> +0x4c,
>> 0x5,
>> 0x5c,
>> 0x0,
>> @@ -136,6 +136,16 @@ static unsigned char ssdp_misc_aml[] = {
>> 0x0,
>> 0x0,
>> 0x0,
>> +0x8,
>> +0x4d,
>> +0x44,
>> +0x4e,
>> +0x52,
>> +0xc,
>> +0x78,
>> +0x56,
>> +0x34,
>> +0x12,
>> 0x10,
>> 0x29,
>> 0x5c,
>> @@ -370,809 +380,13 @@ static unsigned char ssdp_misc_aml[] = {
>> 0x49,
>> 0x4f,
>> 0x4d,
>> -0x58,
>> -0x10,
>> -0x4b,
>> -0x31,
>> -0x5c,
>> -0x2e,
>> -0x5f,
>> -0x53,
>> -0x42,
>> -0x5f,
>> -0x50,
>> -0x43,
>> -0x49,
>> -0x30,
>> -0x5b,
>> -0x82,
>> -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,
>> -0x4e,
>> -0x52,
>> -0xc,
>> -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
>> +0x58
>> };
>> static unsigned char ssdt_isa_pest[] = {
>> -0xd0
>> +0xda
>> };
>> static unsigned char acpi_s4_name[] = {
>> -0x88
>> +0x92
>> };
>> static unsigned char acpi_pci64_start[] = {
>> 0x4d
>> diff --git a/tests/acpi-test-data/pc/DSDT b/tests/acpi-test-data/pc/DSDT
>> index d37ec34454e6f3db5e91b777f94e03be67a5f583..ee9cc6781cea3a9515b9a176eea3459f8e4d8655 100644
>> GIT binary patch
>> delta 814
>> zcmZ8fO>fgc5ZzTP;cjS9h#MkQsYZMX1TsyPb5lFuz;3W?Qx*BJmfDDdKv}u%Atw_q
>> zpkA#WxJ4*`fIq`u;f9%6$0h1o8ohlp@9mCv{%m~TWNzq2Mx79P^ozAww)^~<4ELn(
>> z4D9%;V++rB4e1Tsb${sFJ-bT``4)C!^m&|4tmE;i`gHc*N=GN-v-EIuLgFu;F9KR4
>> zjI|Bv1Yu*Hv6qxE_}UX<Hf0#~$ZRba?l2&8GH11Tx`mn*5$y5Ig6Kiu90MT#Kw9y%
>> zsa?q~6a7$9F&Kt4rh+@KNj%*s)nOkbZ~FTXLdP;+t%}eYE}f)E65mBhQT)7rk>L3%
>> z5ulnib8RT17w@u!Ds7)8G>IQ#`J9?hMG!`G$w2)$CR$p{^@S9>QB@~quPvbOwd$~{
>> z)(}B=r_o{d`4d8}uaGP2Z-FZ-ii+2J2orLSN>+zU@)F(z=#}sR?^o<&fD5)IdIyWz
>> z+W<X<e-%XtI2r-q9tsd}G)a-p5TO`%I*;<1d4U`jq`0S=Y-p06UNVR{=J?FLmLpA|
>> z>CSdzi*0_pwcIo|i+y5`y1&jgV_+{c=n8Nh#Il4fxRF$NH0Bk$V^ZNoF|~LklwHE^
>> pj(HCTN6@Qppm3c2ztkfbm1uRjsD-bpKHwawk2pxBXMTtM{s%^7?%e<Y
>>
>> delta 23
>> ecmeB>`7X-k66_N4or{5iv0)>Z1lMF^-m3sr#Rl;J
>>
>> diff --git a/tests/acpi-test-data/pc/SSDT b/tests/acpi-test-data/pc/SSDT
>> index eb2d8b698ce6a3a910a05244a3b6cf80bf818fb9..558e4c85b031ec081045aec6cc382a680e9c6009 100644
>> GIT binary patch
>> delta 38
>> ucmew<{#=kNIM^lRIR^s+Bi}?WX-1!kYJqGVzAk=2JQIsQY_4aiVg~@)a|=)a
>>
>> delta 833
>> zcmZ8fO>fgc5ZzTP)!np3CZ>%5sYXCSR3Ot-Ig{7{hwcXBHK@pyYzajaRFsw59wH7V
>> zT#(8sihAG{q5K1W6c_$LFN7I?l!&#oe*0$M+nt^HrC)3?DV^Y=LJ0jfVmD}OwDoc{
>> z{GIMSK6n(#R^-_oEBqoX;d+i1xgBTK>v~qxY7i}Y1uN0}*iQ!LVgE!OoxU@Z-f{ml
>> zdD}ZCnsB=Q3V{)Rc0J+K3Sq3KMYb>XRmPrC!r-e7h*6DX&?J-PF)GNEOj#vNhnpx`
>> z5PplBFu5>sL>!Q}ADQ8>nz@oEOtfW0MW-uiNCmg|NI1Nfi)9-mFWRqRlD26)Ulh{r
>> z&Yh%49NtFBZ1&^sd5q_)Sb%DhR>zs62%f%)smkn=n8x8f+&-noL*dJS&Kaohha{6$
>> z#@U4wyHf6sjb=?i-pl1-<z7wrja|LYtg~%GRu=HFijijjKeK$4Y_XgT$Qdfx8r+fR
>> z@G3wzhg-Z|vJU_j?7C>~7kjS*bQQiTiV$!#0>E7q07yAUmjrnPD8@w=NBP7!M-Jl&
>> zu4zW<8A(qr8AKdoeBvyPk%q?b>pS`;yZLovK55Jq^TZqnB!yJ!JB)#Ul*2U;7jPYJ
>> z6e&C!!wTIosPLi~DvE>-m$0#G+=0ds^#2+tY^Q&fx(}@qEQYs=wkRv5-eVuB57<b#
>> K=g%YhY3VN!sP#$!
>>
>> diff --git a/tests/acpi-test-data/q35/DSDT b/tests/acpi-test-data/q35/DSDT
>> index 2d2bc4adaf54666fe7864e7f39203411b7c308f7..ef0c75f4236de3e6f727e21991533f2bf8279dee 100644
>> GIT binary patch
>> delta 793
>> zcmZ8f&1(}u6rZ65w-Z~5S!<L)7U~y*614<+vdM0Aqcd^YS*0?<EJ(15l408(a$4g>
>> z@VfNiEolA$|0u5>d+=a<Z$D~r7KY#Z`2F5{JMZVt$wTHzFFI)xLVy2YJFRs0-d!#G
>> zI&g;_^~voBKkzK=554tZ6m)u>F0u4;u*CSoB$+z<lSA|V=#7(%4<<*+>+u0mAN@dt
>> zv_=?fTG|a|eVwt#lrZ?3Q(`x?jCy3gmI-eZk_B0?nwqtdvm(MiPaU{@xH!iPP_U;R
>> zHEZOmWS5D7)Km;dk}4{=`;@5JrGhO7KzTNJ0he?g`^l=1?&wS<Lt?dsl;!f<_2U@p
>> zn^*vA-pF!65j}eODyAlvPhuLYo0z_!_8k$*h@KHJU-wB)tz~&bhFz$#W4qTBF!x$j
>> ztje`S_KRLg37kL6;vmLTn#(EqBEs%A+kk#}0WSjd3wVPMD(`K8rFT>G_R8F=0DXf$
>> z5J?C)3IX6g5)h;uRTA_gKr$M69O-lW7=0K|(5AVwo;&H`sRt3q7@vFRGISG5gb(i5
>> z+pP8ZG9l+ziph#us~KUw6tfrueGO9q+yHV3H=!eKur!7Zs$<Y#qZlgR18JwQyKP^C
>> o9TD{Z-)(Sn{yoYq*otUXZ8^mTRF7ib;>wtJxHE-j)^C0P3owxI%m4rY
>>
>> delta 23
>> ecmexn|J0JpCD<k8sSE=Hqv%F1OPR?b@{0gro(Eh2
>>
>> diff --git a/tests/acpi-test-data/q35/SSDT b/tests/acpi-test-data/q35/SSDT
>> index 778b79bf428b5d7602b7b80c9434e38c79718bb2..4e45510181c4038505ae1815b76799a2cd0e8808 100644
>> GIT binary patch
>> delta 37
>> tcmX@awSk2zIM^k`fQf;D@!~`-X-1!kYJqGVzAk=2JQIsQOs;1+3;?*r3h)2`
>>
>> literal 1346
>> zcmZWp-%r#)5Z;vo%iaNZM@3>xxWwNWwZ|d)NUyD4q1#)#1u-SrCWd$z4b1@$ya^<l
>> z;Nyh{-%fM?hyG=pGwmH9_M!deoBd{Ic4sQ39o9z)p?<w-HDsl}AuI_TC4?ZxZ?QhQ
>> zNi<<dRRHS`AV(GY{oiMrsIDspuBud}Jk!9NK0r8E3GW}G_y{5@SySb)9ECjqFRHSZ
>> zV}wBju%4p_gB6zxo6km+tSe!;hAT}K9dRa{^-xm{*PeLe@HN9Qs*r^v!#p9;7vVGm
>> ziWZFy^8-VKnm(&!Xp#gyad)f}lOFk*>#-?)GO$I64iUz^STDQ{L`ahs+M2QgS(;$%
>> zHJ${a^niRvid}P?+|OVR;08o@eK(7au5=r86j!U8Plx$K?gnoNJIh`8!Z3{`sCNx2
>> z;ai_~+6R@^&R+6q|3js{wY#(5e!sO#G;aF=9zE375ImrH!r1KP%<$M|4~RaUR@fcy
>> zpaRP4v3ztmhnf){)V&J48u0QEd4R-*szis=X;8AvxFZ$it}kgsxo54C=<r4+mJUdo
>> z&N{rLRnb>+Tv|T4*eD@!bO$B<{;zwdF>as498}%uP8yJhuinKpNu#%88b=Rsb&u*#
>> zcmNl5NuT^^kyM%Qr1>OlYPdSq%~=kIKR(=RxK`uA(qgH`jFZQN6h`o<E<b1e>=|+c
>> zvwuKNP{<}BMK6P8fQ<~^_naX+4{*TFaC2j@_7=cKf@g{%1Re$g;5ATyz{4PIq!FMN
>> zjns|mu6~Lf`rByJlq{tr-8*LxdFb=H_Vo_Z&=f&!p)|*Cf4h0PWGofS#1hl;Y72}(
>> zcm*{9oCNIv&Okyc!JW~aU~qIMm?ydhH-xftxU{I>g{I;3>IEd&N*CAk5ZWZn{kLcv
>> zTPXR6J(Ptk9v29XMs!>swS-}07o@qi!rw|d-=-y8nC}-vpHkcmNzW48#06mEID;+2
>> zf$gjq)Dq4Lnk~KTL(g67<~uD$zGC!k%@R$&Y{L{6S916}iH@eEVJJ<R_F%w{=B4rS
>> YoS;O9e^J$jQ9`gV1ho{53Cj=3Um|f`5C8xG
>>
>
> Ping?
Ping??
Paolo
next prev parent reply other threads:[~2014-11-20 6:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-15 7:45 [Qemu-devel] [PATCH v2] target-i386: move generic memory hotplug methods to DSDTs Paolo Bonzini
2014-10-15 13:19 ` Igor Mammedov
2014-10-15 13:34 ` Michael S. Tsirkin
2014-10-16 7:43 ` Paolo Bonzini
2014-11-11 17:13 ` Paolo Bonzini
2014-11-20 6:05 ` Paolo Bonzini [this message]
2014-11-20 6:57 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=546D849D.1070500@redhat.com \
--to=pbonzini@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.