e1000 stops receiving packets

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
steven765
Posts: 21
Joined: Tue Feb 22, 2011 3:28 pm

e1000 stops receiving packets

Post 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.
hidnplayr
Posts: 23
Joined: Sat Aug 09, 2008 5:07 pm

Re: e1000 stops receiving packets

Post by hidnplayr »

Have you looked into the various receive timers?
steven765
Posts: 21
Joined: Tue Feb 22, 2011 3:28 pm

Re: e1000 stops receiving packets

Post 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.
Post Reply