summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_fxpvar.h
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1997-09-29 11:27:43 +0000
committerdg <dg@FreeBSD.org>1997-09-29 11:27:43 +0000
commit179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5 (patch)
treed4cb28bdbf820d7e55e013a6fbaf2e3a47277fa9 /sys/pci/if_fxpvar.h
parentc04fd86ec9ea4174b8f4e210a854dd3291f0c442 (diff)
downloadFreeBSD-src-179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5.zip
FreeBSD-src-179a5ad3650635bf5d0cfaf2f6ba732850dcb9b5.tar.gz
Work around a bug in the 82557 NIC where the receiver will lock up
if it is in 10Mbps mode and gets certain types of garbage prior to the packet header. The work-around involves reprogramming the multicast filter if nothing is received in some number of seconds (currently set at 15). As a side effect, implemented complete support for multicasting rather than the previous 'receive all multicasts' hack, since we now have the ability to program the filter table. Fixed a serious bug which crept in with the timeout() changes; the cookie was only saved on the first timeout() call in fxp_init() and wasn't updated in the most common place in fxp_stats_update() when the timeout was rescheduled. This bug would have resulted in an eventual panic if fxp_stop() was called (which happens when any interface flags are changed, for example). Fixed a bug in Alpha support that would have caused the TxCB descriptor chain to span a page boundry, causing serious problems if the pages didn't happen to be contiguous. Removed some gratuitous bit masking that was left over from an older implementation. Fixed a bug where too much was copied from the configuration template, spilling over into memory that followed it. Fixed handling of if_timer...it was cleared too early in some cases.
Diffstat (limited to 'sys/pci/if_fxpvar.h')
-rw-r--r--sys/pci/if_fxpvar.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/pci/if_fxpvar.h b/sys/pci/if_fxpvar.h
index 81789d6..b362d13 100644
--- a/sys/pci/if_fxpvar.h
+++ b/sys/pci/if_fxpvar.h
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_fxpvar.h,v 1.1 1997/09/05 10:23:58 davidg Exp $
+ * $Id: if_fxpvar.h,v 1.2 1997/09/21 22:02:09 gibbs Exp $
*/
/*
@@ -59,6 +59,10 @@ struct fxp_softc {
int phy_primary_addr; /* address of primary PHY */
int phy_primary_device; /* device type of primary PHY */
int phy_10Mbps_only; /* PHY is 10Mbps-only device */
+ int rx_idle_secs; /* # of seconds RX has been idle */
+ int need_mcsetup; /* multicast filter needs programming */
+ int all_mcasts; /* receive all multicasts */
+ struct fxp_cb_mcs *mcsp; /* Pointer to mcast setup descriptor */
};
/* Macros to ease CSR access. */
OpenPOWER on IntegriCloud