[LinuxBIOS] badly initialized (?) pci bridge on the M57SLI ( with irq table and mptable)

Marc Jones marc.jones at amd.com
Mon Sep 17 18:30:58 CEST 2007



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


-- 
Marc Jones
Senior Firmware Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com
http://www.amd.com/embeddedprocessors






More information about the coreboot mailing list