kern/118238: [bce] bce driver shows "no carrier" on Intel SBXD132 blade (based on IBM HS21)

benno at FreeBSD.org benno at FreeBSD.org
Sun Nov 25 01:40:53 PST 2007


Synopsis: [bce] bce driver shows "no carrier" on Intel SBXD132 blade (based on IBM HS21)

State-Changed-From-To: open->analyzed
State-Changed-By: benno
State-Changed-When: Sun Nov 25 09:33:28 UTC 2007
State-Changed-Why: 
I have a patch for this but it needs tidying up before it gets put in to the
tree.

Essentially the problem here is a conjunction between some strangeness on
Broadcom's part and mishandling of same by brgphy.  The PHY in use here uses
non-standard registers to indicate link state.  brgphy will query them, but
it waits for the standard registers to indicate state first, which appears to
be the wrong thing to do.

Commenting out some lines in brgphy (those to do with the brgphy_status_exit
goto label) bandaids the problem but I'd like to tidy up the logic a bit
more.


Responsible-Changed-From-To: freebsd-bugs->benno
Responsible-Changed-By: benno
Responsible-Changed-When: Sun Nov 25 09:33:28 UTC 2007
Responsible-Changed-Why: 
I have a patch for brgphy that fixes this but it needs work before it goes in
to the tree.

This problem results fro the conjunction of some oddness in Broadcom's silicon
and mishandling of said oddness by brgphy.  The PHY on these parts uses
non-standard registers to report link status but brgphy waits until the
standard registers come ready before testing them which appears to be a bad
idea.

Commenting out the "goto brgphy_status_exit;" line in brgphy cuts around the
problem but I'd like to fix the actual logic.

http://www.freebsd.org/cgi/query-pr.cgi?pr=118238


More information about the freebsd-bugs mailing list