Date: Mon, 08 Jan 2007 16:33:29 -0800 (PST) From: John Polstra <jdp@polstra.com> To: Bruce Evans <bde@zeta.org.au> Cc: Doug Barton <dougb@freebsd.org>, oleg@freebsd.org, net@freebsd.org Subject: Re: [Fwd: Re: bge Ierr rate increase from 5.3R -> 6.1R] Message-ID: <XFMail.20070108163329.jdp@polstra.com> In-Reply-To: <20061231061903.J47883@delplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 30-Dec-2006 Bruce Evans wrote: > More debugging showed that almost any of the reads of the phy in mii > cause an input error, The errors appear to be caused by the code in bge_miibus_{read,write}reg that clears and then restores the BGE_MIMODE_AUTOPOLL bit of the BGE_MI_MODE register. If you remove those chunks of code, the errors go away even when mii_tick is called periodically, and the chip performs quite well under heavy traffic load in both directions. I know that some of the *_MODE registers in these chips cause problems if they are read, so I tried putting a shadow copy of the register into the softc and doing only writes to the hardware register. But that didn't help in this case. I seem to recall having heard that Broadcom discourages the use of PHY autopolling for unspecified reasons. The Linux driver from Broadcom had code to support it, but it was never actually used for any devices. The current Linux driver uses autopolling only for the Altima chip that's present on the inexpensive Netgear GA302T card. I agree with you that we shouldn't need to call mii_tick periodically, except perhaps for a few very old variants of the Broadcom chip. John
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20070108163329.jdp>