[LinuxBIOS] PCI max buses - Simple solution

Richard Smith smithbone at gmail.com
Sat Apr 22 18:40:33 CEST 2006

On 4/22/06, Stefan Reinauer <stepan at coresystems.de> wrote:
> * yhlu <yinghailu at gmail.com> [060422 06:37]:
> > we already have
> > pci_locate_device().
> > pci_locate_device_on_bus(...unsigned bus).
> Cool! I guess most of us just did not know about that.
> static device_t pci_locate_device_on_bus(unsigned pci_id, unsigned bus)
> is defined in romcc_io.h and does exactly what is needed in this case.
> Firewire on the Epia is always on bus 0.

Ok so the "right" solution for the epia-m is to change
pci_locate_device() to pci_locate_device_on_bus(0);

Eric:  Please confirm that it fixes your problem.

That still leaves the outstanding issue that pci_locate_device() will
pause for long periods if it can't find a device.  And probing the
entire pci space may not be a good thing anyway.

I would propose that pci_locate_device still needs a hard cap.

Whats the maximum number of PCI buses that any one has ever seen on one board?

Richard A. Smith

More information about the coreboot mailing list