On 01/20/2015 03:36 PM, Jonathan A. Kollasch wrote:
On Tue, Jan 20, 2015 at 03:28:45PM -0600, Timothy
On 01/20/2015 01:55 PM, Timothy Pearson wrote:
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
While tracing the IRQ problem I noticed that the CK804 PCI function
numbers change from the proprietary BIOS to Coreboot:
-[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]
-[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
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.
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
Coreboot supports dual-ck804 boards, perhaps the ck804 got enumerated at the
secondary offset? (starting at something like bus 0x40 or 0x80)
I had thought of that, but the bus number reported is 00
the device numbers are off by one. I have placed the CK804 on bus 1 for
debugging but all that does is cause the boot to fail earlier as
Coreboot itself looks for the CK804 on bus 0; the PCI device numbers
stay at their incorrectly shifted values.
Is there an example of the lspci output for a dual-CK804 board? A quick
Google search didn't turn up anything; I wanted to see if the CK804
detects the HT link it's on and shifts its device numbering.
+1 (415) 727-8645