[lkml]   [2004]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
SubjectRe: [BUG] Via-Rhine WOL vs PXE Boot
On Friday 17 September 2004 22:34, Roger Luethi wrote:
> On Fri, 17 Sep 2004 21:54:36 +0200, Kenneth Aafløy wrote:
> > In recent kernels I have been having trouble booting from a LAN with the
> > built in PXE firmware in my Via Epia M10k board.

> The patch you are referring to contains very little code that affects chip
> programming without user intervention (e.g. calling ethtool ioctls). There
> is one notable exception: The patch introduces rhine_shutdown which is
> called at shutdown (well, duh!). I suppose you can make the problem go away
> if you comment out parts of said function. I'd start at the bottom with the
> D3 call.

Indeed it was that last call to change the power state, as I too figured. Now
I wonder if there is some other power state that could be set that would
benefit powersaving, but not prevent the pxe boot rom from beeing confused?

Or should this rather be reported as a bug to Via, so that they can implement
restoring the adapter from the D3 state in the pxe boot rom?

I've attached what I belive to be a bk patch (kinda new to that) which
comments out this power-state change, untill something better is found. I
have not tested WOL with this, but I can't think of any reason why it should
not work.

# This is a BitKeeper generated diff -Nru style patch.
# ChangeSet
# 2004/09/17 23:44:56+02:00
# via-rhine.c:
# [via-rhine] Disable the D3 power state in _shutdown.
# drivers/net/via-rhine.c
# 2004/09/17 23:29:58+02:00 +3 -1
# [via-rhine] Disable the D3 power state in _shutdown.
diff -Nru a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
--- a/drivers/net/via-rhine.c 2004-09-17 23:49:38 +02:00
+++ b/drivers/net/via-rhine.c 2004-09-17 23:49:38 +02:00
@@ -1934,7 +1934,9 @@
writeb(readb(ioaddr + StickyHW) | 0x04, ioaddr + StickyHW);

/* Hit power state D3 (sleep) */
- writeb(readb(ioaddr + StickyHW) | 0x03, ioaddr + StickyHW);
+ /* Disabled for now, because it will confuse the PXE boot rom
+ * of some Via Epia boards. */
+ //writeb(readb(ioaddr + StickyHW) | 0x03, ioaddr + StickyHW);

/* TODO: Check use of pci_enable_wake() */
 \ /
  Last update: 2005-03-22 14:06    [W:0.027 / U:1.432 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site