From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49063) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrY4k-0008TP-Ry for qemu-devel@nongnu.org; Fri, 13 Dec 2013 14:07:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VrY4d-0001sU-6u for qemu-devel@nongnu.org; Fri, 13 Dec 2013 14:07:02 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45035) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrY4c-0001qh-V6 for qemu-devel@nongnu.org; Fri, 13 Dec 2013 14:06:55 -0500 From: Igor Mammedov Date: Fri, 13 Dec 2013 17:22:15 +0100 Message-Id: <1386951736-929-11-git-send-email-imammedo@redhat.com> In-Reply-To: <1386951736-929-1-git-send-email-imammedo@redhat.com> References: <1386951736-929-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 10/11] ACPI: set CPU hotplug io base dynamically List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, mst@redhat.com, hutao@cn.fujitsu.com, jjherne@us.ibm.com, brogers@suse.com, kraxel@redhat.com, aliguori@amazon.com, kaneshige.kenji@jp.fujitsu.com, chen.fan.fnst@cn.fujitsu.com, pbonzini@redhat.com, lersek@redhat.com Signed-off-by: Igor Mammedov --- hw/i386/acpi-build.c | 6 ++++++ hw/i386/ssdt-misc.dsl | 1 + 2 files changed, 7 insertions(+) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index befc39f..bfd34d7 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -68,6 +68,7 @@ typedef struct AcpiPmInfo { uint32_t gpe0_blk; uint32_t gpe0_blk_len; uint32_t io_base; + uint16_t io_cpu_base; } AcpiPmInfo; typedef struct AcpiMiscInfo { @@ -169,6 +170,9 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) NULL); pm->gpe0_blk_len = object_property_get_int(obj, ACPI_PM_PROP_GPE0_BLK_LEN, NULL); + pm->io_cpu_base = object_property_get_int(obj, + ACPI_CPU_HOTPLUG_IO_BASE_PROP, + NULL); } static void acpi_get_hotplug_info(AcpiMiscInfo *misc) @@ -712,6 +716,8 @@ build_ssdt(GArray *table_data, GArray *linker, *(uint16_t *)(ssdt_ptr + *ssdt_isa_pest) = cpu_to_le16(misc->pvpanic_port); + *(uint16_t *)(ssdt_ptr + *ssdt_cpugpe_port) = + cpu_to_le16(pm->io_cpu_base); { GArray *sb_scope = build_alloc_array(); diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl index ec8893c..bb75b99 100644 --- a/hw/i386/ssdt-misc.dsl +++ b/hw/i386/ssdt-misc.dsl @@ -123,6 +123,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1) Device(CPHD) { Name(_HID, EISAID("PNP0C08")) Name(CPPL, 32) // cpu-gpe length + ACPI_EXTRACT_NAME_WORD_CONST ssdt_cpugpe_port Name(CPHP, 0xaf00) OperationRegion(PRST, SystemIO, CPHP, CPPL) -- 1.8.3.1