Quoting Tom Sylla tsylla@gmail.com:
joe@smittys.pointclark.net wrote:
Here is what I think the PCI rom does with the original bios:
- powers on and enables device
- sets up PHY registers
- sets up it PCI config registers
- and requests use of the PCI bridge
If I could figure out how to do #1 the rest would be fairly simple to setup,although I am not exactly sure about PHY registers. Then I wouldn't need the pci rom at all.
I'm not sure it really works this way. A normal platform has some mechanism to set the default values for the LAN config registers. It can be a dedicated SPI ROM, or a dedicated chunk of your boot ROM, or you could program them in your BIOS. I would guess that a PCI ROM is expecting all of those registers to have been programmed already. Furthermore, many of those settings are *platform specific*, so they would not be in any sort of generic PCI ROM that you would get from Intel, or generate using their tools.
I recently designed a platform with an 82571 Intel LOM, and I programmed proper values in the SPI, and don't load any PCI ROM at all. It works fine in all OSes. The PCI ROM usually just provides things like PXE or manageability stuff.
You need to figure out how your platform is handling this. I think it is unlikely that the PCI expansion ROM is doing what you think it is.
Thanks Tom, This makes alot of sense. All the million pages of documentation I have read, and read they talk about an eeprom (which is the SPI???) and an PCI rom. I guess I am getting the two confused. This board has an Intel 82562ET LOM. How do I access the SPI rom in linux (read/dump/write)? I found this program called eepro100-diag and/or ethtool that is supposed to be able to this but have not tried them yet. Also Intel speaks of an PHY register is that the register that is in the SPI. Thanks for your help. I hope you won't mind helping me on this, seeing you have already done it before?
Thanks - Joe