nV News Forums

 
 

nV News Forums (http://www.nvnews.net/vbulletin/index.php)
-   General Linux (http://www.nvnews.net/vbulletin/forumdisplay.php?f=27)
-   -   Ethernet not working! (forcedeth) (http://www.nvnews.net/vbulletin/showthread.php?t=130438)

sazo 03-21-09 07:22 PM

Ethernet not working! (forcedeth)
 
Hi!

I use archlinux and gentoo linux. I used to use wireless, but now I have the possibility to use cable.

But for some reason I can't get it to work, not in arch, gentoo, knoppix (livecd) or ubuntu (livecd).

It always times out when trying to get an IP... And on dmesg I always get the same "forcedeth: eth0: no link during initialization" error.. :-(

ethtool
Code:

[sa@Feio ~]$ sudo ethtool eth0
Settings for eth0:
    Supported ports: [ MII ]
    Supported link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised auto-negotiation: Yes
    Speed: Unknown! (65535)
    Duplex: Unknown! (255)
    Port: MII
    PHYAD: 19
    Transceiver: external
    Auto-negotiation: on
    Supports Wake-on: g
    Wake-on: d
    Link detected: no

route
Code:

Kernel IP routing table
Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
192.168.0.1  *              255.255.255.0  U    0      0        0 eth0
default        192.168.0.1  0.0.0.0        UG    0      0        0 eth0

dmesg
Code:

forcedeth 0000:00:11.0: irq 758 for MSI/MSI-X
eth0: no link during initialization.

ifconfig
Code:

[sa@Feio ~]$ ifconfig -a
eth0  Link encap:Ethernet  HWaddr 00:1A:92:83:1D:8D 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:22 Base address:0x4000


hope you can help!

whig 03-24-09 12:10 AM

Re: Ethernet not working! (forcedeth)
 
You have a dhcp server on a router?

Or give yourself a static IP?

sazo 03-25-09 03:36 PM

Re: Ethernet not working! (forcedeth)
 
yes I have a dhcp server on the router. which is running fine on every machine, including this one if i switch to wireless.

I tried using static ip but the problem is exactly the same.

here is my lspci output:

lspci
Code:

sa@Feio ~]$ lspci
00:00.0 Host bridge: nVidia Corporation C55 Host Bridge (rev a2)
00:00.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:00.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:00.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:00.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:00.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a2)
00:00.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:00.7 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.3 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.4 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.5 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:01.6 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:02.0 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:02.1 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:02.2 RAM memory: nVidia Corporation C55 Memory Controller (rev a1)
00:03.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1)
00:06.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1)
00:07.0 PCI bridge: nVidia Corporation C55 PCI Express bridge (rev a1)
00:09.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)
00:0a.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)
00:0a.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)
00:0a.2 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:0b.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:0b.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:0d.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:0e.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)
00:0e.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)
00:0e.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:11.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
00:12.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
00:13.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:14.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:15.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:16.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:17.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:18.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
01:00.0 VGA compatible controller: nVidia Corporation G80 [GeForce 8800 GTS] (rev a2)
04:07.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
04:0b.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0)


whig 03-26-09 12:29 AM

Re: Ethernet not working! (forcedeth)
 
The lspci shows no ethernet controller
Is it disabled in bios settings? Is it working in Windows perhaps?

sazo 03-26-09 10:40 AM

Re: Ethernet not working! (forcedeth)
 
Quote:

Originally Posted by whig (Post 1968075)
The lspci shows no ethernet controller
Is it disabled in bios settings? Is it working in Windows perhaps?

Yes it's enabled in BIOS settings, and works like a charm in Vista... although I prefer using my other linux box to using windows.. :thumbdwn:

CptDondo 04-13-09 07:33 AM

Re: Ethernet not working! (forcedeth)
 
I've been fighting this for a while. There is something really badly broken with the MCP55 ethernet + linux. For some reason the PHY gets disabled, and then there's hell to pay trying to get it back.

See for example http://www.gossamer-threads.com/list...kernel/1046277

If you google around, you'll find lots of people with this problem.

I have several of the Asus M2N-SLI Deluxe boards; they're absolutely stable under load except for this ethernet issue. I have not found a reliable way to re-enable the NIC once the PHY is shut down.

It's a software issue but how does one force a reset?

CptDondo 04-13-09 08:11 AM

Re: Ethernet not working! (forcedeth)
 
HAH! Progress of sorts.

http://patchwork.kernel.org/patch/16212/

So now i can turn on and off the links.

ethtool -s eth1 autoneg off speed 10 duplex full

turns on the link, and gets me half-duplex, 10mb/sec. Not much, granted.

ethtool -s eth0 autoneg off speed 100 duplex full

causes the link to go up and down on about a 2 second cycle.

ethtool -s eth1 autoneg on

causes the link to drop.

So the problem is in the autoneg code. It's a driver issue. I've tried the patch; no joy but I have yet to reboot the system.

CptDondo 04-15-09 08:56 AM

Re: Ethernet not working! (forcedeth)
 
I've been reading the forcedeth.c code.

So far I've established that it does recognize the Marvell PHY. AFAIK, the PHY on the board is 88E1116, so that much is right. OK, not much progress.

In nv_probe, there are some lines that should turn on the PHY. I stuck some printk in there to see what's happening. Turns out nothing is happening..... powerstate remains 0? Does this mean that the power is already on? Or that we're reading/writing the wrong register?

if (id->driver_data & DEV_HAS_POWER_CNTRL) {

/* take phy and nic out of low power mode */
powerstate = readl(base + NvRegPowerState2);
printk(KERN_INFO "Turning on power: 0x%04x.\n",powerstate);
powerstate &= ~NVREG_POWERSTATE2_POWERUP_MASK;
if ((id->device == PCI_DEVICE_ID_NVIDIA_NVENET_12 ||
id->device == PCI_DEVICE_ID_NVIDIA_NVENET_13) &&
pci_dev->revision >= 0xA3)
powerstate |= NVREG_POWERSTATE2_POWERUP_REV_A3;
printk(KERN_INFO "Writing powerstate: 0x%04x.\n",powerstate);
writel(powerstate, base + NvRegPowerState2);
powerstate = readl(base + NvRegPowerState2);
printk(KERN_INFO "Powerstate 0x%04x.\n",powerstate);
}

[ 3936.277196] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.
[ 3936.277223] forcedeth 0000:00:08.0: PCI INT A -> Link[APCH] -> GSI 22 (level, low) -> IRQ 22
[ 3936.277230] forcedeth 0000:00:08.0: setting latency timer to 64
[ 3936.277331] nv_probe: set workaround bit for reversed mac addr
[ 3936.277337] Turning on power: 0x0000.
[ 3936.277339] Writing powerstate: 0x0000.
[ 3936.277343] Powerstate 0x0000.
[ 3936.278352] 0000:00:08.0: open: Found PHY 5040:0003 at address 19.
[ 3936.796061] 0000:00:08.0: phy reset
[ 3937.316809] forcedeth 0000:00:08.0: ifname eth0, PHY OUI 0x5043 @ 19, addr 00:1e:8c:6f:a5:27
[ 3937.316816] forcedeth 0000:00:08.0: highdma csum vlan pwrctl mgmt gbit lnktim msi desc-v3
[ 3937.317113] forcedeth 0000:00:09.0: PCI INT A -> Link[AMC1] -> GSI 20 (level, low) -> IRQ 20
[ 3937.317120] forcedeth 0000:00:09.0: setting latency timer to 64
[ 3937.317200] nv_probe: set workaround bit for reversed mac addr
[ 3937.317206] Turning on power: 0x0000.
[ 3937.317209] Writing powerstate: 0x0000.
[ 3937.317213] Powerstate 0x0000.
[ 3937.318317] 0000:00:09.0: open: Found PHY 5040:0003 at address 19.
[ 3937.379044] forcedeth 0000:00:08.0: irq 29 for MSI/MSI-X
[ 3937.379236] eth0: no link during initialization.
[ 3937.836062] 0000:00:09.0: phy reset
[ 3938.356857] forcedeth 0000:00:09.0: ifname eth1, PHY OUI 0x5043 @ 19, addr 00:1e:8c:6f:be:40
[ 3938.356864] forcedeth 0000:00:09.0: highdma csum vlan pwrctl mgmt gbit lnktim msi desc-v3
[ 3938.417202] forcedeth 0000:00:09.0: irq 30 for MSI/MSI-X
[ 3938.417396] eth1: no link during initialization.

(this is getting more urgent; I rebooted the machine and lost both network ports. Instead of dual-gigabit I'm running off an ancient PCI card. I'm willing to test/build/debug, but I need some input from those who understand the forcedeth code....)

dkjkj 04-19-09 04:34 PM

Re: Ethernet not working! (forcedeth)
 
Just to add on OpenSuse 11.0 I have a problem what the link starts flapping at random times. It has noting to do with the connection. Have tried to change port on switch.
Hardware Supermicro server nVidia MCP55 bridge rev a3. Forcedeth ver 0.61 from Open Suse.

Harri 04-23-09 08:50 AM

Re: Ethernet not working! (forcedeth)
 
I got the same problem (no link at init) on a shiny new Acer Revo (i.e. the Ion platform). Sometimes it gets a link, but usually it doesn't. Too bad.

Sasha_A 06-14-09 10:38 PM

Re: Ethernet not working! (forcedeth)
 
Code:

alias eth0 forcedeth
options forcedeth optimization_mode=2 msi=1 dma_64bit=1 phy_power_down=0

I have a DHCP server running for the home LAN here, and as of kernel release 2.6.29 there were some changes to the forcedeth driver code, which powered down the NIC during reboots/power off. It caused havoc for many, because the NIC did not power up at next boot.
I couldn't get an IP address without repeatedly restarting the network a bunch of times, and never got an IP during boot, it just hung.

The driver regression was reverted in 2.6.29.3 or .4 but still the default behavior seemed to be to remain powered off.

What I posted above is from my 'forcedeth' file in /etc/modprobe.d folder.
Notice the option "phy_power_down" option! It makes the NIC stay powered up during reboots etc.. Voila! Now it works perfect again, getting its IP from DHCP in a blink of an eye during boot.

You can use either the 'modinfo' command, or look at the bottom of the forcedeth.c sourcecode, for all the parameters you can pass to the driver.

Good luck; hope this helps.

Sasha

paix 06-19-09 04:42 AM

Re: Ethernet not working! (forcedeth)
 
Quote:

Originally Posted by Sasha_A (Post 2029478)
Code:

options forcedeth optimization_mode=2

Hi,

what means optimization_mode=2 ?

I've looked to the sources (2.6.18, 2.6.24, 2.6.29) and found next:

Code:

/*
 * Optimization can be either throuput mode or cpu mode
 *
 * Throughput Mode: Every tx and rx packet will generate an interrupt.
 * CPU Mode: Interrupts are controlled by a timer.
 */
static int optimization_mode = NV_OPTIMIZATION_MODE_THROUGHPUT;

module_param(optimization_mode, int, 0);
MODULE_PARM_DESC(optimization_mode, "In throughput mode (0), every tx & rx packet will generate an interrupt. In CPU mode (1), interrupts are controlled by a timer.");

i.e by default optimization_mode is "0" (throughput mode), and possible change to "1" (CPU mode)


All times are GMT -5. The time now is 07:58 AM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.