- Port nfe(4) from OpenBSD.
commitae813fd8836fa42a81a5796980320b70bc975b7f
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 27 Aug 2006 03:28:21 +0000 (27 03:28 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sun, 27 Aug 2006 03:28:21 +0000 (27 03:28 +0000)
tree0932f68892dd2af0e47fa34cc7ec845224a0e6d9
parentaa368711bfba2c7a244426d252bf8ccc41f19678
- 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)
sys/dev/netif/nfe/Makefile [new file with mode: 0644]
sys/dev/netif/nfe/if_nfe.c [new file with mode: 0644]
sys/dev/netif/nfe/if_nfereg.h [new file with mode: 0644]
sys/dev/netif/nfe/if_nfevar.h [new file with mode: 0644]