freebsd-skq/sys/dev/fxp
Pyun YongHyeon 7137cea0c7 Add basic WOL support for 82550/82551/82558 and 82559 based
controllers. ICH based controllers are treated as 82559. 82557,
earlier revision of 82558 and 82559ER have no WOL capability.
 o WOL support requires help of a firmware so add check whether
   hardware is capable of handling magic frames by reading EEPROM.
 o Enable accepting WOL frames only when hardware is about to
   suspend or shutdown. Previously fxp(4) used to allow receipt of
   magic frame under normal operation mode which could cause
   hardware hang if magic frame is received by hardware. Datasheet
   clearly states driver should not allow WOL frames under normal
   operation mode.
 o Disable WOL frame reception in device attach so have fxp(4)
   immunize against system hang which can be triggered by magic
   packets when the hardware is not in fully initialized state.
 o Don't reset all hardware configuration data in fxp_stop()
   otherwise important configuration data is lost and this would
   reset WOL configuration to default state which in turn cause
   hardware hang on receipt of magic frames. To fix the issue,
   preserve hardware configuration data by issuing a selective
   reset.
 o Explicitly disable interrupts after issuing selective reset as
   reset may unmask interrupts.

Tested by:	Alexey Shuvaev < shuvaev <> physik DOT uni-wuerzburg DOT de >
2008-11-27 01:57:23 +00:00
..
if_fxp.c Add basic WOL support for 82550/82551/82558 and 82559 based 2008-11-27 01:57:23 +00:00
if_fxpreg.h Add basic WOL support for 82550/82551/82558 and 82559 based 2008-11-27 01:57:23 +00:00
if_fxpvar.h Add basic WOL support for 82550/82551/82558 and 82559 based 2008-11-27 01:57:23 +00:00
rcvbundl.h Add a microcode to implement receive bundling for 82551 chipsets with 2005-04-21 19:34:57 +00:00