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
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to