NVIDIA NIC starts nvnetbus before nvenetfd
NVIDIA chipsets don't view all devices on the PCI bus in a direct fashion, and there's a bus driver (nvnetbus) necessary to make the network adapter appear as a common PCI Ethernet device on the bus.
Booting Windows XP/2k/etc using the iSCSI / WinAoE driver will not work, due to a missing service (nvnetbus) not being started. While this is not a hardware issue, nor a problem with gPXE, it is included here for informative purposes.
After installing Microsoft iSCSI Boot initiator and executing sanbootconf (and thus making sure the NVENETFD service is started at boot) booting the image over iSCSI will result in BSOD (0x0000007b). This happens even though the NVENETFD service is loaded during boot.
This was tested on Windows XP x64.
After installing WinAoE and making sure the NVENETFD service is started at boot, booting the image over AoE will work well until aoe32.sys is loaded. Upon loading aoe, the system will hang without any network activity. This happens even though the NVENETFD and nvnetbus services are loaded before aoe32.sys.
This is tested on Windows XP and Vista, both 32-bit. Not tested using 64-bit, but the problem is likely to be the same.
The nvnetbus service has to be started before NVENETFD:
In order to do this, the user has to be familiar with CurrentControlSet\Services Subkey Entries (http://support.microsoft.com/kb/103000) and with CurrentControlSet\Control\GroupOrderList Entries (http://technet.microsoft.com/en-us/library/cc976063.aspx).
Overview of the steps required to make nvnetbus being started before NVENETFD:
1) Diskless boot one of the client PCs with a super client.
2) Navigate to "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NVENETFD", remember the value of Tag (priority) and increase it by 1.
3) Navigate to “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvnetbus”, and
a. Set "Group" to "NDIS".
b. Set "Start" to "0".
c. Set "Tag" to the original tag of NVENETFD.
4) Navigate to "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList\NDIS", increase the number of Tags (first four bytes), and add the new tag we just added for NVENETFD at the end of the list (you're adding four more bytes at the end).
5) Disable super client on CCBoot server.
Another option is to use the RIS driver for the nForce card (not verified). The simplest fix is to simply use another network adapter.