When I install an Intel Gigabit ET Quad Port Server Adapter in an HP DC7900 SFF business desktop computer, the machine hangs at Power On with no beep code or error message. I do get video, the memory check, and a message about initialising PXE boot on the internal NIC (when enabled in BIOS). That is the only indicator I have about the progress of the BIOS routine before it hangs.
I have tried every combination of visible BIOS setting on the HP. I am on the latest BIOS, and it is stated to be impossible to downgrade the BIOS, so I cannot try another BIOS for the HP.
The Intel ET Quad works in another machine, and using that machine I have configured the ET from a DOS environment in a number of different ways, e.g. I have both enabled and disabled I/O Map Mode using the IOUTIL utility; and I have both enabled and disabled the option ROMs using the command BOOTUTIL -ENABLE=DISABLED.
What else can I do, other than replace the HP machine with another computer?
1. I have not flashed the NIC with the latest Intel software, because the documentation indicates that updates only deal with option ROM functions such as PXE, iSCSI, Fibre Channel, and also EFI (but my machine does not have UEFI). Could this make a difference?
2. I have also had a look at the Intel Datasheet for 82576EB Controller (Revision 2.63 dated December 2011) on which the ET Quad is based (it has two such controllers), and it seems to me there are registers in non-volatile memory that could be re-programmed using ethtool within a Linux environment to test aspects of the configuration, e.g. it is possible to switch off one of the two controllers on the card.
Section 188.8.131.52 Multi-Function Advertisement states:"If one of the LAN devices is disabled, the 82576 is no longer a multi-function device. The 82576 normally reports a 0x80 in the PCI Configuration Header field Header Type .... However, if a LAN is disabled, the 82576 reports a 0x00 in this field to signify single-function capability."
It seems to me that this could make a considerable difference to the ability of the HP to enumerate its PCI devices at Power On. This is just one example of the control registers available in non-volatile memory.
My difficulty is that it is non-trivial to program non-volatile memory using ethtool, and for example I know there are protective measures such that one needs to specify a magic number in order for the 82576 controllers to accept any writes to its internal registers, and there is endian-ness to deal with when updating multi-byte registers and so forth. All this is a bit intimidating, but the difficulties do not seem insuperable. Does anyone know of any good guides to doing this, or am I condemned to work only from datasheets?
Does anyone who understands PCI device enumeration know of any configuration registers that could be configured differently from the defaults in such a way as to give the HP BIOS another chance to bring up the card? Obviously I would prefer a solution that does not require one of the two 82576 controllers to be disabled, because my 4-port card would then be a 2-port card.