Bug 56181 - Wake On Lan Fails for E100
Summary: Wake On Lan Fails for E100
Status: NEW
Alias: None
Product: Networking
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Stephen Hemminger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-03 11:03 UTC by Roger
Modified: 2014-05-05 01:33 UTC (History)
1 user (show)

See Also:
Kernel Version: > 3.5.7
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Roger 2013-04-03 11:03:28 UTC
Sometime after kernel-3.5.7, I have lost Wake On Lan functionality with my Intel e100 PCI card.

There was a past closed bug filed within the past couple of years concerning this same issue, but I'm failing to find it, in order to try reopening it.  As I further think about it, think there was a work around hack.

Working WOL kernel-3.5.7 output:

$ dmesg |grep e100
[    0.267929] pci 0000:00:10.0: Firmware left e100 interrupts enabled; disabling
[    3.749707] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[    3.749752] e100: Copyright(c) 1999-2006 Intel Corporation
[    3.772845] e100 0000:00:10.0: eth0: addr 0xfebfe000, irq 16, MAC addr XX:XX:XX:XX:XX:XX

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                             100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: no


I'll follow-up later with kernel-3.7.10 output.  Of which, I think is similar or the same, except for the fact WOL fails in later kernels.
Comment 1 Roger 2013-04-03 11:21:04 UTC
The only difference I'm seeing with the below 3.7.10 output, it's lacking the Intel driver version and copyright lines, and the fact WOL fails in 3.7.10!


# uname -a
Linux localhost2.local 3.7.10-gentoo #5 SMP PREEMPT Wed Apr 3 03:08:11 AKDT 2013 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux

# dmesg |grep eth0
[    0.742819] e100 0000:00:10.0 eth0: addr 0xfebfe000, irq 16, MAC addr 00:90:27:c6:b1:08

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                             100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: no
Comment 2 Roger 2013-04-03 11:28:07 UTC
I found where I was bit by this WOL bug in the past.  I have a patch here submitted for "Subject: e100: Fix WOL regression" by Author: Rafael J. Wysocki <rjw@sisk.pl> sometime around Dec 16, 2008.

I'm failing to find the old bug with searching the database, because it looks like this database only goes back to 2010. Unknown if the patch is relevant yet.
Comment 3 Roger 2013-04-03 11:35:01 UTC
Seems like the patch is still applied fully to the current kernel-3.7.10.  Key variable names being wol, WAKE_MAGIC, wolopts and eeprom_id_wol.

I'll next grep the kernel patch logs on e100 for possible conflicts.
Comment 5 Roger 2013-04-03 11:58:48 UTC
Kernel-3.5.7 was released, according to Wikipedia, July 21, 2012.

Searching the changelog back to around July 21, 2012, I only see minimal changes to include, changes relevant to PCI devices, EEPROM, and what looks like some minimal renaming of variables/functions.

Very minimal changes, and I don't see anything standing out significantly.  No change to WOL variables/functions within e100.c that I can see, except for maybe the EEPROM and PCI possibly relevant changes.

In the process of compiling 3.7.9, to see if WOL works in 3.7.9 in an attempt to narrow the search realm.  (Going to be awhile on x86.)
Comment 6 Roger 2013-04-03 13:13:25 UTC
Confirmed, kernel-3.7.9 has broken WOL too for e100!

So looks like patches as far back to July 21, 2012 need to be analyzed for the cause of this bug.
Comment 7 Roger 2013-06-08 05:07:21 UTC
# lspci -vv
00:10.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)
        Subsystem: Intel Corporation EtherExpress PRO/100+ Management Adapter
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at febfe000 (32-bit, non-prefetchable) [size=4K]
        Region 1: I/O ports at ef00 [size=64]
        Region 2: Memory at fea00000 (32-bit, non-prefetchable) [size=1M]
        Expansion ROM at fe900000 [disabled] [size=1M]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
        Kernel driver in use: e100
Comment 8 Tom Wijsman 2013-08-12 21:45:58 UTC
Downstream bug at https://bugs.gentoo.org/show_bug.cgi?id=472332
Comment 9 Roger 2014-05-04 14:50:49 UTC
In reference to Tom's comment here; Tom merrily mentioned the downstream bug's location, and likely didn't mean to imply the downstream bug as the cause. ;-)

This bug is still present for all e100 network chipsets as of kernel-3.12.13!  I wish they'd just yank the passed two or three patches made just after the kernel-3.5.7 release, instead of letting people add more patches ontop of those patches which broke wake on lan for e100.  (My knees are not happy with having to climb upstairs all the time to manually power on!)
Comment 10 Roger 2014-05-04 16:03:43 UTC
Oops!

Upon rechecking the laptop BIOS, found the WakeOnLan feature was disabled.  Renabling & rebooting and verifying via "ethtool eth0" 'g' was showing active for wakeonlan.  Halting and using wol worked.  Going through the long process of verifying all boxes are now fixed using kernel-3.12.13-gentoo seems to work.

Odd, "wakeonlan -p 7 MAC_ADDRESS" works, while "wol MAC_ADDRESS" doesn't seem to work.
Comment 11 Roger 2014-05-05 01:33:27 UTC
Well, Dell Inspiron 8100 laptop with an e100 card is working, as it should be with Linux kernel 3.12.13-gentoo.
Intel Corporation 82815 815, 82801 chipsets with an Intel 82557/8/9/0/1 Ethernet Pro 100 (rev 08)

As far as the old server, only Linux kernel-3.5.7 is wakeonlan working.  (I will later bit bang some more on testing Linux kernel 3.12.13-gentoo version, but it doesn't look good.  Kernel version 3.5.7 just works, while 3.12.13 seems to currently ignore wakeonlan.)

Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX, 82371AB/EB/MB PIIX chipsets with an Intel 82557/8/9/0/1 Ethernet Pro 100 (rev 08).

And I just realized, I took the last mention host's (ie. 440BX) Linux Kernel .config from the 440BX host.  So WOL should be working.  Whatever fixes were applied to the laptop's Intel chipsets, should also be ported to the above 440BX chipsets.

Note You need to log in before you can comment on or make changes to this bug.