Changes since v2:
* use dependency auto generation for *.dsl files
* hide DEVICE(PRES) from UI
* add comments to document holes punched in CRES
* reduce ifdeffenery by moving CPU hotplug defines to
a dedicated header shared between C and ASL files
* other odd changes requested by "Michael S. Tsirkin" <[email protected]>
Changes since v1:
* renamed hotplug.c/.h to cpu_hotplug.c/.h
* make all prefixes acpi_cpu_hotplug and AcpiCpuHotplug
* updated docs/specs/acpi_cpu_hotplug.txt with Q35's IO port range
* exclude CPU/PCI/GPE IO ranges from resources advertised
in PCI bus _CRS
* advertise CPU hotplug IO range using ACPI Device(ACPI0004)._CRS
object.
* change Q35 IO port ase from 0xa18 to 0xcd8, to avoid increasing
fragmentation of PCI bus IO space
* replaced runtime IO port setting with compile time one, since
port mapping is hadcoded and there is not real need to set it
dynamically.
* Use the same headers for C and ASL code so that port/length
values won't be duplicated.
* Fix deps for ACPI tables, so that thay would be rebuild when
included files are touched. (Added only includes, I've touched,
it's not complete but a good start anyway)
Tested with RHEL6, WS2012R2, WS2003
Series is based on mst/pci tree, git tree for testing:
https://github.com/imammedo/qemu/commits/q35_cpu_hp_v3
Igor Mammedov (9):
acpi: factor out common cpu hotplug code for PIIX4/Q35
acpi: ich9: add CPU hotplug handling to Q35 machine
pc: make: fix dependencies: rebuild when included file is changed
pc: set PRST base in DSDT depending on chipset
pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from PCI bus
resources
pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus resources
pc: ACPI: expose PRST IO range via _CRS
pc: ACPI: unify source of CPU hotplug IO base/len
pc: ACPI: update acpi-dsdt.hex.generated q35-acpi-dsdt.hex.generated
docs/specs/acpi_cpu_hotplug.txt | 4 +-
hw/acpi/Makefile.objs | 2 +-
hw/acpi/cpu_hotplug.c | 64 +++++++
hw/acpi/ich9.c | 14 ++
hw/acpi/piix4.c | 80 +--------
hw/i386/Makefile.objs | 2 +-
hw/i386/acpi-dsdt-cpu-hotplug.dsl | 14 ++-
hw/i386/acpi-dsdt-pci-crs.dsl | 15 +--
hw/i386/acpi-dsdt.dsl | 41 +++++
hw/i386/acpi-dsdt.hex.generated | 333 +++++++++++++++++++++++++++--------
hw/i386/q35-acpi-dsdt.dsl | 18 ++
hw/i386/q35-acpi-dsdt.hex.generated | 138 ++++++++++++--
include/hw/acpi/cpu_hotplug.h | 27 +++
include/hw/acpi/cpu_hotplug_defs.h | 24 +++
include/hw/acpi/ich9.h | 4 +
15 files changed, 592 insertions(+), 188 deletions(-)
create mode 100644 hw/acpi/cpu_hotplug.c
create mode 100644 include/hw/acpi/cpu_hotplug.h
create mode 100644 include/hw/acpi/cpu_hotplug_defs.h