Page 1 of 1

e1000 stops receiving packets

Posted: Sun Aug 18, 2013 8:18 pm
by steven765
My e1000 driver seems to enter a sleep state after a minute of two of not receiving any packets. If I disconnect and reconnect the network cable from the box I see the link go down/up and everything works great until this mysterious timer puts it to sleep again.

I've tried everything I could find in the manual to disable powersave:

Code: Select all

e1000_reg_set(e,   E1000_REG_ECTRL, E1000_REG_ECTRL_PHY_PWRMGT); //disable power management
	e1000_reg_set(e, E1000_REG_WAKEUP_CTRL, E1000_REG_WAKEUP_CTRL_APME); //enable advanced management for filters
	e1000_reg_set(e, E1000_REG_WAKEUP_FILTER, E1000_REG_WAKEUP_FILTER_EX | 
					   E1000_REG_WAKEUP_FILTER_MC | E1000_REG_WAKEUP_FILTER_BC 
					   | E1000_REG_WAKEUP_FILTER_ARP);	 //set it to wakeup on just about everything

If I leave multicast promiscuous mode enabled it works great, not surprising because it's always seeing packets, but I'd like to filter these out.

Re: e1000 stops receiving packets

Posted: Mon Aug 19, 2013 1:41 pm
by hidnplayr
Have you looked into the various receive timers?

Re: e1000 stops receiving packets

Posted: Thu Sep 05, 2013 2:00 pm
by steven765
Yes I was tinkering with those, but to no avil. Leaving it in promiscuous works for a while, until even those go quite. I'm trying to understand mapping in the phy memory, the intel docs are confusing as always. I believe this is a separate mem space from even the flash for configuring how the card behaves? So all those addresses are relative to where its mapped, but can't quite seem to pin down how/where the phy base is located.