On Wed, Aug 29, 2018 at 05:54:43PM -0400, Cole Robinson wrote: > Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx> > --- > 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 :| _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo