• I
    pc: acpi-build: create CPU hotplug IO region dynamically · ddf1ec2f
    Igor Mammedov 提交于
    it replaces a static complied in DSDT MMIO region
    for CPU hotplug with one created at runtime
    leaving only truly static CPU hotplug related ASL
    bits in DSDT.
    It also puts CPU_HOTPLUG_RESOURCE_DEVICE into
    PCI0 scope and reserves resources from it,
    preparing for dropping manual hole punching
    in PCI0._CRS.
    
    Later it also would make easier to reuse current
    ACPI CPU hotplug on other targets.
    
    Also later it would be possible to move remaining
    CPU hotplug ASL methods into build_ssdt() and
    add all CPU hotplug related AML into SSDT only
    when CPU hotplug is enabled, further reducing
    ACPI tables blob if CPU hotplug isn't used.
    
    impl. detail:
    Windows XP can't handle /BSODs/ OperationRegion
    declaration in DSDT when variable from SSDT is used
    for specifying its address/length and also when
    Field declared in DSDT with OperationRegion from
    SSDT if DSDT is being parsed before SSDT.
    But it works just fine when referencing named
    fields from another table. Hence OperationRegion
    and Field declaration are moved to SSDT to make
    XP based editions work.
    
    PS:
    Later Windows editions seem to be fine with above
    conditions.
    Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
    ddf1ec2f
pc-hotplug.h 1.7 KB