[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 8/9] pc: ACPI: unify source of CPU hotplug IO base/l
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH 8/9] pc: ACPI: unify source of CPU hotplug IO base/len |
Date: |
Sat, 28 Dec 2013 23:30:51 +0100 |
use C headers defines as source of IO base/len for respective
values in ASL code.
Signed-off-by: Igor Mammedov <address@hidden>
---
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
--
1.8.4.2
- [Qemu-devel] [PATCH 0/9 v2] pc: CPU hotplug support for Q35, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 1/9] acpi: factor out common cpu hotplug code for PIIX4/Q35, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 3/9] pc: rebuild ACPI hex files if included *.dsl are touched, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 2/9] acpi: ich9: add CPU hotplug handling to Q35 machine, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 5/9] pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus resources, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 4/9] pc: set PRST base in DSDT depending on chipset, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 6/9] pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 7/9] pc: ACPI: expose PRST IO range via _CRS, Igor Mammedov, 2013/12/28
- [Qemu-devel] [PATCH 8/9] pc: ACPI: unify source of CPU hotplug IO base/len,
Igor Mammedov <=
- [Qemu-devel] [PATCH 9/9] pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated, Igor Mammedov, 2013/12/28