On Tue, 2005-07-26 at 15:30 -0700, Sean O'Connell wrote:
- I added pci=bios to the kernel line in grub.conf and now I can see
all of the PCI buses and the 3Ware card (one note the 3Ware card was not in the 133MHz PCI-X bus on bridge A -- it does work in that slot just fine -- I moved it back to the original location after a quick test). ... 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control 00:19.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration 00:19.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map 00:19.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller 00:19.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
There's the AMD8131 dual PCI-X HyperTransport Tunnel. The kernel was not seeing it at all before, which is why your PCI-X channels were useless.
Why the kernel is not seeing it is beyond me. When you first posted, I didn't think a kernel flag would help because you were saying the BIOS didn't see it. You later then said it was, so I should have agreed with your prior assertion that a kernel flag might help.
Now here comes the biggie ... I typically use pci=nobios on a few mainboards when necessary. That's because pci=bios is (or was?) the default. So I didn't even think of it. The Boot Prompt HOWTO seems to collaborate this: http://www.tldp.org/HOWTO/BootPrompt-HOWTO-4.html#ss4.2
Now maybe I'm outta-date, since when did the default change to pci=nobios? Or maybe pci=bios now explicitly forces it to read the _entire_ BIOS configuration information, including extra PCI busses? This really disturbs me that the Linux kernel is not doing a good job of reading the entire PCI configuration from the BIOS -- unless there is a reason (stability?) for not doing so.
Of course, the nForce Pro 2200 + nForce Pro 2050 + AMD 8131 combination is new. Maybe the APIC settings aren't perfected. But then again, I'm still bothered that the kernel is supposed to read the BIOS by default, and your issue was solved by pci=bios which is supposed to be the default.
[ BTW, where did you find this suggestion? ]
Also, as a further test, I reset the BIOS to their default settings and the machine works just fine. It looks a combination of updated BIOS and of course the kernel flags results in a functional machine.
I would venture to say it was just "pci=bios".
I would really like to know the "root cause" of this. Especially since there are literally a half-dozen PCI busses on that mainboard.