Since introduction of PCIHP, it became problematic to
punch hole in PCI0._CRS statically since PCI hotplug
region size became runtime changeable.

So replace static hole punching with dynamically consumed
resources in a child device on PCI0 bus. i.e generate
PNP0C02 device as a child of PCI0 bus at runtime and
consume GPE0, PCI/CPU hotplug IO resources in it instead
of punching holes in static PCI0._CRS.

Tested with Windows XPsp3, Vista, Windows Server 2003, 2008, 2012r2.

Series adds several ASL like macros to simplify
code for dynamic generation of AML structures.

Igor Mammedov (9):
  Revert "pc: Q35 DSDT: exclude CPU hotplug IO range from PCI bus
  Revert "pc: PIIX DSDT: exclude CPU/PCI hotplug & GPE0 IO range from
    PCI bus resources"
  Partial revert "pc: ACPI: expose PRST IO range via _CRS"
  acpi: replace opencoded opcodes with defines
  acpi: add PNP0C02 to PCI0 bus
  acpi: consume GPE0 IO resources in PNP0C02 device
  acpi: consume CPU hotplug IO resource in PNP0C02 device
  pcihp: expose PCI hotplug MMIO base/length as properties of piix4pm
  acpi: consume PCIHP IO resource in PNP0C02 device

 hw/acpi/pcihp.c                   |   28 ++++++
 hw/acpi/piix4.c                   |    1 +
 hw/i386/acpi-build.c              |  177 ++++++++++++++++++++++++++++++++++--
 hw/i386/acpi-dsdt-cpu-hotplug.dsl |   11 ---
 hw/i386/acpi-dsdt-pci-crs.dsl     |   15 +++-
 hw/i386/acpi-dsdt.dsl             |   39 --------
 hw/i386/q35-acpi-dsdt.dsl         |   16 ----
 include/hw/acpi/pcihp.h           |    4 +
 8 files changed, 214 insertions(+), 77 deletions(-)

Reply via email to