NetBSD Problem Report #41009

From www@NetBSD.org  Fri Mar 13 21:50:31 2009
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 4B3BF63C1EB
	for <gnats-bugs@gnats.netbsd.org>; Fri, 13 Mar 2009 21:50:31 +0000 (UTC)
Message-Id: <20090313215031.191FB63C1DA@www.NetBSD.org>
Date: Fri, 13 Mar 2009 21:50:30 +0000 (UTC)
From: uwe_debbug@arcor.de
Reply-To: uwe_debbug@arcor.de
To: gnats-bugs@NetBSD.org
Subject: re-driver for recent RealTek 8168B/8111B PCIe GB-eth devices broken
X-Send-Pr-Version: www-1.0

>Number:         41009
>Category:       kern
>Synopsis:       re-driver for recent RealTek 8168B/8111B PCIe GB-eth devices broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    tsutsui
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 13 21:55:01 +0000 2009
>Closed-Date:    Tue Mar 24 21:17:30 +0000 2009
>Last-Modified:  Tue Mar 24 21:17:30 +0000 2009
>Originator:     Uwe Krüger
>Release:        NetBSD 5.0_RC2 (snapshot 2009/03/11)
>Organization:
>Environment:
NetBSD atom 5.0_RC2 NetBSD 5.0_RC2 (GENERIC) #0: Fri Mar 13 21:34:43 CET 2009  root@atom:/usr/src/sys/arch/i386/compile/GENERIC i386
>Description:
The re-driver for these wired ethernet devices (used on many Intel-Atom mainboards) does not work reliably, i.e. sometimes with luck the device does work but in approx. 80% of all boot attempts you get an error message like the following:

re0: reset never completed!
re0: PHY write reg 0 <- 8400 failed
re0: PHY write reg 1f <- 1 failed
re0: PHY write reg 9 <- 273a failed
re0: PHY write reg e <- 7bfb failed
re0: PHY write reg 1b <- 841e failed
re0: PHY write reg 1f <- 2 failed
re0: PHY write reg 1 <- 90d0 failed
re0: PHY write reg 1f <- 0 failed
re0: PHY write reg e <- 0 failed
re0: PHY write reg 4 <- 1e1 failed
re0: PHY write reg 9 <- 300 failed
re0: PHY write reg 0 <- 9200 failed
re0: PHY write reg 9 <- 1200 failed
re0: PHY write reg 0 <- 1340 failed

>How-To-Repeat:
Try to use the ethernet device e.g. on an eeepc-box. As said above are rare cases when the device works but in most cases the error occurs.
>Fix:
Based on the code of OpenBSD and FreeBSD I've created the following path that fixes the problem:

--- nb.orig/usr/src/sys/dev/ic/rtl8169.c        2008-08-23 16:27:45.000000000 +0200
+++ nb/usr/src/sys/dev/ic/rtl8169.c     2009-03-13 19:55:46.000000000 +0100
@@ -392,7 +392,8 @@
         * NB: Realtek-supplied Linux driver does this only for
         * MCFG_METHOD_2, which corresponds to sc->sc_rev == 3.
         */
-       if (1) /* XXX check softc flag for 8169s version */
+       if (sc->sc_rev && sc->sc_rev <= 5 )
+                /* XXX check softc flag for 8169s version */
                CSR_WRITE_1(sc, RTK_LDPS, 1);

 }
@@ -567,9 +568,6 @@
        struct ifnet *ifp;
        int error = 0, i, addr_len;

-       /* Reset the adapter. */
-       re_reset(sc);
-
        if ((sc->sc_quirk & RTKQ_8139CPLUS) == 0) {
                uint32_t hwrev;

@@ -631,6 +629,9 @@
                sc->re_ldata.re_tx_desc_cnt = RE_TX_DESC_CNT_8139;
        }

+       /* Reset the adapter. */
+       re_reset(sc);
+
        if (sc->sc_rev == 24 || sc->sc_rev == 25) {
                /*
                 * Get station address from ID registers.

>Release-Note:

>Audit-Trail:
From: Soren Jacobsen <snj@pobox.com>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/41009: re-driver for recent RealTek 8168B/8111B PCIe GB-eth
 devices broken
Date: Sun, 15 Mar 2009 11:52:54 -0700

 This patch fixes my 8111C.  Previously, it never worked on reboot, and
 sometimes didn't work on cold boot.  Haven't had any problems the last
 few days.

From: Izumi Tsutsui <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41009 CVS commit: src/sys/dev/ic
Date: Fri, 20 Mar 2009 06:31:31 +0000

 Module Name:	src
 Committed By:	tsutsui
 Date:		Fri Mar 20 06:31:31 UTC 2009

 Modified Files:
 	src/sys/dev/ic: rtl8169.c rtl81x9var.h

 Log Message:
 Access LDPS register in re_reset() only on 8169S single chip variants.
 From OpenBSD and FreeBSD drivers via PR kern/41009, and
 Realtek-supplied FreeBSD driver.


 To generate a diff of this commit:
 cvs rdiff -u -r1.107 -r1.108 src/sys/dev/ic/rtl8169.c
 cvs rdiff -u -r1.41 -r1.42 src/sys/dev/ic/rtl81x9var.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Responsible-Changed-From-To: kern-bug-people->tsutsui
Responsible-Changed-By: tsutsui@NetBSD.org
Responsible-Changed-When: Fri, 20 Mar 2009 17:14:21 +0900
Responsible-Changed-Why:


State-Changed-From-To: open->feedback
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Fri, 20 Mar 2009 17:14:21 +0900
State-Changed-Why:
Could you check committed version?


From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gnats-bugs@NetBSD.org
Cc: gnats-admin@NetBSD.org, tsutsui@ceres.dti.ne.jp
Subject: Re: kern/41009 (re-driver for recent RealTek 8168B/8111B PCIe GB-eth
	 devices broken)
Date: Sun, 22 Mar 2009 05:28:35 +0900

 I've put compiled RC3 kernels with fixes for PR kern/40995 and kern/41009:
 ftp://ftp.NetBSD.org/pub/NetBSD/misc/tsutsui/5.0_RC3/netbsd-amd64-5.0_RC3-20090321.gz
 ftp://ftp.NetBSD.org/pub/NetBSD/misc/tsutsui/5.0_RC3/netbsd-i386-5.0_RC3-20090321.gz

 ---
 Izumi Tsutsui

From: =?ISO-8859-1?Q?Uwe_Kr=FCger?= <uwe_debbug@arcor.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/41009 (re-driver for recent RealTek 8168B/8111B PCIe GB-eth
 devices broken)
Date: Mon, 23 Mar 2009 20:03:34 +0100

 I've checked the committed version and tested the compiled kernel images 
 on an eeepc-box (i386) and an MSI IM-945GC/Atom330-board (amd64). 
 Everything works fine, now!

State-Changed-From-To: feedback->pending-pullups
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Tue, 24 Mar 2009 20:23:28 +0900
State-Changed-Why:
ticket #596


From: Soren Jacobsen <snj@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41009 CVS commit: [netbsd-5] src/sys/dev/ic
Date: Tue, 24 Mar 2009 20:38:38 +0000

 Module Name:	src
 Committed By:	snj
 Date:		Tue Mar 24 20:38:38 UTC 2009

 Modified Files:
 	src/sys/dev/ic [netbsd-5]: rtl8169.c rtl81x9var.h

 Log Message:
 Pull up following revision(s) (requested by tsutsui in ticket #596):
 	sys/dev/ic/rtl8169.c: revision 1.108
 	sys/dev/ic/rtl81x9var.h: revision 1.42
 Access LDPS register in re_reset() only on 8169S single chip variants.
 From OpenBSD and FreeBSD drivers via PR kern/41009, and
 Realtek-supplied FreeBSD driver.


 To generate a diff of this commit:
 cvs rdiff -u -r1.105 -r1.105.4.1 src/sys/dev/ic/rtl8169.c
 cvs rdiff -u -r1.41 -r1.41.12.1 src/sys/dev/ic/rtl81x9var.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: pending-pullups->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Tue, 24 Mar 2009 21:17:30 +0000
State-Changed-Why:
Fixed, thanks


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.