cvs commit: src/sys/dev/bge if_bge.c

Bill Paul wpaul at FreeBSD.org
Fri Jul 11 01:19:54 PDT 2003


wpaul       2003/07/11 01:19:52 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/bge          if_bge.c 
  Log:
  Squelch spurious "gigabit link up" messages generated on some fiber NICs
  (mainly the 3Com 3c996B/BCM5701).
  
  For some reason that I don't fully understand, the 5701 signals PCS
  encoding errors as though they were link change events, i.e. the 'link
  state changed' bit in the status word of the status block is updated
  and an interrupt is generated. This would cause the bge_tick() function
  to be invoked and a "gigabit link up" message to be printed on the console.
  
  To avoid this, the interrupt handler now checks the MAC status register
  when a link change interrupt is triggered, and it will only call the
  bge_tick() function if the 'PCS encoding error detected' bit is clear.
  (This change should have no effect on copper NICs since this bit can
  only ever be set in TBI mode. I do not know how it affects 5704 NICs
  with a BCM8002 SERDES PHY.)
  
  Special thanks to: Sherry Rogers at UCB for allowing me access to one
  of their traffic monitor boxes so I could diagnose this problem.
  
  Revision  Changes    Path
  1.43      +19 -4     src/sys/dev/bge/if_bge.c


More information about the cvs-all mailing list