[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