aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware
diff options
context:
space:
mode:
authorPaul Durrant <paul.durrant@citrix.com>2011-11-30 06:47:16 -0800
committerPaul Durrant <paul.durrant@citrix.com>2011-11-30 06:47:16 -0800
commit978cc62b401c2e1e1d379d389b0d427b85f200d8 (patch)
tree32797767f2314829c2ff9be8d9e949dc60cb5ad7 /tools/firmware
parent6e130c6e988cfa17fc980ad3af3bfd1e28a18348 (diff)
downloadxen-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.c1
-rw-r--r--tools/firmware/hvmloader/acpi/dsdt.asl28
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)
+ }
+ }
}
}
}