[Libosinfo] [PATCH osinfo-db 5/9] device: Add chipset q35
Daniel P. Berrangé
berrange at redhat.com
Thu Aug 30 15:04:27 UTC 2018
On Wed, Aug 29, 2018 at 05:54:43PM -0400, Cole Robinson wrote:
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
> Is class 'chipset' fine for q35? The actual PCI ID is for
> ' 82G33/G31/P35/P31 Express DRAM Controller'
I've been looking into this more and am increasingly convinced we should not
be keying off the host-bridge PCI ID at all.
For a start a machine type is actually multiple devices, of which host-bridge
is just one small part. So we already have multiple PCI IDs for a single
machine type.
Then on aarch64 and risv the PCI root is just a generic QEMU invented chipset.
Meanwhile PPC64 is even more insane as it has no PCI host-bridge AFAICT.
The pseries machine type just has a VGA controller immediately as device 0
Then there's all the machines which don't have PCI at all. eg most arm7
machines, where it would be desirable to indicate wihch are supported
by Fedora.
If we look at VMWare they emulate an i440bx chipset, but it is not like
any realworld i440bx chipset because it supports PCI Express, whose
invention post-dates the invention of i440bx by 6 years. So it is really
a custom vmware chipset at this point.
Thus, my gut feeling is that we need to express the chipset / machine
type in some more generic manner.
We could invent a custom URI format for the machine types
eg
qemu.org/chipset/i686-i440x
qemu.org/chipset/i686-q35
qemu.org/chipset/x86_64-i440fx
qemu.org/chipset/x86_64-q35
qemu.org/chipset/aarch64/virt
qemu.org/chipset/riscv/virt
vmware.com/chipset/version12
vmware.com/chipset/version13
vmware.com/chipset/version14
microsoft.com/chipset/gen1
microsoft.com/chipset/gen2
I'm also wondering if we should not use the <device> models at all,
and instead invent a new XML element
<chipset id="qemu.org/chipset/i686-i440x">
<vendor>qemu</vendor>
<arch>i686</arch>
<name>i440fx</name>
</chipset>
<chipset id="qemu.org/chipset/x86_64-i440x">
<vendor>qemu</vendor>
<arch>x86_64</arch>
<name>i440fx</name>
</chipset>
<chipset id="qemu.org/chipset/aarch64/virt">
<vendor>qemu</vendor>
<arch>i686</arch>
<arch>x86_64</arch>
<name>i440fx</name>
</chipset>
...etc...
And reference those chipset definitions in guest OS:
<chipset id="qemu.org/chipset/aarch64/virt"/>
> diff --git a/data/device/pcisig.com/pci-8086-29c0.d/class.xml.in b/data/device/pcisig.com/pci-8086-29c0.d/class.xml.in
> new file mode 100644
> index 0000000..2ac4515
> --- /dev/null
> +++ b/data/device/pcisig.com/pci-8086-29c0.d/class.xml.in
> @@ -0,0 +1,8 @@
> +<libosinfo version="0.0.1">
> +<!-- Licensed under the GNU General Public License version 2 or later.
> + See http://www.gnu.org/licenses/ for a copy of the license text -->
> + <device id="http://pcisig.com/pci/8086/29c0">
> + <name>q35</name>
> + <class>chipset</class>
> + </device>
> +</libosinfo>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the Libosinfo
mailing list