[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