I am working on a driver for the Am79C970 Ethernet controller. It is based on the LanceNIC driver found in SqueakNOS, but uses the 32-bit descriptors instead of the 16-bit ones. I have managed to receive interrupts for the completion of initialization and transmit, but the transmits always come back with errors. The status register has CERR (Collision Error) set and the transmit descriptor has LCAR (Loss of Carrier) set. To me this sounds like the controller believes something has gone wrong with the physical link, but this is virtual hardware (VirtualBox) so that seems dubious. Have you perhaps encountered this before or have suggestions on what might be going wrong?