On Tue, Jan 20, 2015 at 03:28:45PM -0600, Timothy Pearson wrote:
On 01/20/2015 01:55 PM, Timothy Pearson wrote:
All,
I have been working on porting Coreboot to a new CK804-based K10 mainboard; it warm boots but will not cold boot due to IRQ/MSI configuration issues.
While tracing the IRQ problem I noticed that the CK804 PCI function numbers change from the proprietary BIOS to Coreboot:
Proprietary: -[0000:00]-+-00.0 NVIDIA Corporation CK804 Memory Controller [10de:005e] +-01.0 NVIDIA Corporation CK804 ISA Bridge [10de:0051] +-01.1 NVIDIA Corporation CK804 SMBus [10de:0052] ...etc...
Coreboot: -[0000:00]-+-01.0 NVIDIA Corporation CK804 Memory Controller [10de:005e] +-02.0 NVIDIA Corporation CK804 ISA Bridge [10de:0051] +-02.1 NVIDIA Corporation CK804 SMBus [10de:0052]
This, in turn, causes Linux to not detect the CK804 root bridge.
Has anyone else seen this with the CK804 chipset? Is there a magic register somewhere that configures the CK804 to use the "correct" PCI function numbers?
The only pertinent quirk of this mainboard is that Asus put the CK804 on HT link 1, not 0 or 2 as is more common.
Thanks!
Looks like I was writing too quickly..."function number" above should be "device number". Nothing responds to a PCI vendor ID probe at PCI_DEV(0,0,0) which seems to indicate the CK804 itself has renumbered its internal devices, but I don't currently know why or how.
Coreboot supports dual-ck804 boards, perhaps the ck804 got enumerated at the secondary offset? (starting at something like bus 0x40 or 0x80)
Jonathan Kollasch