cvs commit: src/sys/dev/mii brgphy.c

Jung-uk Kim jkim at
Tue Mar 20 20:48:15 UTC 2007

On Tuesday 20 March 2007 03:28 pm, John Polstra wrote:
> Jung-uk Kim wrote:
> > jkim        2007-03-19 23:17:39 UTC
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/dev/mii          brgphy.c
> >   Log:
> >   Revert couple of changes from 1.51 and 1.52.  Reading link
> > status with BMSR is okay for most of the chipsets but BCM5701 PHY
> > does not seem to like it.
> I'm not sure what you mean by "does not seem to like it", but did
> you try reading the BMSR twice?  The link status bit is a latching
> bit.  If you read the register once and it shows no link status,
> that only means that at some point since you previously read the
> register, link was lost.  It says nothing about the current status
> of link.  The only way to find out the current status of link is to
> read the register twice. The first read clears the latch, and the
> second read reports the current status.  This is not specific to
> the Broadcom chips.  It is standard across all PHYs.

Believe me, I know that. ;-)  I was experimenting on brgphy.c some 
time ago and discovered all of my Broadcom PHYs are not 'standard' 
PHYs (in your definition), i.e., BMSR's link status bit is not 
latching.  That is why I just used BMSR instead of aux status 
register to reduce register access.  This commit actually reverts 
them to the old (but safer) behavior because BCM5701 PHY 'seems' to 
be more standard.  Unfortunately we don't have any documents to 
verify anything ATM.  We are flying blind. :-(

Jung-uk Kim

More information about the cvs-src mailing list