Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: small patch for Etherboot 3C509B driver in 4.2.0



The quoted email from Greg Beeley and Robert Bass is with regard to the
Wake On LAN feature of the 3c509B.  I'm afraid I don't understand this
issue but the change has been reported to work, so please apply this
patch if WOL is something you want to use.

The change should be in the probe routine, from:

	INF_3C905B.CurrentWindow = 0;

to

	INF_3C905B.CurrentWindow = 255;

	Ken

>> Well, I suppose.  The problem appears to be an initialization issue on
>> the card itself (which is apparently handled by the GlobalReset
>> command).  One would have expected the PCI initialization to have
>> activated something like that when the PCI bus is powered up.  There is
>> probably more room for me to be wrong than not but my inclination is
>> toward the card itself.
>
>The registers I referred to were per-card registers, not PCI-global stuff.
>The 3c905B has a set of standard PCI configuration registers.  So, I agree,
>the issue is with the card itself.  The 3c905B documentation says
>
>[after wakeup] " ... The operating system raises the power state (probably
>to D0) by writing the powerState bit in the PowerMgmtCtrl register.  If the
>NIC was previously in the D3 state, PCI configuration is lost and is restored
>by the operating system ... The operating system calls the NIC's device drive
>r
>to inform it of the power state transition, and possibly to determine the 
>nature of the wakeup event ... The device driver issues a TxReset command to
>clear any wake-up patterns out of the transmit FIFO (if this is not done, the
>patterns are treated as packets and transmitted once the transmitter is
>enabled ..."
>
>What I don't know is whether the BIOS sets those PowerMgmtCtrl register 
>bits itself.  I would assume that it would almost have to, in order to
>do things like map ROM areas, map I/O areas, etc.  Hmmm... perhaps I was
>wrong on that one....
>
>After just looking at the code, I saw something that might be an issue
>here.  Try editing 3c905b.c and change the
>
>    INF_3C905B.CurrentWindow = 0;
>
>line so that it sets the 'assumed initialization' window to something 
>crazy like 255.  That way, the ReadEEprom routine will be sure to set the
>window back to 0 (there's an 'optimization' in SetWindow that checks the
>current window to see if it really needs to do a set window command).
>
>Hope that helps,
>
>Greg.
===========================================================================
This Mail was sent to netboot mailing list by:
Ken Yap <ken@nlc.net.au>
To get help about this list, send a mail with 'help' as the only string in
it's body to majordomo@baghira.han.de. If you have problems with this list,
send a mail to netboot-owner@baghira.han.de.



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.