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:
(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.