[LinuxBIOS] Configuring PCI devices

Lu, Yinghai yinghai.lu at amd.com
Thu Oct 5 21:59:37 CEST 2006

The build tools will create on static.c that includes static devices.

The hypertransport_scan_chain() will take some static devices from the
device list and match them with probed device. So the probed device can
get extra setting from the static device. The device num is adjusted
according to ht unit base id too at that time.


-----Original Message-----
From: linuxbios-bounces at linuxbios.org
[mailto:linuxbios-bounces at linuxbios.org] On Behalf Of Ed Swierk
Sent: Thursday, October 05, 2006 12:01 PM
To: LinuxBIOS
Subject: [LinuxBIOS] Configuring PCI devices

I'm working on porting LinuxBIOS to an AM2+MCP55-based mainboard (DFI
LANParty UT NF590) using the latest AMD Rev F and MCP55 southbridge
code from svn.

I replaced most of the CK804 PCI device IDs with their MCP55
counterparts, and put the following in my mainboard Config.lb:

chip northbridge/amd/amdk8/root_complex
        device apic_cluster 0 on
                chip cpu/amd/socket_AM2
                        device apic 0 on end
        device pci_domain 0 on
                chip northbridge/amd/amdk8 #mc0
                        device pci 18.0 on #  northbridge
                                #  devices on link 0, link 0 == LDT 0
                                chip southbridge/nvidia/ck804
                                        device pci a.0 on end
                                        device pci a.1 on end
                                        device pci c.0 on end
                        end #  device pci 18.0
                        device pci 18.0 on end # Link 1
                        device pci 18.0 on end # Link 2
                        device pci 18.1 on end
                        device pci 18.2 on end
                        device pci 18.3 on end
                end #mc0
        end # pci_domain
end # root_complex

Obviously this is not quite right, since I get the following output
during boot:

Jumping to LinuxBIOS.
LinuxBIOS-2.0.0-FILO Thu Oct  5 11:34:43 PDT 2006 booting...
Enumerating buses...
APIC_CLUSTER: 0 enabled
PCI_DOMAIN: 0000 enabled
  PCI: 00:18.3 siblings=1
CPU: APIC: 00 enabled
CPU: APIC: 01 enabled
PCI: pci_scan_bus for bus 00
PCI: 00:18.0 [1022/1100] enabled
PCI: 00:18.1 [1022/1101] enabled
PCI: 00:18.2 [1022/1102] enabled
PCI: 00:18.3 [1022/1103] enabled
PCI: 00:1e.0 [10de/0369] enabled
PCI: 00:1f.0 [10de/0360] enabled
PCI: 00:1f.1 [10de/0368] enabled
PCI: 00:1f.2 [10de/036a] enabled
Disabling static device: PCI: 00:0a.0
PCI: pci_scan_bus for bus 00
PCI: 00:00.0 [10de/036c] enabled
PCI: 00:00.1 [10de/036d] enabled
PCI: 00:0a.0
PCI: 00:0a.1
PCI: 00:0c.0
PCI: Left over static devices.  Check your Config.lb

I'm pretty fuzzy on what exactly belongs in the device/chip section of
the Config.lb, and how this affects the PCI device enumeration during
boot (e.g. how did device 10de:036c get mapped to 00:00.0?). Is there
a document that explains this?

I've attached the output of lspci (using the factory BIOS), as well as
my modified pci_ids.h and cache_as_ram_auto.c.

Any pointers would be appreciated.


More information about the coreboot mailing list