So the question is whenever there are *really* multiple roots
Without the patch, I got: "Found 33 PCI devices (max PCI bus is 02)"
Can you run "lspci -vt" and post the output here?
Here is the output of lspci -vt:
-+-[0000:b2]-+-05.0 Intel Corporation Device 2034 | +-05.2 Intel Corporation Sky Lake-E RAS Configuration Registers
[ ... ]
+-[0000:64]-+-00.0-[65-68]----00.0-[66-68]----03.0-[67-68]--+-00.0 Intel Corporation Ethernet Connection X722 for 10GbE SFP+ | | +-00.1 Intel Corporation Ethernet Connection X722 for 10GbE SFP+
[ ... ]
+-[0000:16]-+-03.0-[17]----00.0 Device 1987:5012 | +-05.0 Intel Corporation Device 2034
[ ... ]
-[0000:00]-+-00.0 Intel Corporation Sky Lake-E DMI3 Registers +-04.0 Intel Corporation Sky Lake-E CBDMA Registers
[ ... ]
+-1c.0-[01-02]----00.0-[02]----00.0 Matrox Electronics Systems Ltd. MGA G200e [Pilot] ServerEngines (SEP1)
[ ... ]
Ok, so there are really multiple pci roots, and seabios finds the first only without setting extraroots.
Can we turn this off on qemu? It is not needed there and slows down the boot a bit. "if (CONFIG_CSM && !CONFIG_QEMU_HARDWARE)" should do the trick.
cheers, Gerd