Ward Vandewege wrote:
Hi there,
We've had a bit of a chat on the IRC channel today about the M57SLI and how the pci bridge does not seem to be initialized properly under LinuxBIOS. The pci-e bridge is initialized ok - pci-e vga cards work fine; pci vga cards do not.
Here's an lspci of the pci bridge (device 06.0), booted from the proprietary bios:
0000:00:06.0 0604: 10de:0370 (rev a2) (prog-if 01) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=32 I/O behind bridge: 0000f000-00000fff Memory behind bridge: fb000000-fb0fffff Prefetchable memory behind bridge: fff00000-000fffff BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- Capabilities: [b8] #0d [0000] Capabilities: [8c] #08 [a800] 00: de 10 70 03 07 00 b0 00 a2 01 04 06 00 00 81 00 10: 00 00 00 00 00 00 00 00 00 01 01 20 f0 00 80 02 20: 00 fb 00 fb f0 ff 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 b8 00 00 00 00 00 00 00 00 00 00 0a
and from linuxbios:
0000:00:06.0 0604: 10de:0370 (rev a2) Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 0000f000-00000fff Memory behind bridge: fff00000-000fffff Prefetchable memory behind bridge: fff00000-000fffff BridgeCtl: Parity+ SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- Capabilities: [b8] #0d [0000] Capabilities: [8c] #08 [a800] 00: de 10 70 03 04 01 b0 00 a2 00 04 06 00 00 81 00 10: 00 00 00 00 00 00 00 00 00 01 01 00 f0 00 80 02 20: f0 ff 00 00 f0 ff 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 b8 00 00 00 00 00 00 00 00 00 03 0a
Uwe thought that perhaps there was an issue with the IRQ or MP table. I've run getpir and mptable while running the proprietary BIOS, and here's the output:
http://ward.vandewege.net/m57sli_mptable.output http://ward.vandewege.net/m57sli_irq_tables.c
I've also saved a proprietary and linuxbios dmesg output, since there seems to be something funny going on with the PCI bridge detection - under LinuxBIOS no less than 7 devices show up as PCI bridges, rather than the 2 that show up under the proprietary BIOS.
http://ward.vandewege.net/m57sli_dmesg_linuxbios.txt http://ward.vandewege.net/m57sli_dmesg_proprietary.txt
Suggestions? Things to try?
Thanks, Ward.
This sounds like a problem with setting the bridge VGA decode bits. See bit 5 in the PCI-PCI bridge Command Register and bit 3 in the bridge control register. I think these bits have to be enabled on all the bridges connecting the VGA card. In addition they must be disabled on all other bridges.
It sounds like there are additional problems in the pci scan code.
Marc