Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Nov 2010 00:13:22 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h
Message-ID:  <201011030013.oA30DmVa033635@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2010-11-03 00:13:22 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/dev/bge          if_bge.c if_bgereg.h 
  Log:
  SVN rev 214715 on 2010-11-03 00:13:22Z by yongari
  
  MFC r214087,214219,214251,214292:
  r214087:
    Add workaround for BCM5906 controller silicon bug. If device
    receive two back-to-back send BDs with less than or equal to 8
    total bytes then the device may hang. The two back-to-back send
    BDs must be in the same frame for this failure to occur.
    Thanks to davidch for detailed errata information.
  
    Reviewed by:  davidch
  
  r214219:
    Add workaround for BCM5906 A1 controller silicon bug. When
    auto-negotiation results in half-duplex operation, excess collision
    on the ethernet link may cause internal chip delays that may result
    in subsequent valid frames being dropped due to insufficient
    receive buffer resources. The workaround is to choose de-pipeline
    method as a flow control decision for SDI. De-pipeline method
    allows only 1 data in TxMbuf at a time such that a request to RDMA
    from SDI is made only when TxMbuf is empty. Thanks for david for
    providing detailed errata information.
  
  r214251:
    Apply the same workaround for SDI flow control used on BCM5906 A1
    to BCM6906 A0/A2. This should fix a long standing BCM5906 A2 lockup
    issues. Data sheet explicitly mentions BCM5906 A0, A1 and A2 use
    de-pipelined mode on these revisions.
    Special thanks to Buganini who tried all combinations of
    experimental patches for more than 10 days.
  
    Tested by:    Buganini <buganini <> gmail dot com >
  
  r214292:
    Use bge_chipid to compare controller ids. r214251 incorrectly used
    bge_chiprev.
  
    Reported by:  Buganini <buganini <> gmail dot com >
  
  Revision    Changes    Path
  1.198.2.59  +53 -2     src/sys/dev/bge/if_bge.c
  1.73.2.29   +3 -0      src/sys/dev/bge/if_bgereg.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011030013.oA30DmVa033635>