Changes since v18: - drop MachineClass->default_props approach and make setting compat_props to work incrementaly which allows to use it for default properties as well and reduces data duplication as result of removing nesting in [PC|SPAPR]_COMPAT_* macroses. Changes since v17: - make BAR prefetchable to meet cached req of MS spec - rename UUID/uuid to GUID/guid across series to match spec - qmp: add new GuidInfo type and use it instead of UuidInfo - tests: fail if test is timed out when waitng for address 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
It's respin of v14* series which uses a PCI BAR to map VGID page in guest AS. Tested with WS2012R2x64, older Windows versions which don't support vmgenid boot fine but show unknown device which is expected. Git tree for testing: https://github.com/imammedo/qemu.git vmgenid_v19 * 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 machine: add properties to compat_props incrementaly 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/core/machine.c | 10 ++ hw/i386/acpi-build.c | 56 ++++++++++- hw/i386/pc_piix.c | 27 +++-- hw/i386/pc_q35.c | 9 ++ hw/isa/lpc_ich9.c | 16 +++ hw/isa/vt82c686.c | 19 ++++ hw/misc/Makefile.objs | 1 + hw/misc/vmgenid.c | 185 +++++++++++++++++++++++++++++++++++ hw/pci-host/piix.c | 9 +- hw/ppc/spapr.c | 3 - hw/s390x/s390-virtio-ccw.c | 12 +-- include/hw/acpi/acpi.h | 1 + include/hw/acpi/acpi_dev_interface.h | 9 ++ include/hw/boards.h | 11 ++- include/hw/i386/ich9.h | 3 +- include/hw/i386/pc.h | 18 ++-- include/hw/misc/vmgenid.h | 27 +++++ include/hw/pci/pci.h | 1 + qapi-schema.json | 31 ++++++ qmp-commands.hx | 41 ++++++++ stubs/Makefile.objs | 1 + stubs/vmgenid.c | 13 +++ tests/Makefile | 2 + tests/vmgenid-test.c | 93 ++++++++++++++++++ vl.c | 6 +- 34 files changed, 668 insertions(+), 41 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 -- 1.8.3.1