[gPXE] Intel NIC Link-state problem
Marty Connor
mdc at etherboot.org
Fri Apr 16 08:26:12 EDT 2010
Christopher Armenio wrote on 4/13/10 6:17 PM:
> Hi there,
> I seem to be having a problem getting gPXE to correctly interact with my
> intel NIC (integrated intel eepro100). I believe gPXE is incorrectly
> reporting the link as being down. There are both link and activity lights on
> the physical interface, and I can see the RX counter incrementing using the
> 'ifstat' command.
>
> Any thoughts/suggestions?
> Thanks!
> -Chris
Hi Chris,
If you are able to compile gPXE, could you make the following change and recompile:
--- a/src/drivers/net/eepro100.c
+++ b/src/drivers/net/eepro100.c
@@ -600,6 +600,9 @@ static void ifec_link_update ( struct net_device *netdev )
{
DBGP ( "ifec_link_update\n" );
+ netdev_link_up ( netdev );
+ return;
+
/* Update link state */
if ( ifec_link_check ( netdev ) )
netdev_link_up ( netdev );
-----------
What this does is to assert that the link state is "up". I notice that
most of our drivers don't do elaborate link state checking, but
eepro100 does, and it appears that the card is reporting a value during that
check that says the link is down, even if it is up.
Since there's really nothing we can do if the link isn't up, I think the
check is probably not needed.
The patch above simply short-circuits the check for link, and always indicates
to the core that link is up.
If this patch works, we can just remove the extra link_state checking logic
from src/drivers/net/eepro100.c, since other drivers don't do it, and it seems
to cause a problem for some eepro100 cards.
If editing and compiling this is a problem for you, I or someone else would
be more than happy to make a test image for you.
Thanks again for your help debugging this!
/ Marty /
More information about the gPXE
mailing list