I have modified the current E1000 for a small embedded system. The driver works well on systems that do not have Intel ME. On systems that have Intel ME the transmit hangs. BTW the only systems I have tested with ME are C200 PCH boards. The problem could also be the result of differences between the C200 and C202.
On transmit I have verified that transmit descriptor head and tail pointer registers are correct after the driver loads up the DMA buffers but the MAC never sends the frames and never updates the head, and never sets the DD bit. This code works with other NIC's and on other 82579 NIC's. Receive DMA works fine.
I've had transmit hangs when the PHY throws data away, but when that happens the MAC updates the descriptors as though the packets were transmitted.
Is there something at the system level that must be running with Intel ME? I've gone the E1000 driver to find all ME specific code and I think I have included it my version.
BTW, I've also posted this on the E1000 driver forum, but no response yet.