EPIA-M 10000 netboot stops working


Working on an article for LWN.net late last night, I ran into what is apparently a well known problem.  The Via Rhine driver in linux will ocassionally disable the PXE firmware so netboots don't work anymore.   I found the solution in an Linux Kernel archive early this morning.  

The gist of the solution:  unplug the power from the epia-M.  That means physically disconnect the power supply from the wall (or similar).  This resets the firmware and on the next cold boot you'll be able to PXE boot again.  

Weird that it happened randomly like that.  I've been PXE booting that board for quite some time and this is the first time it's done that.

update 1

The problem appears to be that I'm netbooting the Linux kernel and not loading the Via Rhine driver from the kernel.  I think what's happening is the PXE driver is shutting down the NIC after grabbing the kernel from the TFTP server.  Under normal circumstances the Linux kernel would boot with the Via Rhine network driver resetting the hardware and all would be well.  But I'm booting a stripped kernel that doesn't have the Via Rhine driver loaded and so the hardware is never reset.  So warm boots never reset the hardware.  The result is that the only way to reset the NIC is to pull the power cord from the EPIA-M 10000 board to cold boot it again.