On 01/19/16 15:48, Igor Mammedov wrote: > Here is SSDT ASL diff with vmgenid device present that > Laszlo's asked for: > > @@ -135,6 +135,11 @@ DefinitionBlock ("tests/acpi-test-data/pc/SSDT.aml", > "SSDT", 1, "BOCHS ", "BXPCS > }) > } > > + Method (\_GPE._E00, 0, NotSerialized) // _Exx: Edge-Triggered GPE > + { > + Notify (\_SB.PCI0.VGEN, 0x80) // Status Change > + } > +
Thanks a lot! I have one comment for this: I think _E00 cannot be used. Please see the argument in my earlier (now obsolete) patch: [PATCH FYI 02/13] hw/acpi: add i386 callbacks for injecting GPE 04 when the VMGENID changes http://thread.gmane.org/gmane.comp.emulators.qemu/357940/focus=361705 Thanks! Laszlo > Scope (\_SB) > { > Device (PCI0.PRES) > @@ -703,6 +708,28 @@ DefinitionBlock ("tests/acpi-test-data/pc/SSDT.aml", > "SSDT", 1, "BOCHS ", "BXPCS > DVNT (PCIU, One) > DVNT (PCID, 0x03) > } > + > + Device (VGEN) > + { > + Name (_HID, "QEMU0003") // _HID: Hardware ID > + Name (_CID, "VM_Gen_Counter") // _CID: Compatible ID > + Name (_DDN, "VM_Gen_Counter") // _DDN: DOS Device Name > + Name (ADDR, Package (0x02) > + { > + 0xFEBF0000, > + Zero > + }) > + Name (_CRS, ResourceTemplate () // _CRS: Current Resource > Settings > + { > + QWordMemory (ResourceProducer, PosDecode, MinFixed, > MaxFixed, Cacheable, ReadWrite, > + 0x0000000000000000, // Granularity > + 0x00000000FEBF0000, // Range Minimum > + 0x00000000FEBF0FFF, // Range Maximum > + 0x0000000000000000, // Translation Offset > + 0x0000000000001000, // Length > + ,, , AddressRangeMemory, TypeStatic) > + }) > + } > } > } > } > > > 'make V=1 check' doesn't show it since I've forgot to extend > bios-tables-test with vmgenid variant, but it should be > a separate patch anyway and I'd prefer to do it after > I merge DSDT with SSDT, which will reduce number of > test blobs we keep in tree along with other benefits. > > On Tue, 19 Jan 2016 14:06:20 +0100 > Igor Mammedov <imamm...@redhat.com> wrote: > >> It's respin of v14* series which uses a PCI BAR to map >> VGID page in guest AS. >> >> Changes since v14: >> - statically reserve used BAR resources in SSDT, so >> that Windows won't claim them during PCI rebalancing >> - support VGID page in high mem in addition to low mem >> - add QMP/HMP interfaces to get/set VM Generation ID >> - do not consume a PCI slot by default and attach >> vmgenid device as a function of multifuction >> ISA bridge. >> - allow only one vmgenid device instance >> >> >> Tested with WS2012R2x64. >> Git tree for testing: >> https://github.com/imammedo/qemu.git vmgenid_v17 >> >> * v14, https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg00530.html >> >> Gal Hammer (1): >> docs: vm generation id device's description >> >> Igor Mammedov (8): >> acpi: extend ACPI interface to provide access to ACPI registers and >> SCI irq >> pc: add a Virtual Machine Generation ID device >> tests: add a unit test for the vmgenid device. >> qmp/hmp: add query-vm-generation-id and 'info vm-generation-id' >> commands >> qmp/hmp: add set-vm-generation-id commands >> add MachineClass->default_props for setting default device properties >> pc: put PIIX3 in slot 1 explicitly and cleanup functions assignment >> pc/q53: by default put vmgenid device as an function of ISA bridge >> >> default-configs/i386-softmmu.mak | 1 + >> default-configs/x86_64-softmmu.mak | 1 + >> docs/specs/pci-ids.txt | 1 + >> docs/specs/vmgenid.txt | 36 +++++++ >> hmp-commands-info.hx | 13 +++ >> hmp-commands.hx | 13 +++ >> hmp.c | 21 ++++ >> hmp.h | 2 + >> hw/acpi/piix4.c | 17 ++++ >> hw/i386/acpi-build.c | 56 ++++++++++- >> hw/i386/pc_piix.c | 29 ++++-- >> hw/i386/pc_q35.c | 12 +++ >> hw/isa/lpc_ich9.c | 16 +++ >> hw/isa/vt82c686.c | 19 ++++ >> hw/misc/Makefile.objs | 1 + >> hw/misc/vmgenid.c | 183 >> +++++++++++++++++++++++++++++++++++ >> hw/pci-host/piix.c | 9 +- >> include/hw/acpi/acpi.h | 1 + >> include/hw/acpi/acpi_dev_interface.h | 9 ++ >> include/hw/boards.h | 1 + >> include/hw/i386/ich9.h | 3 +- >> include/hw/i386/pc.h | 9 +- >> include/hw/misc/vmgenid.h | 27 ++++++ >> include/hw/pci/pci.h | 1 + >> qapi-schema.json | 18 ++++ >> qmp-commands.hx | 41 ++++++++ >> stubs/Makefile.objs | 1 + >> stubs/vmgenid.c | 13 +++ >> tests/Makefile | 2 + >> tests/vmgenid-test.c | 92 ++++++++++++++++++ >> vl.c | 4 + >> 31 files changed, 636 insertions(+), 16 deletions(-) >> create mode 100644 docs/specs/vmgenid.txt >> create mode 100644 hw/misc/vmgenid.c >> create mode 100644 include/hw/misc/vmgenid.h >> create mode 100644 stubs/vmgenid.c >> create mode 100644 tests/vmgenid-test.c >> >