CVSROOT: /cvs Module name: src Changes by: rob...@cvs.openbsd.org 2011/02/15 12:49:47
Modified files: sys/dev/pci : if_bge.c if_bgereg.h Log message: Add workaround for BCM5906 A0/1/2 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. >From FreeBSD; ok miod@; ok kettenis@