Timothy Pearson [mailto:tpearson@raptorengineeringinc.com] 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! ] ]-- ]Timothy Pearson ]Raptor Engineering ]+1 (415) 727-8645 ]http://www.raptorengineeringinc.com
If I remember correctly, PCI device IDs are assigned during non-coherent HyperTransport initialization on these systems. Search a BKDG for "unit id" for details. The solution may involve changing HT_CHAIN_UNITID_BASE and related items. Take a look at 'swaplist' in the source code.
Thanks, Scott