On Wed, Dec 05, 2007 at 12:00:59PM -0800, Steve Isaacs wrote:
On Wed, 2007-12-05 at 12:30 +0100, Uwe Hermann wrote:
Please post your Config.lb and 'lspci -tvnn' output.
You're likely listing PCI devices in Config.lb which are not on the board, or you use the wrong nesting or order (?)
Thanks, see below.
I have been in a very uncomfortable position of having to guess about this. I dug around in other boards trying to find something that almost fits and then hacked from there.
Is there anything that describes how to make a configuration in detail? I'd rather learn the rules than have someone figure it out for me.
There's a PDF which describes some parts of it, not sure how complete it is:
$ cd documentation $ make $ xpdf LinuxBIOS-AMD64.pdf
Other questions are, in what form and how is this information used at run-time?
For the PCI parts, LinuxBIOS sets up the static/onboard devices and scans for other devices dynamically, if I'm not mistaken. This means you do not specify PCI/AGP/PCIe extention cards in Config.lb, they're rather detected at runtime.
For Super I/O stuff, the (PnP) settings are hardcoded from the options in the 'chip superio/foo/bar' section of Config.lb
The CPU/socket/APIC stuff below tells LinuxBIOS which CPU init code to execute etc.
Config.lb
chip northbridge/amd/amdk8/root_complex device apic_cluster 0 on chip cpu/amd/socket_F device apic 0 on end end end
Looks ok.
device pci_domain 0 on chip northbridge/amd/amdk8 device pci 18.0 on # northbridge # devices on link 0 chip southbridge/broadcom/bcm21000 device pci 0.0 on end device pci 1.0 off end device pci 2.0 on end device pci 3.0 off end device pci 4.0 off end end chip southbridge/broadcom/bcm11000 device pci 0.0 on end device pci 0.1 on end
Hm, not sure about the above stuff...
device pci 1.0 on device pci e.0 on end end
I may be wrong, but I don't think you can nest PCI entries like this.
device pci 1.1 on end device pci 2.0 on
device pci b.0 on end device pci b.1 on end device pci b.2 on end device pci c.0 on end device pci c.1 on end device pci c.2 on end device pci d.0 on end device pci d.1 on end device pci d.2 on end
What is 2.0? What are the b.0 etc. entries? This doesn't seem to match the lspci you posted.
end device pci 2.1 on end device pci 3.0 on end device pci 3.1 on end device pci 4.0 on end device pci 4.1 on end device pci 6.0 on chip drivers/i2c/i2cmux2 # pca9544 smbus mux device i2c 71 on # MIS_ P40,28,39 end #0 pca9544 0 device i2c 71 on # HT_ P40,24,42 end #0 pca9544 1 device i2c 71 on # pca9544 2 P1_ P40,2,6,7 chip drivers/generic/generic #dimm 0-0-0 device i2c 50 on end end chip drivers/generic/generic #dimm 0-0-1 device i2c 51 on end end chip drivers/generic/generic #dimm 0-1-0 device i2c 52 on end end chip drivers/generic/generic #dimm 0-1-1 device i2c 53 on end end end device i2c 71 on #pca9544 3 P2_ P40,8,12,13 chip drivers/generic/generic #dimm 1-0-0 device i2c 50 on end end chip drivers/generic/generic #dimm 1-0-1 device i2c 51 on end end chip drivers/generic/generic #dimm 1-1-0 device i2c 52 on end end chip drivers/generic/generic #dimm 1-1-1 device i2c 53 on end end end end end device pci 6.1 on end device pci 6.2 on
What device is 6.2? The Super I/O section below should be a child of the ISA/LPC device usually.
chip superio/smsc/sch4304
Please use the 'superio/smsc/smscsuperio' driver, which is a common driver for many SMSC Super I/Os. It should be easy to add support for the sch4304 there.
Do you have the sch4304 datasheet? If so, it would be nice if you could add support for this chip to superiotool, see http://linuxbios.org/Superiotool
device pnp 2e.0 off # Floppy io 0x60 = 0x3f0 irq 0x70 = 6 drq 0x74 = 2 end device pnp 2e.3 on # Parallel Port io 0x60 = 0x378 irq 0x70 = 7 end device pnp 2e.4 on # Com 1 io 0x60 = 0x3f8 irq 0x70 = 4 end device pnp 2e.5 on # Com 2 io 0x60 = 0x2f8 irq 0x70 = 3 end device pnp 2e.6 on # RTC io 0x60 = 0x70 io 0x62 = 0x72 end device pnp 2e.7 on # Keyboard io 0x60 = 0x60 io 0x62 = 0x64 irq 0x70 = 1 end
Looks good as far as I can tell.
#device pnp 2e.7 off #end #device pnp 2e.B off #end
This section should have one entry per Super I/O LDN. If the Super I/O has some LDNs/capabilities you don't use on the board, it should still be listed, but with "off" (and a comment why it's off).
end end
device pci 6.3 off end device pci 6.4 on end device pci 6.5 on end device pci 6.6 on end
Where does this come from? I don't see 6.3, 6.4 etc. in the lspci output.
end # bcm11000 end # device pci 18.0 device pci 18.1 on end
Not sure about the above few lines. Other boards have e.g.
device pci 18.0 on end # Link 1 device pci 18.0 on end
(yes, twice, there's some reason for that which was explained in the PDF, IIRC).
device pci 18.2 on end device pci 18.3 on end
You don't have the 19.* devices from lspci listed here; not sure what those devices are, but I guess they must be listed.
end
end #pci_domain end
$ lspci -tvnn -[0000:00]-+-01.0 1166:0031 +-02.0-[0000:01]----0f.0 1166:0410 +-03.0-[0000:02]--+-0c.0 1166:0412 | +-0c.1 1166:0412 | +-0c.2 1166:0414 | +-0d.0 1166:0412 | +-0d.1 1166:0412 | +-0d.2 1166:0414 | +-0e.0 1166:0412 | +-0e.1 1166:0412 | -0e.2 1166:0416 +-04.0-[0000:03]-- +-05.0-[0000:04]-- +-07.0 1166:0408 +-07.1 1166:0214 +-07.2 1166:040a +-08.0-[0000:05]-- +-09.0-[0000:06]-- +-0a.0-[0000:07]-- +-0b.0-[0000:08]-- +-0c.0-[0000:09]-- +-0e.0 10ec:8139 +-0f.0 1002:515e +-18.0 1022:1100 +-18.1 1022:1101 +-18.2 1022:1102 +-18.3 1022:1103 +-19.0 1022:1100 +-19.1 1022:1101 +-19.2 1022:1102 -19.3 1022:1103
Can you also post the 'lspci' output? Your version of lspci doesn't attach the device names to the -tvnn output.
Thanks, Uwe.