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
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@bench.com Stephen.Kimball@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@openbios.org http://www.openbios.org/mailman/listinfo/linuxbios