- Port nfe(4) from OpenBSD.
- Use spare RX DMA map to recover from bus_dmamap_load_mbuf() failure in
nfe_newbuf_sda().
- In nfe_encap(), properly handle excessive fragmented frame with m_defrag(),
instead of descard it.
- Use additional serializer to protect jumbo buffer pool.
- In nfe_enacp(), set NFE_TX_VALID for each segments after all segment
are in place. Otherwise TX engine will be confused and never generates
TX interrupts, which triggers the unpleasant "watchdog timeout".
Diagnosed-and-fixed-by: dillon@
- Add polling(4) support. By: dillon@
Thank Jonathan Gray <jsg@openbsd.org> and
Damien Bergamini <damien.bergamini@free.fr> for their work on this driver.
Thank Matthew Dillon (dillon@) for diagnosing and fixing the serious bug
in TX path.
Tested-by: dillon@ corecode@(an early version)