xcp-1.6-updates/xen-4.1.hg

changeset 23238:95f48f40299f

tools/firmware: remove "_PS0/3" Method

Do not expose the ACPI power management "_PS0/3" Method to guest
firmware. According to section 3.4 of the APCI specification 4.0, PCI
device control the device power through its own specification but not
through APCI.

Qemu pushes "_PS0/3" to guest will cause a mess between ACPI PM and
PCI PM as a result of incorrect ACPI table shipped with the guest
BIOS, it may cause a failure of PCI device PM state transition(from
PCI_UNKNOWN to PCI_D0).

Signed-off-by: Xudong Hao <xudong.hao@intel.com>
Signed-off-by: Haitao Shan <haitao.shan@intel.com>
Committed-by: Keir Fraser <keir@xen.org>
xen-unstable changeset: 24357:832fa3f35432
xen-unstable date: Mon Dec 05 19:35:06 2011 +0000
author Xudong Hao <xudong.hao@intel.com>
date Wed Mar 07 08:15:50 2012 +0000 (2012-03-07)
parents a6bbda6dc322
children 04e5091cc08f
files tools/firmware/hvmloader/acpi/mk_dsdt.c
line diff
     1.1 --- a/tools/firmware/hvmloader/acpi/mk_dsdt.c	Wed Mar 07 08:13:47 2012 +0000
     1.2 +++ b/tools/firmware/hvmloader/acpi/mk_dsdt.c	Wed Mar 07 08:15:50 2012 +0000
     1.3 @@ -251,8 +251,6 @@ int main(int argc, char **argv)
     1.4       * the ACPI event:
     1.5       *  _EJ0: eject a device
     1.6       *  _STA: return a device's status, e.g. enabled or removed
     1.7 -     * Other methods are optional: 
     1.8 -     *  _PS0/3: put them here for debug purpose
     1.9       * 
    1.10       * Eject button would generate a general-purpose event, then the
    1.11       * control method for this event uses Notify() to inform OSPM which
    1.12 @@ -271,14 +269,6 @@ int main(int argc, char **argv)
    1.13          stmt("Name", "_ADR, 0x%08x", ((slot & ~7) << 13) | (slot & 7));
    1.14          /* _SUN == dev */
    1.15          stmt("Name", "_SUN, 0x%08x", slot >> 3);
    1.16 -        push_block("Method", "_PS0, 0");
    1.17 -        stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
    1.18 -        stmt("Store", "0x80, \\_GPE.DPT2");
    1.19 -        pop_block();
    1.20 -        push_block("Method", "_PS3, 0");
    1.21 -        stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
    1.22 -        stmt("Store", "0x83, \\_GPE.DPT2");
    1.23 -        pop_block();
    1.24          push_block("Method", "_EJ0, 1");
    1.25          stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
    1.26          stmt("Store", "0x88, \\_GPE.DPT2");