[LinuxBIOS] multiple devices in mainboard Config.lb

yhlu yinghailu at gmail.com
Fri Mar 18 23:27:49 CET 2005


the first one is right.

bus 2 is leave for bus under your master ck804 pci bus behind pci bridge 1:a.0

YH


On Fri, 18 Mar 2005 16:01:23 -0500, Stephen.Kimball at bench.com
<Stephen.Kimball at bench.com> wrote:
> I'm trying to write the mainboard Config.lb file to support a CK804 and an IO4 on one Opteron.
> 
> I can write a mainboard Config.lb file that will boot the system from an IDE device, but that's only because new device table entries are created for the IDE device.  So I'm not using the static on_mainboard=1 entries.
> 
> I can write a Config.lb file to use the CK804, but incoherent.c bumps up the device numbers and northbridge.c moves the device to bus 1.  Then I get the PCI bus configured like this
> 
> Bus# 00, Dev# 18, Func# 0  --->  Vendor ID = 1022   Device ID = 1100
> Bus# 00, Dev# 18, Func# 1  --->  Vendor ID = 1022   Device ID = 1101
> Bus# 00, Dev# 18, Func# 2  --->  Vendor ID = 1022   Device ID = 1102
> Bus# 00, Dev# 18, Func# 3  --->  Vendor ID = 1022   Device ID = 1103
> Bus# 00, Dev# 19, Func# 0  --->  Vendor ID = 1022   Device ID = 1100
> Bus# 00, Dev# 19, Func# 1  --->  Vendor ID = 1022   Device ID = 1101
> Bus# 00, Dev# 19, Func# 2  --->  Vendor ID = 1022   Device ID = 1102
> Bus# 00, Dev# 19, Func# 3  --->  Vendor ID = 1022   Device ID = 1103
> Bus# 01, Dev# 01, Func# 0  --->  Vendor ID = 10DE   Device ID = 005E
> Bus# 01, Dev# 02, Func# 0  --->  Vendor ID = 10DE   Device ID = 0051
> Bus# 01, Dev# 02, Func# 1  --->  Vendor ID = 10DE   Device ID = 0052
> Bus# 01, Dev# 02, Func# 2  --->  Vendor ID = 10DE   Device ID = 005F
> Bus# 01, Dev# 03, Func# 0  --->  Vendor ID = 10DE   Device ID = 005A
> Bus# 01, Dev# 03, Func# 1  --->  Vendor ID = 10DE   Device ID = 005B
> Bus# 01, Dev# 05, Func# 0  --->  Vendor ID = 10DE   Device ID = 0059
> Bus# 01, Dev# 05, Func# 1  --->  Vendor ID = 10DE   Device ID = 0058
> Bus# 01, Dev# 07, Func# 0  --->  Vendor ID = 10DE   Device ID = 0053
> Bus# 01, Dev# 08, Func# 0  --->  Vendor ID = 10DE   Device ID = 0054
> Bus# 01, Dev# 09, Func# 0  --->  Vendor ID = 10DE   Device ID = 0055
> Bus# 01, Dev# 0A, Func# 0  --->  Vendor ID = 10DE   Device ID = 005C
> Bus# 01, Dev# 0B, Func# 0  --->  Vendor ID = 10DE   Device ID = 0056
> Bus# 01, Dev# 0C, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0D, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0E, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0F, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 03, Dev# 01, Func# 0  --->  Vendor ID = 10DE   Device ID = 005E
> Bus# 03, Dev# 02, Func# 0  --->  Vendor ID = 10DE   Device ID = 00D3
> Bus# 03, Dev# 02, Func# 1  --->  Vendor ID = 10DE   Device ID = 0052
> Bus# 03, Dev# 02, Func# 2  --->  Vendor ID = 10DE   Device ID = 005F
> Bus# 03, Dev# 08, Func# 0  --->  Vendor ID = 10DE   Device ID = 0054
> Bus# 03, Dev# 09, Func# 0  --->  Vendor ID = 10DE   Device ID = 0055
> Bus# 03, Dev# 0B, Func# 0  --->  Vendor ID = 10DE   Device ID = 0056
> Bus# 03, Dev# 0C, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 03, Dev# 0D, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 03, Dev# 0E, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 03, Dev# 0F, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> 
> If I add "device pci_domain" statements before the devices, I get this
> 
> Bus# 00, Dev# 18, Func# 0  --->  Vendor ID = 1022   Device ID = 1100
> Bus# 00, Dev# 18, Func# 1  --->  Vendor ID = 1022   Device ID = 1101
> Bus# 00, Dev# 18, Func# 2  --->  Vendor ID = 1022   Device ID = 1102
> Bus# 00, Dev# 18, Func# 3  --->  Vendor ID = 1022   Device ID = 1103
> Bus# 00, Dev# 19, Func# 0  --->  Vendor ID = 1022   Device ID = 1100
> Bus# 00, Dev# 19, Func# 1  --->  Vendor ID = 1022   Device ID = 1101
> Bus# 00, Dev# 19, Func# 2  --->  Vendor ID = 1022   Device ID = 1102
> Bus# 00, Dev# 19, Func# 3  --->  Vendor ID = 1022   Device ID = 1103
> Bus# 01, Dev# 00, Func# 0  --->  Vendor ID = 10DE   Device ID = 005E
> Bus# 01, Dev# 01, Func# 0  --->  Vendor ID = 10DE   Device ID = 0051
> Bus# 01, Dev# 01, Func# 1  --->  Vendor ID = 10DE   Device ID = 0052
> Bus# 01, Dev# 01, Func# 2  --->  Vendor ID = 10DE   Device ID = 005F
> Bus# 01, Dev# 02, Func# 0  --->  Vendor ID = 10DE   Device ID = 005A
> Bus# 01, Dev# 02, Func# 1  --->  Vendor ID = 10DE   Device ID = 005B
> Bus# 01, Dev# 04, Func# 0  --->  Vendor ID = 10DE   Device ID = 0059
> Bus# 01, Dev# 04, Func# 1  --->  Vendor ID = 10DE   Device ID = 0058
> Bus# 01, Dev# 06, Func# 0  --->  Vendor ID = 10DE   Device ID = 0053
> Bus# 01, Dev# 07, Func# 0  --->  Vendor ID = 10DE   Device ID = 0054
> Bus# 01, Dev# 08, Func# 0  --->  Vendor ID = 10DE   Device ID = 0055
> Bus# 01, Dev# 09, Func# 0  --->  Vendor ID = 10DE   Device ID = 005C
> Bus# 01, Dev# 0A, Func# 0  --->  Vendor ID = 10DE   Device ID = 0056
> Bus# 01, Dev# 0B, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0C, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0D, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 01, Dev# 0E, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 02, Dev# 00, Func# 0  --->  Vendor ID = 10DE   Device ID = 005E
> Bus# 02, Dev# 01, Func# 0  --->  Vendor ID = 10DE   Device ID = 00D3
> Bus# 02, Dev# 01, Func# 1  --->  Vendor ID = 10DE   Device ID = 0052
> Bus# 02, Dev# 01, Func# 2  --->  Vendor ID = 10DE   Device ID = 005F
> Bus# 02, Dev# 07, Func# 0  --->  Vendor ID = 10DE   Device ID = 0054
> Bus# 02, Dev# 08, Func# 0  --->  Vendor ID = 10DE   Device ID = 0055
> Bus# 02, Dev# 0A, Func# 0  --->  Vendor ID = 10DE   Device ID = 0056
> Bus# 02, Dev# 0B, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 02, Dev# 0C, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 02, Dev# 0D, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> Bus# 02, Dev# 0E, Func# 0  --->  Vendor ID = 10DE   Device ID = 005D
> 
> So why does incoherent.c need to bump up the device numbers when the devices are on different busses?  There should be no device number conflicts?  No matter what I do, LinuxBIOS always creates new device table entries, because my Config.lb file has the devices on the wrong bus - 0.  The config file doesn't specify a device's bus and it doesn't assume a bus from the domain statement.  How is this suppose to work?
> 
> Attached is my Config.lb file.
> 
> Thanks for the help.
> 
> Steve Kimball
> 
> 
> _______________________________________________
> LinuxBIOS mailing list
> LinuxBIOS at openbios.org
> http://www.openbios.org/mailman/listinfo/linuxbios
> 
> 
>




More information about the coreboot mailing list