[vortex] WOL on newer kernels
Nenad Antonic
nenad-REMOVE-THIS@math.hr
Tue Feb 3 12:17:20 2004
We have a number of Tyan Tiger MPX (S2466N-4M) boards, with 3c920C
onboard NICs,which behave identically as 3c905C-TX-M PCI cards
(we use these for testing as well).
In an earlier post
(http://www.scyld.com/pipermail/vortex/2003-October/002558.html)
my collaborator described some of our attempts to get WOL working.
Following the suggestions, we are using modular NIC driver 3c59x now, and
ether-wake, pci-config, ... obtained from the scyld site.
If I am not mistaken, for WOL to work it is necessary to have:
1. supporting hardware/BIOS
2. another host sending magic packets (say, by ether-wake on another host)
3. appropriate driver (enable_wol option)
4. pci-config setting the card to D3 state before shutdown
We managed to test WOL on two of these systems, both using the onboard
NIC and a PCI one, for MS WinXP Pro standby and hibernate (with 3com
drivers).
This should confirm 1 and 2 above as working properly.
Using pci-config, we are succesfull in changing D0 to D3 on #6 device.
This gets recognised by lspci -v -v :
02:08.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink]
(rev 78)
Subsystem: Tyan Computer: Unknown device 2466
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 80 (2500ns min, 2500ns max), cache line size 10
Interrupt: pin A routed to IRQ 19
Region 0: I/O ports at 2000 [size=128]
Region 1: Memory at f5001000 (32-bit, non-prefetchable) [size=128]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D3 PME-Enable+ DSel=0 DScale=2 PME-
The last line originally was:
Status: D0 PME-Enable+ DSel=0 DScale=2 PME+
-?- Is this as it should be (the changed last line) before shutdown?
If it is, then it appears that the drivers, either the ones in (debian)
kernels 2.4.20-23, or even the one on scyld site, do not support enable_wol.
We have tried with 2.4.23-k7-smp kernel to compile modules-scyld-source-0.1
(1:3.4-1, -- Herbert Xu <herbert@debian.org> Fri, 11 Jul 2003 )
(using appropriate kernel headers for the above kernel), but
with no success. Only one driver worked at all (not the one in the above
modules-scyld-source-0.1, but an older one):
pci-scan.c:v1.11 8/31/2002 Donald Becker <becker@scyld.com>
http://www.scyld.com/linux/drivers.html
3c59x.c:v0.99Y 12/16/2002 Donald Becker, becker@scyld.com
http://www.scyld.com/network/vortex.html
eth0: 3Com 3c905C Tornado at 0x2000, 00:e0:81:23:25:c3, IRQ 19
8K buffer 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
MII transceiver found at address 24, status 782d.
Using bus-master transmits and whole-frame receives.
but ethtool was reporting that enable_wol was not supported:
Cannot get current wake-on-lan settings: Operation not supported
not setting wol
Similar message we get with any querry:
ethtool -i eth0
Cannot get driver information: Operation not supported
It works with standard linux 2.4.18 driver, and ns83820 driver
for our second ethernet card.
No success with module option enable_wol=1 either.
We tried the above both with ACPI and without (system left in powerered
state after shutdown). In all cases, sending the magic packet was confirmed
by NIC's led blinking.
In 2.4.24 kernel, 3c59x driver is the same as in 2.4.23, while in 2.6.0
it does not contain enable_wol (except in the changelog in the commentaries
at the beginning of the code :-)
-?- Do we need to set some particular ACPI parameters?
If not, the problem must be in the driver. Any hints?
Internet searching leads to no precise information on wol for 3c59x in
newer kernels, so precise details (logs, versions) from a working
configuration would help us a lot .
-?- Has anybody succeeded to get WOL working on vortex NICs in
more recent kernels?
Any help would be appreciated.
Nenad Antonic.