Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 232857 - Intel D945GCLF NIC Failure w/ gentoo-sources-2.6.26
Summary: Intel D945GCLF NIC Failure w/ gentoo-sources-2.6.26
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL: http://bugzilla.kernel.org/show_bug.c...
Whiteboard: upstream
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-24 17:37 UTC by Alex Howells
Modified: 2008-11-20 15:34 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
kernel configuration, gentoo-sources-2.6.26, amd64 (config-2.6.26-amd64.txt,43.68 KB, text/plain)
2008-07-24 17:39 UTC, Alex Howells
Details
boot log (bootsequence-2.6.26-rc6-x86.txt,28.20 KB, text/plain)
2008-07-24 17:44 UTC, Alex Howells
Details
failing boot sequence, amd64 (bootsequence-2.6.26-amd64.txt,26.10 KB, text/plain)
2008-07-24 17:50 UTC, Alex Howells
Details
config-2.6.26-rc6 which seems to work just dandy. git-sources (config-2.6.26-rc6-x86.txt,42.33 KB, text/plain)
2008-07-24 17:52 UTC, Alex Howells
Details
latest amd64 stable kernel, configuration (config-2.6.25-r7-amd64.txt,42.03 KB, text/plain)
2008-07-24 18:10 UTC, Alex Howells
Details
latest amd64 stable kernel, boot sequence (bootsequence-2.6.25-r7-amd64.txt,25.63 KB, text/plain)
2008-07-24 18:10 UTC, Alex Howells
Details
gentoo-sources-2.6.26 x86 kernel config (config-2.6.26-x86.txt,43.28 KB, text/plain)
2008-07-24 18:38 UTC, Alex Howells
Details
gentoo-sources-2.6.26 x86 boot sequence (bootsequence-2.6.26-x86.txt,28.40 KB, text/plain)
2008-07-24 18:39 UTC, Alex Howells
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Howells 2008-07-24 17:37:40 UTC
Possibly related to:

    http://bugs.gentoo.org/show_bug.cgi?id=229315
    http://lkml.org/lkml/2008/4/17/298

We're seeing a but with Intel Atom (D945GCLF) systems with R8102-E NICs (driver is r8169) where via PXE boot they will grab kernel just fine from TFTP server, however when they come to DHCP lease to mount NFS root filesystem, it fails.

    [   13.792600] r8169: eth0: link up
    [   14.801649] Sending DHCP requests ...<7>eth0: no IPv6 routers present
    [   30.940638] ... timed out!
    [  101.922419] IP-Config: Retrying forever (NFS root)...

Interestingly enough an older git-sources from ~5-6 weeks ago compiled for x86 works just dandy, with almost identical configuration (32bit vs. 64bit only).  About to proceed and test stable kernel (2.6.25-r7) and will build a new gentoo-sources ~arch kernel for x86 and see if that works ~6 weeks on now .26 is out!

Any thoughts?  I'll attach boot log, kernel config and other bits in a moment.

Alex
Comment 1 Alex Howells 2008-07-24 17:39:31 UTC
Created attachment 161288 [details]
kernel configuration, gentoo-sources-2.6.26, amd64

Kernel configuration which fails.
Comment 2 Alex Howells 2008-07-24 17:44:24 UTC
Created attachment 161290 [details]
boot log

boot sequence for working 2.6.26-rc6 kernel, built a few weeks ago
Comment 3 Alex Howells 2008-07-24 17:50:32 UTC
Created attachment 161292 [details]
failing boot sequence, amd64

Boot sequence for kernel config (amd64) attached earlier. Fails.
Comment 4 Alex Howells 2008-07-24 17:52:35 UTC
Created attachment 161294 [details]
config-2.6.26-rc6 which seems to work just dandy. git-sources
Comment 5 Alex Howells 2008-07-24 17:56:46 UTC
(In reply to comment #4)
> Created an attachment (id=161294) [edit]
> config-2.6.26-rc6 which seems to work just dandy. git-sources

This is x86 though and I'm trying to fix amd64 to work for me :)
Comment 6 Alex Howells 2008-07-24 18:10:09 UTC
Created attachment 161299 [details]
latest amd64 stable kernel, configuration
Comment 7 Alex Howells 2008-07-24 18:10:36 UTC
Created attachment 161301 [details]
latest amd64 stable kernel, boot sequence

This also fails :(
Comment 8 Alex Howells 2008-07-24 18:38:41 UTC
Created attachment 161306 [details]
gentoo-sources-2.6.26 x86 kernel config

Just to confirm this wasn't git-sources related, this is a x86 kernel config for the latest available gentoo-sources and associated boot sequence log.

Works just fine and dandy. Something with amd64 is "fscked" :(
Comment 9 Alex Howells 2008-07-24 18:39:18 UTC
Created attachment 161307 [details]
gentoo-sources-2.6.26 x86 boot sequence

This is what I *expect* to happen!
Comment 10 Alex Howells 2008-07-24 18:42:03 UTC
Oh, also worth mentioning I've tried vanilla kernel sources (2.6.25 and 2.6.26) too and I get identical problems; on amd64 it fails and on x86 it works.  Therefore I surmise this was not introduced by a gentoo-sources patch, and will probably need to be raised as a bug with upstream at some point?

Not posting configs and boot logs for vanilla as its pointless :)
Comment 11 Alex Howells 2008-07-24 20:17:13 UTC
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.25.y.git;a=commit;h=fa5c104c2465470dc316bf211257f9e67e0ba602
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.25.y.git;a=commit;h=05d5b6cf37de1a9ceb873b770de113861a5b3df9

Tried both of these plus a more general one from Ubuntu:

--- linux-2.6.24.orig/drivers/net/r8169.c
+++ linux-2.6.24/drivers/net/r8169.c
@@ -1139,6 +1139,10 @@
 		{ 0x7cf00000, 0x34000000,	RTL_GIGA_MAC_VER_13 },
 		{ 0x7cf00000, 0x34200000,	RTL_GIGA_MAC_VER_16 },
 		{ 0x7c800000, 0x34000000,	RTL_GIGA_MAC_VER_16 },
+		/* 8102EL */
+		{ 0x7c800000, 0x24800000,	RTL_GIGA_MAC_VER_16 },
+		/* 8102E */
+		{ 0x7c800000, 0x34800000,	RTL_GIGA_MAC_VER_16 },
 		/* FIXME: where did these entries come from ? -- FR */
 		{ 0xfc800000, 0x38800000,	RTL_GIGA_MAC_VER_15 },
 		{ 0xfc800000, 0x30800000,	RTL_GIGA_MAC_VER_14 },
@@ -1299,6 +1303,21 @@
 	rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init));
 }
 
+static void rtl8101_hw_phy_config(void __iomem *ioaddr)
+{
+	struct phy_reg phy_reg_init[] = {
+		{ 0x1f, 0x0000 },
+		{ 0x11, mdio_read(ioaddr,0x11) | 0x1000 },
+		{ 0x19, mdio_read(ioaddr,0x19) | 0x2000 },
+		{ 0x1f, 0x0003 },
+		{ 0x08, 0x441D },
+		{ 0x01, 0x9100 },
+		{ 0x1f, 0x0000 }
+	};
+
+	rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init));
+}
+
 static void rtl_hw_phy_config(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
@@ -1316,6 +1335,9 @@
 	case RTL_GIGA_MAC_VER_04:
 		rtl8169sb_hw_phy_config(ioaddr);
 		break;
+	case RTL_GIGA_MAC_VER_13:
+	case RTL_GIGA_MAC_VER_16:
+		rtl8101_hw_phy_config(ioaddr);
 	case RTL_GIGA_MAC_VER_18:
 		rtl8168cp_hw_phy_config(ioaddr);
 		break;
@@ -1438,8 +1460,11 @@
 
 	rtl_hw_phy_config(dev);
 
-	dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
-	RTL_W8(0x82, 0x01);
+	if (tp->mac_version != RTL_GIGA_MAC_VER_13 && tp->mac_version != RTL_GIGA_MAC_VER_16)
+	{
+		dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
+		RTL_W8(0x82, 0x01);
+	}
 
 	pci_write_config_byte(tp->pci_dev, PCI_LATENCY_TIMER, 0x40);
 
@@ -1617,6 +1642,7 @@
 	SET_NETDEV_DEV(dev, &pdev->dev);
 	tp = netdev_priv(dev);
 	tp->dev = dev;
+	tp->pci_dev = pdev;
 	tp->msg_enable = netif_msg_init(debug.msg_enable, R8169_MSG_DEFAULT);
 
 	/* enable device (incl. PCI PM wakeup and hotplug setup) */
@@ -1776,8 +1802,14 @@
 	dev->poll_controller = rtl8169_netpoll;
 #endif
 
+	/* Ubuntu temporary workaround for bug #76489, disable
+	 * NETIF_F_TSO by default for RTL8111/8168B chipsets.
+	 * People can re-enable if required */
+	if (tp->mac_version == RTL_GIGA_MAC_VER_11
+				|| tp->mac_version == RTL_GIGA_MAC_VER_12)
+		dev->features &= ~NETIF_F_TSO;
+
 	tp->intr_mask = 0xffff;
-	tp->pci_dev = pdev;
 	tp->mmio_addr = ioaddr;
 	tp->align = cfg->align;
 	tp->hw_start = cfg->hw_start;


No fix so far :)  They all apply "fairly" cleanly to 2.6.26 and don't cause any compile/boot issues but the DHCP issue remains with amd64 and not x86.
Comment 12 Alex Howells 2008-07-24 21:27:32 UTC
Bug filed upstream at request of dsd.
Comment 13 Mike Pagano gentoo-dev 2008-08-17 18:38:25 UTC
Thanks, Alex, I've added the kernel alias to the upstream bug for tracking.  Hopefully, those patches work for you and we'll have something to backport for .26.