cvs commit: src/sys/dev/nfe if_nfe.c if_nfereg.h if_nfevar.h

Pyun YongHyeon yongari at FreeBSD.org
Tue Jun 12 02:16:03 UTC 2007


yongari     2007-06-12 02:16:02 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/nfe          if_nfe.c if_nfereg.h if_nfevar.h 
  Log:
  Bring overhauled nfe(4) into tree.
  
  o s/printf/device_printf/g
  o Nuke OpenBSDism.
  o Nuke NetBSD/OpenBSD specific DMA sync operations.(we don't have a way
     to sync a single descriptor within a DMA map.)
  o Remove recursive mutex.
  o bus_dma(9) clean up.
  o 40bit DMA address support.
  o Add protection for Rx map load failure.
  o Fix a long standing bug for watchdog timeout. [1]
  o Add additional protections, missing Tx completion interrupt, losing
     start Tx command, for watchdog timeout.
  o Switch to taskqueue(9) API to handle interrupts.
  o Use our own timer for watchdog instead of if_watchdog/if_timer
     interface.
  o Advertise VLAN header length/capability correctly to upper layer.
  o Remove excessive kernel stack consumption in nfe_encap().
  o Handle highly fragmented mbuf chains correctly.
  o Enable etherenet address reprogramming with ifconfig(8).
  o Add ALTQ/TSO, MSI/MSIX support.
  o Increased Rx ring to 256 descriptors from 128.
  o Align Tx/Rx descriptor ring on sizeof(struct nfe_desc64) boundary.
  o Remove alignment restrictions on Tx/Rx buffers.
  o Rewritten jumbo frame support code.
  o Add support for hardware assistend VLAN tag insertion/stripping.
  o Add support for Tx/Rx flow control based on patches from Peer Chen. [2]
  o Add a routine that detects whether ethernet address swap routines is
     required. [3]
  o Add a workaround that take MAC/PHY out of power down mode.
  o Add suspend/resume support.
  o style(9) and code clean up.
  
  Special thanks to Shigeaki Tagashira, the original porter of nfe(4),
  who submitted lots of patches, performed uncountable number of
  regression tests and maintained nfe(4) for a long time. Without his
  enthusiastic help and support I could never have completed this
  overhauling task.
  
  The only weak point of nfe(4) compared to nve(4) is instability of
  manual half-duplex media selection on certain hardwares(auto sensing
  media type should work for all cases, though). This was a long
  standing bug of nfe(4) and I still have no idea why it doesn't work
  on some hardwares.
  
  Obtained from:  OpenBSD [1]
  Submitted by:   Peer Chen < pchen at nvidia dot com > [2], [3]
  Reviewed by:    Shigeaki Tagashira < shigeaki AT se DOT hiroshima-u DOT ac DOT jp >
  Tested by:      Shigeaki Tagashira, current
  Discussed with: current
  Silence from:   obrien
  
  Revision  Changes     Path
  1.17      +1992 -874  src/sys/dev/nfe/if_nfe.c
  1.8       +83 -17     src/sys/dev/nfe/if_nfereg.h
  1.4       +65 -55     src/sys/dev/nfe/if_nfevar.h


More information about the cvs-src mailing list