On Mon, Jun 08, 2015 at 03:55:14PM +0200, Paolo Bonzini wrote:
On 08/06/2015 15:52, Gal Hammer wrote:
2. Is it possible to create a sysbus device using the "-device" command
line argument? I vaguely recall that it is not possible to do it and
that's the reason that I specifically add the device in the pc init.
It's now possible, but it is somewhat complicated. I think it's simpler
to initialize this unconditionally and hide it (via ACPI _STA) if the
vmgenid is all zeros.
I didn't understand. I need the device to be a sysbus device so it won't
be found as an ISA or a PCI device by Windows. So I need to know what
ever or not it is possible to create a sysbus device using "-device". In
either way it won't be created if vmgenid is not given so no need to
hide it using _STA.
Windows doesn't enumerate ISA devices when you create them with -device.
It just enumerates devices from the ACPI DSDT/SSDT. So it's okay to
make it an ISADevice, or to make it a part of another device (e.g. the
ISA bridge or the power management device). It's still ugly though.
If you make it a sysbus device, you can just add it unconditionally, and
define _STA so that Windows only sees it under the appropriate
circumstances: for example, return 0 from _STA if the vmgenid (from the
command line) is all zeroes.
What is the command line option like? Is it "-global vmgenid.uuid=foo"?
FWIW, although the spec for this feature comes from Windows/Microsoft,
I'd expect that when we enable it in libvirt, we'll want to make it
unconditionally available to all VMs, since its a generically useful
information source for guest OS'.