[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH V13 0/4] Virtual Machine Generation ID

From: Igor Mammedov
Subject: [Qemu-devel] [PATCH V13 0/4] Virtual Machine Generation ID
Date: Wed, 25 Feb 2015 17:08:49 +0000

Note to maintainer:
 this patch set doesn't include the *.hex.generated files and
 updated test ACPI tables blobs. Hex files for [q35-]acpi-dsdt
 should be updated.

Tested with WS2012R2DCx64, thanks Gal for providing test utilities.

Based on top of mst's PCI tree.
Git branch:
https://github.com/imammedo/qemu.git vmgenid_v13

V13 -
      * drop usage of bios_linker_loader and rewrite to use
        PCIDevice so that we don't have to mess with complex
        linker interface and patch ACPI tables then read VMGENID
        buffer adddress in guest OSPM and communicate it to QEMU
        via reserved MMIO region.
        It * makes initialization more stratforward (like any PCI
             device) but consumes 1 PCI slot (not a big deal with bridges),
           * saves us MMIO resources since there is no need
             to write buffer HPA from OSPM to QEMU
           * simplifies AML, replaces methods and OperationRegion with
             integer constant pointing to buffer HPA
        It also allows us to write a more complete unit test
        that wouldn't require to run OSPM so that it could update
        HPA in QEMU.
      * use AML API for instead of template patching
      * make 'vmgenid' optional, users who want to use it
        should add -device vmgenid,.... to QEMU CLI
        it also saves us some space in SSDT if device is not used
      * mark UUID buffer as dirty when it's updated via QMP in runtime
      * make 'uuid' property mandatory at -device
      * fix: make sure that test actually runs
      * use property to get UUID buffer HPA
      * add setting UUID via QMP at runtime test case

V12 - Fixed bios_linker_loader_add_pointer call parameters. Offset
      should be relative to the table.

V11 - Add required missing files.

V10 - Fixed typos in docs and a few clarification.

V9 - Add a unit test.
   - Rebased to version 2.2.
   - Removed hex.generated the binary files from patch.

V8 - Add a device's description file.
   - GUID is stored in fw cfg file and the guest writes the
     physical address to the device (reduces vmexits).

V7 - Move the device's description back to the static SSDT table.
   - The GUID is store in a "hard coded" physical address and not
     in the ACPI table itself.
   - ACPI notification is triggered when the GUID is changed.

V6 - include the pre-compiled ASL file
   - remove an empty line at end of files.

V5 - Move device's description to SSDT table (dynamic).

V4 - Fix a typo in error message string.
   - Move device's description from DSDT back to SSDT table.

V3 - Remove "-uuid" command line parameter.
   - Move device's description from SSDT to DSDT table.
   - Add new "vmgenid" sysbus device.

Gal Hammer (1):
  docs: vm generation id device's description

Igor Mammedov (3):
  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.

 default-configs/i386-softmmu.mak     |   1 +
 default-configs/x86_64-softmmu.mak   |   1 +
 docs/specs/pci-ids.txt               |   1 +
 docs/specs/vmgenid.txt               |  36 ++++++++++
 hw/acpi/piix4.c                      |  17 +++++
 hw/i386/acpi-build.c                 |  33 +++++++++
 hw/i386/acpi-dsdt.dsl                |   2 -
 hw/i386/q35-acpi-dsdt.dsl            |   2 -
 hw/isa/lpc_ich9.c                    |  16 +++++
 hw/isa/vt82c686.c                    |  24 ++++++-
 hw/misc/Makefile.objs                |   1 +
 hw/misc/vmgenid.c                    | 130 +++++++++++++++++++++++++++++++++++
 include/hw/acpi/acpi.h               |   1 +
 include/hw/acpi/acpi_dev_interface.h |   9 +++
 include/hw/misc/vmgenid.h            |  21 ++++++
 include/hw/pci/pci.h                 |   1 +
 tests/Makefile                       |   2 +
 tests/vmgenid-test.c                 |  92 +++++++++++++++++++++++++
 18 files changed, 385 insertions(+), 5 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 tests/vmgenid-test.c


reply via email to

[Prev in Thread] Current Thread [Next in Thread]