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_static_v2 Igor Mammedov (9): acpi: factor out common cpu hotplug code for PIIX4/Q35 acpi: ich9: add CPU hotplug handling to Q35 machine pc: rebuild ACPI hex files if included *.dsl are touched 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 | 14 +- hw/i386/acpi-dsdt-cpu-hotplug.dsl | 12 +- hw/i386/acpi-dsdt-pci-crs.dsl | 15 +- hw/i386/acpi-dsdt.dsl | 38 +++++ hw/i386/acpi-dsdt.hex.generated | 328 +++++++++++++++++++++++++++--------- hw/i386/q35-acpi-dsdt.dsl | 17 ++ hw/i386/q35-acpi-dsdt.hex.generated | 133 ++++++++++++--- include/hw/acpi/cpu_hotplug.h | 34 ++++ include/hw/acpi/ich9.h | 9 + include/hw/acpi/piix4.h | 5 + 15 files changed, 578 insertions(+), 191 deletions(-) create mode 100644 hw/acpi/cpu_hotplug.c create mode 100644 include/hw/acpi/cpu_hotplug.h -- 1.8.4.2