Hi,
- // On real hardware especially server platforms, the bus number
- // could run up to the top value, i.e. 0xff
- if (CONFIG_CSM)
extraroots = 0xff;
What exactly you are trying to fix here?
seabios should find all pci devices behind bridges without problems.
The problem is from the following statement:
while (bus < 0xff && (bus < MaxPCIBus || rootbuses < extraroots)) {
extraroots always returns 0 in csm mode, and "bus < MaxPCIBus" returns false very early. So the while loop ends early, leaving many pci devices un-scanned.
So the question is whenever there are *really* multiple roots or if that patch just papers over a bug somewhere in seabios.
Without the patch, I got: "Found 33 PCI devices (max PCI bus is 02)"
With the patch, I got: "Found 159 PCI devices (max PCI bus is b2)"
Can you run "lspci -vt" and post the output here?
thanks, Gerd