From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54800) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VjKCi-0006wz-0U for qemu-devel@nongnu.org; Wed, 20 Nov 2013 21:41:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VjKCc-00044V-1I for qemu-devel@nongnu.org; Wed, 20 Nov 2013 21:41:15 -0500 Received: from mx1.redhat.com ([209.132.183.28]:65310) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VjKCb-00044N-O8 for qemu-devel@nongnu.org; Wed, 20 Nov 2013 21:41:09 -0500 From: Igor Mammedov Date: Thu, 21 Nov 2013 03:38:36 +0100 Message-Id: <1385001528-12003-16-git-send-email-imammedo@redhat.com> In-Reply-To: <1385001528-12003-1-git-send-email-imammedo@redhat.com> References: <1385001528-12003-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 15/27] acpi: piix4: add memory-hotplug-io-base property to piix4_pm List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, stefanha@redhat.com, mst@redhat.com, chegu_vinod@hp.com, stefanb@linux.vnet.ibm.com, mjt@tls.msk.ru, mdroth@linux.vnet.ibm.com, armbru@redhat.com, vasilis.liaskovitis@profitbricks.com, quintela@redhat.com, kraxel@redhat.com, aliguori@amazon.com, hutao@cn.fujitsu.com, pbonzini@redhat.com, marcel.a@redhat.com, lcapitulino@redhat.com, afaerber@suse.de Signed-off-by: Igor Mammedov --- hw/acpi/piix4.c | 14 +++++++++++++- include/hw/acpi/acpi.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletions(-) diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index e0d9270..a835981 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -18,6 +18,7 @@ * Contributions after 2012-01-13 are licensed under the terms of the * GNU GPL, version 2 or (at your option) any later version. */ +#include "qapi/visitor.h" #include "hw/hw.h" #include "hw/i386/pc.h" #include "hw/isa/apm.h" @@ -757,6 +758,14 @@ int piix4_mem_hotplug(DeviceState *hotplug_dev, DeviceState *dev, static int piix4_device_hotplug(DeviceState *qdev, DeviceState *dev, HotplugState state); +static void piix4_get_mem_io_base(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PIIX4PMState *s = PIIX4_PM(obj); + + visit_type_uint16(v, &s->gpe_mem.port, name, errp); +} + static void piix4_acpi_system_hot_add_init(MemoryRegion *parent, PCIBus *bus, PIIX4PMState *s) { @@ -789,8 +798,11 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent, s->cpu_added_notifier.notify = piix4_cpu_added_req; qemu_register_cpu_added_notifier(&s->cpu_added_notifier); + s->gpe_mem.port = ACPI_MEMORY_HOTPLUG_BASE; + object_property_add(OBJECT(s), ACPI_MEMORY_HOTPLUG_IO_BASE_PROP, "int", + piix4_get_mem_io_base, NULL, NULL, NULL, NULL); acpi_memory_hotplug_init(OBJECT(s), &s->io_mem, &s->gpe_mem); - memory_region_add_subregion(parent, ACPI_MEMORY_HOTPLUG_BASE, &s->io_mem); + memory_region_add_subregion(parent, s->gpe_mem.port, &s->io_mem); } static void enable_device(PIIX4PMState *s, int slot) diff --git a/include/hw/acpi/acpi.h b/include/hw/acpi/acpi.h index e5717df..95c608f 100644 --- a/include/hw/acpi/acpi.h +++ b/include/hw/acpi/acpi.h @@ -170,6 +170,7 @@ void acpi_update_sci(ACPIREGS *acpi_regs, qemu_irq irq, uint32_t gpe0_sts_mask); #define ACPI_MEMORY_HOTPLUG_IO_LEN 24 #define ACPI_MEMORY_HOTPLUG_BASE 0x0a00 +#define ACPI_MEMORY_HOTPLUG_IO_BASE_PROP "memory-hotplug-io-base" #define ACPI_MEMORY_HOTPLUG_STATUS 8 @@ -182,6 +183,7 @@ typedef struct MemStatus { } MemStatus; typedef struct MemHotplugState { + uint16_t port; uint32_t selector; uint32_t dev_count; MemStatus *devs; -- 1.7.1