qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] target-i386: move generic memory hotplug met


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v2] target-i386: move generic memory hotplug methods to DSDTs
Date: Thu, 20 Nov 2014 07:05:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0


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 <address@hidden>
>> ---
>>         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;address@hidden)^~<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&address@hidden)nOkbZ~FTXLdP;+t%}eYE}f)E65mBhQT)7rk>L3%
>> address@hidden)8G>IQ#`J9?hMG!`G$w2)address@hidden>address@hidden
>> 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(address@hidden<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>address@hidden
>> zT#(8sihAG{q5K1W6c_$LFN7I?l!&#oe*0$M+nt^HrC)3?DV^Y=LJ0jfVmD}OwDoc{
>> z{GIMSK6n(#R^-_oEBqoX;d+i1xgBTK>address@hidden
>> zdD}ZCnsB=Q3V{)Rc0J+K3Sq3KMYb>XRmPrC!r-e7h*6DX&?J-PF)GNEOj#vNhnpx`
>> z5PplBFu5>sL>!Q}ADQ8>address@hidden|NI1Nfi)9-mFWRqRlD26)Ulh{r
>> z&Yh%49NtFBZ1&^sd5q_)Sb%DhR>zs62%f%)smkn=n8x8f+&-noL*dJS&Kaohha{6$
>> address@hidden<z7wrja|LYtg~%GRu=HFijijjKeK$4Y_XgT$Qdfx8r+fR
>> address@hidden|vJU_j?7C>~7kjS*bQQiTiV$!#0>address@hidden&
>> 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(address@hidden<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>
>> address@hidden|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<<*+>address@hidden
>> zv_=?fTG|a|eVwt#lrZ?3Q(`x?jCy3gmI-eZk_B0?nwqtdvm(address@hidden;R
>> zHEZOmWS5D7)Km;dk}4{=`;@5JrGhO7KzTNJ0he?g`^l=1?&wS<Lt?dsl;!f<address@hidden
>> address@hidden)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;&address@hidden(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<address@hidden(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
>> address@hidden;address@hidden;1+3;?*r3h)2`
>>
>> literal 1346
>> zcmZWp-%r#)5Z;address@hidden>xxWwNWwZ|d)NUyD4q1#)address@hidden<l
>> z;Nyh{-%fM?hyG=pGwmH9_M!deoBd{Ic4sQ39o9z)p?<w-HDsl}AuI_TC4?ZxZ?QhQ
>> zNi<<dRRHS`AV(address@hidden)9ECjqFRHSZ
>> zV}wBju%4p_gB6zxo6km+tSe!;address@hidden;7vVGm
>> ziWZFy^8-VKnm(&!Xp#gyad)f}lOFk*>#-?)GO$I64iUz^STDQ{L`ahs+M2QgS(;$%
>> zHJ${a^niRvid}P?+|OVR;address@hidden(7au5=r86j!U8Plx$K?gnoNJIh`8!Z3{`sCNx2
>> z;address@hidden&R+6q|3js{wY#(5e!sO#G;aF=9zE375ImrH!r1KP%<$M|address@hidden
>> zpaRP4v3ztmhnf){)V&J48u0QEd4R-*szis=X;8AvxFZ$it}kgsxo54C=<r4+mJUdo
>> z&N{rLRnb>+Tv|address@hidden<{;zwdF>as498}%uP8yJhuinKpNu#%88b=Rsb&u*#
>> zcmNl5NuT^^kyM%Qr1>OlYPdSq%~=kIKR(=RxK`uA(qgH`jFZQN6h`o<E<b1e>=|+c
>> zvwuKNP{<}BMK6P8fQ<address@hidden@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!>address@hidden|d-=-y8nC}-vpHkcmNzW48#06mEID;+2
>> zf$gjq)Dq4Lnk~KTL(g67<address@hidden&address@hidden<R_F%w{=B4rS
>> YoS;O9e^J$jQ9`gV1ho{53Cj=3Um|f`5C8xG
>>
> 
> Ping?

Ping??

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]