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.