[coreboot] Quick CK804 PCI device numbering question

Timothy Pearson tpearson at raptorengineeringinc.com
Tue Jan 20 22:42:41 CET 2015


On 01/20/2015 03:36 PM, Jonathan A. Kollasch wrote:
> 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
I had thought of that, but the bus number reported is 00 (correct) while 
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.

Thanks!
-- 
Timothy Pearson
Raptor Engineering
+1 (415) 727-8645
http://www.raptorengineeringinc.com



More information about the coreboot mailing list