diff options
author | Paul Durrant <paul.durrant@citrix.com> | 2011-11-30 06:47:16 -0800 |
---|---|---|
committer | Paul Durrant <paul.durrant@citrix.com> | 2011-11-30 06:47:16 -0800 |
commit | 978cc62b401c2e1e1d379d389b0d427b85f200d8 (patch) | |
tree | 32797767f2314829c2ff9be8d9e949dc60cb5ad7 /tools/firmware | |
parent | 6e130c6e988cfa17fc980ad3af3bfd1e28a18348 (diff) | |
download | xen-978cc62b401c2e1e1d379d389b0d427b85f200d8.tar.gz xen-978cc62b401c2e1e1d379d389b0d427b85f200d8.tar.bz2 xen-978cc62b401c2e1e1d379d389b0d427b85f200d8.zip |
hvmloader: Add an ACPI device exposing a package called ADDR,
evaluating to two integers, and with _CID and _DDN set to
"VM_Gen_Counter".
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/firmware')
-rw-r--r-- | tools/firmware/hvmloader/acpi/build.c | 1 | ||||
-rw-r--r-- | tools/firmware/hvmloader/acpi/dsdt.asl | 28 |
2 files changed, 28 insertions, 1 deletions
diff --git a/tools/firmware/hvmloader/acpi/build.c b/tools/firmware/hvmloader/acpi/build.c index 837e3442ea..306d1105b8 100644 --- a/tools/firmware/hvmloader/acpi/build.c +++ b/tools/firmware/hvmloader/acpi/build.c @@ -47,6 +47,7 @@ struct acpi_info { uint32_t pci_min, pci_len; /* 4, 8 - PCI I/O hole boundaries */ uint32_t madt_csum_addr; /* 12 - Address of MADT checksum */ uint32_t madt_lapic0_addr; /* 16 - Address of first MADT LAPIC struct */ + uint32_t vm_gid_addr; /* 20 - Address of VM generation id buffer */ }; /* Number of processor objects in the chosen DSDT. */ diff --git a/tools/firmware/hvmloader/acpi/dsdt.asl b/tools/firmware/hvmloader/acpi/dsdt.asl index d8a67b35f9..ca64feca61 100644 --- a/tools/firmware/hvmloader/acpi/dsdt.asl +++ b/tools/firmware/hvmloader/acpi/dsdt.asl @@ -55,7 +55,8 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) PMIN, 32, PLEN, 32, MSUA, 32, /* MADT checksum address */ - MAPA, 32 /* MADT LAPIC0 address */ + MAPA, 32, /* MADT LAPIC0 address */ + VGIA, 32 /* VM generation id address */ } /* Fix HCT test for 0x400 pci memory: @@ -396,6 +397,31 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) IRQNoFlags () {7} }) } + + Device(VGID) { + Name(_HID, EisaID ("PNP0A06")) + Name(_UID, 0x00) + Name(_CID, "VM_Gen_Counter") + Name(_DDN, "VM_Gen_Counter") + Method(_STA, 0, NotSerialized) + { + If(LEqual(\_SB.VGIA, 0x00000000)) { + Return(0x00) + } Else { + Return(0x0F) + } + } + Name(PKG, Package () + { + 0x00000000, + 0x00000000 + }) + Method(ADDR, 0, NotSerialized) + { + Store(\_SB.VGIA, Index(PKG, 0)) + Return(PKG) + } + } } } } |