2004-06-08 22:14:06

by Chris Friesen

[permalink] [raw]
Subject: help with pci probing at boot time


I'm trying to boot an mcpn765 card with 2.6.5 and I seem to be running into PCI
issues.

There is a calling sequence in the 765 boot that goes like this:

arch_initcall(ppc_init);
ppc_md.init()
mcpn765_init2()
mcpn765_setup_via_82c586b()

This last function tries to find a particular VIA bridge using
pci_find_device(), and if it doesn't find it it dumps an error message and
halts. This is what I'm seeing.

I tried to figure out how the PCI probing thing worked (I have CONFIG_HOTPLUG=n)
but I couldn't figure out the call chain. (pci_devices gets added to by
pci_bus_add_devices, which gets called by pci_do_scan_bus and
pci_scan_bus_parented, but neither of those seems to get called by anyone in the
ppc kernel, and all other callers of pci_bus_add_devices are hotplug-related or
in another architecture.)

I instrumented the PCI probing functions, and they do not seem to be called
before the ppc_init path, which presents difficulties since pci_find_device()
doesn't have the data it needs to actually do its job.

Any suggestions?

Chris