On 1/4/2023 5:18 PM, Philippe Mathieu-Daudé wrote: > On 4/1/23 20:29, Chuck Zmudzinski wrote: > > On 1/4/23 1:48 PM, Philippe Mathieu-Daudé wrote: > > >> Here TYPE_PIIX3_DEVICE means for "PCI function part of the PIIX > >> south bridge chipset, which expose a PCI-to-ISA bridge". A better > >> name could be TYPE_PIIX3_ISA_PCI_DEVICE. Unfortunately this > >> device is named "PIIX3" with no indication of ISA bridge. > > > > > > Thanks, you are right, I see the PIIX3 device still exists after > > this patch set is applied. > > > > chuckz@debian:~/sources-sid/qemu/qemu-7.50+dfsg/hw/i386$ grep -r PIIX3 * > > pc_piix.c: pci_dev = pci_new_multifunction(-1, true, > > TYPE_PIIX3_DEVICE); > > > > I also understand there is the PCI-to-ISA bridge at 00:01.0 on the PCI bus: > > > > chuckz@debian:~$ lspci > > 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) > > All these entries ('PCI functions') ...: > > > 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] > > 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton > > II] > > 00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton > > II] (rev 01) > > 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) > > ... are part of the same *device*: the PIIX south bridge. > > This device is enumerated as #1 on the PCI bus #0. > It currently exposes 4 functions: ISA/IDE/USB/ACPI. > > > 00:02.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev > > 01) > > 00:03.0 VGA compatible controller: Device 1234:1111 (rev 02) > > > > I also see with this patch, there is a bridge that is a PIIX4 ACPI at > > 00:01.3. > > I get the exact same output from lspci without the patch series, so that > > gives > > me confidence it is working as designed. > > Historically the PIIX3 and PIIX4 QEMU models have been written by > different people with different goals. > > - PIIX3 comes from x86 machines and is important for KVM/Xen > accelerators > - PIIX4 was developed by hobbyist for MIPS machines > > PIIX4 added the ACPI function which was proven helpful for x86 machines. > > OS such Linux don't consider the PIIX south bridge as a whole chipset, > and enumerate each PCI function individually. So it was possible to add > the PIIX4 ACPI function to a PIIX3... A config that doesn't exist with > real hardware :/ > While QEMU aims at modeling real HW, this config is still very useful > for KVM/Xen. So this Frankenstein config is accepted / maintained. > > Bernhard is doing an incredible work merging the PIIX3/PIIX4 differences > into a more maintainable model :) > > Regards, > > Phil.
Thanks for the nice explanation of the history. I understand the PIIX3 is associated with the i440fx machine type for i386 - it goes all the way back to 1995 I think with the original 32-bit Pentium processor and Windows 95. So it is a worthwhile effort to work on updating this to something newer, and of course kvm can use the newer Q35 chipset which goes back to 2009 or so, I think, but xen/x86 languishes on the i440fx for now. Best regards, Chuck