From patchwork Sat Dec 28 22:30:51 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Mammedov X-Patchwork-Id: 305629 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E7D532C00C1 for ; Sun, 29 Dec 2013 09:35:18 +1100 (EST) Received: from localhost ([::1]:53511 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vx2TU-0004Ry-O5 for incoming@patchwork.ozlabs.org; Sat, 28 Dec 2013 17:35:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44184) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vx2Pr-00079U-CW for qemu-devel@nongnu.org; Sat, 28 Dec 2013 17:31:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vx2Pm-00073H-B5 for qemu-devel@nongnu.org; Sat, 28 Dec 2013 17:31:31 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40560) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vx2Pm-000731-3f for qemu-devel@nongnu.org; Sat, 28 Dec 2013 17:31:26 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rBSMVJf8010641 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 28 Dec 2013 17:31:19 -0500 Received: from thinkpad.redhat.com (vpn-230-215.phx2.redhat.com [10.3.230.215]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rBSMUrU5007940; Sat, 28 Dec 2013 17:31:17 -0500 From: Igor Mammedov To: qemu-devel@nongnu.org Date: Sat, 28 Dec 2013 23:30:51 +0100 Message-Id: <1388269852-21198-9-git-send-email-imammedo@redhat.com> In-Reply-To: <1388269852-21198-1-git-send-email-imammedo@redhat.com> References: <1388269852-21198-1-git-send-email-imammedo@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: mst@redhat.com, hutao@cn.fujitsu.com, mjt@tls.msk.ru, chen.fan.fnst@cn.fujitsu.com, kraxel@redhat.com, anthony.perard@citrix.com, lersek@redhat.com, afaerber@suse.de Subject: [Qemu-devel] [PATCH 8/9] pc: ACPI: unify source of CPU hotplug IO base/len X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org use C headers defines as source of IO base/len for respective values in ASL code. Signed-off-by: Igor Mammedov --- hw/acpi/ich9.c | 4 +--- hw/acpi/piix4.c | 5 ++--- hw/i386/Makefile.objs | 9 +++++++-- hw/i386/acpi-dsdt-cpu-hotplug.dsl | 7 ++++--- hw/i386/acpi-dsdt.dsl | 3 ++- hw/i386/q35-acpi-dsdt.dsl | 3 ++- include/hw/acpi/cpu_hotplug.h | 6 +++++- include/hw/acpi/ich9.h | 5 +++++ include/hw/acpi/piix4.h | 5 +++++ 9 files changed, 33 insertions(+), 14 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 03dee35..0afac42 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -44,8 +44,6 @@ do { printf("%s "fmt, __func__, ## __VA_ARGS__); } while (0) #define ICH9_DEBUG(fmt, ...) do { } while (0) #endif -#define ICH9_PROC_BASE 0x0CD8 - static void ich9_pm_update_sci_fn(ACPIREGS *regs) { ICH9LPCPMRegs *pm = container_of(regs, ICH9LPCPMRegs, acpi_regs); @@ -223,7 +221,7 @@ void ich9_pm_init(PCIDevice *lpc_pci, ICH9LPCPMRegs *pm, qemu_register_powerdown_notifier(&pm->powerdown_notifier); AcpiCpuHotplug_init(pci_address_space_io(lpc_pci), OBJECT(lpc_pci), - &pm->gpe_cpu, ICH9_PROC_BASE); + &pm->gpe_cpu, ICH9_CPU_HOTPLUG_IO_BASE); pm->cpu_added_notifier.notify = ich9_cpu_added_req; qemu_register_cpu_added_notifier(&pm->cpu_added_notifier); } diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 9b7fe6b..4161d06 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -51,8 +51,6 @@ #define PCI_EJ_BASE 0xae08 #define PCI_RMV_BASE 0xae0c -#define PIIX4_PROC_BASE 0xaf00 - #define PIIX4_PCI_HOTPLUG_STATUS 2 struct pci_status { @@ -702,7 +700,8 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent, pci_bus_hotplug(bus, piix4_device_hotplug, DEVICE(s)); } - AcpiCpuHotplug_init(parent, OBJECT(s), &s->gpe_cpu, PIIX4_PROC_BASE); + AcpiCpuHotplug_init(parent, OBJECT(s), &s->gpe_cpu, + PIIX4_CPU_HOTPLUG_IO_BASE); s->cpu_added_notifier.notify = piix4_cpu_added_req; qemu_register_cpu_added_notifier(&s->cpu_added_notifier); } diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index edf5256..e9c49d5 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -19,10 +19,15 @@ ifdef IASL DSL_DEPS = $(SRC_PATH)/hw/i386/%.dsl \ $(SRC_PATH)/scripts/acpi_extract_preprocess.py \ $(SRC_PATH)/scripts/acpi_extract.py \ - $(SRC_PATH)/hw/i386/acpi-dsdt-*.dsl + $(SRC_PATH)/hw/i386/acpi-dsdt-*.dsl \ + $(SRC_PATH)/include/hw/acpi/ich9.h \ + $(SRC_PATH)/include/hw/acpi/piix4.h \ + $(SRC_PATH)/include/hw/acpi/cpu_hotplug.h + +ASL_FLAGS = $(QEMU_CFLAGS) -DACPI_ASL hw/i386/%.hex: $(DSL_DEPS) - $(call quiet-command, cpp -P $< -o $*.dsl.i.orig, " CPP $(TARGET_DIR)$*.dsl.i.orig") + $(call quiet-command, cpp $(ASL_FLAGS) -P $< -o $*.dsl.i.orig, " CPP $(TARGET_DIR)$*.dsl.i.orig") $(call quiet-command, $(PYTHON) $(SRC_PATH)/scripts/acpi_extract_preprocess.py $*.dsl.i.orig > $*.dsl.i, " ACPI_PREPROCESS $(TARGET_DIR)$*.dsl.i") $(call quiet-command, $(IASL) $(call iasl-option,$(IASL),-Pn,) -vs -l -tc -p $* $*.dsl.i $(if $(V), , > /dev/null) 2>&1 ," IASL $(TARGET_DIR)$*.dsl.i") $(call quiet-command, $(PYTHON) $(SRC_PATH)/scripts/acpi_extract.py $*.lst > $*.off, " ACPI_EXTRACT $(TARGET_DIR)$*.off") diff --git a/hw/i386/acpi-dsdt-cpu-hotplug.dsl b/hw/i386/acpi-dsdt-cpu-hotplug.dsl index 869aa00..942b119 100644 --- a/hw/i386/acpi-dsdt-cpu-hotplug.dsl +++ b/hw/i386/acpi-dsdt-cpu-hotplug.dsl @@ -17,6 +17,8 @@ * CPU hotplug ****************************************************************/ +#include "hw/acpi/cpu_hotplug.h" + Scope(\_SB) { /* Objects filled in by run-time generated SSDT */ External(NTFY, MethodObj) @@ -52,8 +54,7 @@ Scope(\_SB) { Sleep(200) } -#define CPU_STATUS_LEN 32 - OperationRegion(PRST, SystemIO, CPU_STATUS_BASE, CPU_STATUS_LEN) + OperationRegion(PRST, SystemIO, CPU_STATUS_BASE, ACPI_GPE_PROC_LEN) Field(PRST, ByteAcc, NoLock, Preserve) { PRS, 256 } @@ -95,7 +96,7 @@ Scope(\_SB) { Name(_HID, "ACPI0004") Name(_CRS, ResourceTemplate() { - IO(Decode16, CPU_STATUS_BASE, CPU_STATUS_BASE, 0, CPU_STATUS_LEN) + IO(Decode16, CPU_STATUS_BASE, CPU_STATUS_BASE, 0, ACPI_GPE_PROC_LEN) }) } } diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl index f00b6ca..d98b019 100644 --- a/hw/i386/acpi-dsdt.dsl +++ b/hw/i386/acpi-dsdt.dsl @@ -326,7 +326,8 @@ DefinitionBlock ( } } -#define CPU_STATUS_BASE 0xaf00 +#include "hw/acpi/piix4.h" +#define CPU_STATUS_BASE PIIX4_CPU_HOTPLUG_IO_BASE #include "acpi-dsdt-cpu-hotplug.dsl" diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl index 9466714..ae74427 100644 --- a/hw/i386/q35-acpi-dsdt.dsl +++ b/hw/i386/q35-acpi-dsdt.dsl @@ -420,7 +420,8 @@ DefinitionBlock ( define_gsi_link(GSIH, 0, 0x17) } -#define CPU_STATUS_BASE 0x0CD8 +#include "hw/acpi/ich9.h" +#define CPU_STATUS_BASE ICH9_CPU_HOTPLUG_IO_BASE #include "acpi-dsdt-cpu-hotplug.dsl" diff --git a/include/hw/acpi/cpu_hotplug.h b/include/hw/acpi/cpu_hotplug.h index a0a9abc..00c0866 100644 --- a/include/hw/acpi/cpu_hotplug.h +++ b/include/hw/acpi/cpu_hotplug.h @@ -12,11 +12,14 @@ #ifndef ACPI_HOTPLUG_H #define ACPI_HOTPLUG_H +#define ACPI_GPE_PROC_LEN 32 + +#ifndef ACPI_ASL + #include "hw/acpi/acpi.h" #define ACPI_CPU_HOTPLUG_STATUS 4 -#define ACPI_GPE_PROC_LEN 32 typedef struct AcpiCpuHotplug { MemoryRegion io; @@ -27,4 +30,5 @@ void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu); void AcpiCpuHotplug_init(MemoryRegion *parent, Object *owner, AcpiCpuHotplug *gpe_cpu, uint16_t base); +#endif /* !ACPI_ASL */ #endif diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h index 104f419..47baa92 100644 --- a/include/hw/acpi/ich9.h +++ b/include/hw/acpi/ich9.h @@ -21,6 +21,10 @@ #ifndef HW_ACPI_ICH9_H #define HW_ACPI_ICH9_H +#define ICH9_CPU_HOTPLUG_IO_BASE 0x0CD8 + +#ifndef ACPI_ASL + #include "hw/acpi/acpi.h" #include "hw/acpi/cpu_hotplug.h" @@ -55,4 +59,5 @@ extern const VMStateDescription vmstate_ich9_pm; void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, Error **errp); +#endif /* !ACPI_ASL */ #endif /* HW_ACPI_ICH9_H */ diff --git a/include/hw/acpi/piix4.h b/include/hw/acpi/piix4.h index 65e6fd7..8606375 100644 --- a/include/hw/acpi/piix4.h +++ b/include/hw/acpi/piix4.h @@ -1,8 +1,13 @@ #ifndef HW_ACPI_PIIX4_H #define HW_ACPI_PIIX4_H +#define PIIX4_CPU_HOTPLUG_IO_BASE 0xaf00 + +#ifndef ACPI_ASL + #include "qemu/typedefs.h" Object *piix4_pm_find(void); +#endif /* !ACPI_ASL */ #endif