Signed-off-by: Igor Mammedov <imamm...@redhat.com> --- 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