From owner-freebsd-bugs@FreeBSD.ORG Sun Nov 25 09:40:53 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6087B16A41A; Sun, 25 Nov 2007 09:40:53 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 4FC2113C43E; Sun, 25 Nov 2007 09:40:53 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from freefall.freebsd.org (benno@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id lAP9eqFI055018; Sun, 25 Nov 2007 09:40:52 GMT (envelope-from benno@freefall.freebsd.org) Received: (from benno@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id lAP9eqbF055014; Sun, 25 Nov 2007 09:40:52 GMT (envelope-from benno) Date: Sun, 25 Nov 2007 09:40:52 GMT Message-Id: <200711250940.lAP9eqbF055014@freefall.freebsd.org> To: supportsobaka@mail.ru, benno@FreeBSD.org, freebsd-bugs@FreeBSD.org, benno@FreeBSD.org From: benno@FreeBSD.org Cc: Subject: Re: kern/118238: [bce] bce driver shows "no carrier" on Intel SBXD132 blade (based on IBM HS21) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Nov 2007 09:40:53 -0000 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