Intel PCI User Manual

Page of 406
142
Software Developer’s Manual
Power Management
Maintains the first magic packet received in the Wakeup Packet Memory (WPM) until the 
driver writes a 0b to the Magic Packet Received MAG bit in the Wakeup Status Register 
(WUS).
“APM Wakeup” is supported in all power states and only disabled if a subsequent EEPROM read 
results in the APM Wakeup bit being cleared or software explicitly writes a 0b to the APM Wakeup 
(APM)
 bit of the WUC register.
6.4.2
ACPI Power Management Wakeup
The Ethernet controller supports ACPI Power Management based wakeups. It generates system 
wakeup events from three sources:
Reception of a “Magic Packet”.
Reception of a Network Wakeup Packet.
Detection of a link change of state.
Note:
The 82541ER does not support ACPI wakeup events.
Activating ACPI Power Management Wakeup requires:
The software driver to program the Wakeup Filter Control Register (WUFC). This indicates 
the packets the driver wishes to wake up and supplies the necessary data to the IP Address 
Table (IPAT) and the Flexible Filter Mask Table (FFMT), Flexible Filter Length Table (FFLT), 
and the Flexible Filter Value Table (FFVT). The driver can also set the Link Status Change 
Wakeup Enable
 (LNKC) bit in the Wakeup Filter Control Register (WUFC) to cause wakeup 
when the link changes state. 
The OS to write a 1b to the Pme_En bit of the Power Management Control / Status Register 
(PMCSR).
Normally, after enabling wakeup, the OS sets the Ethernet controller to D3 (low-power mode).
Once wakeup is enabled, the Ethernet controller monitors incoming packets, first filtering them 
according to its standard address filtering method, then filtering them with all of the enabled 
wakeup filters. If a packet passes both the standard address filtering and at least one of the enabled 
wakeup filters, the Ethernet controller:
Sets the PME_Status bit in the Power Management Control / Status Register (PMCSR)
Assert PME#. If the PME_En bit in the Power Management Control / Status Register 
(PMCSR) is set.
Stores the first 128 bytes of the packet in the Wakeup Packet Memory.
Sets one or more of the “Received” bits in the Wakeup Status Register (WUS). Note that the 
Ethernet controller sets more than one bit if a packet matches more than one filter.
Sets the packet length in the Wakeup Packet Length Register (WUPL).
If enabled, a link state change wakeup causes similar results. For example, setting PME_Status, 
asserting PME#, and setting the Link Status Changed (LNKC) bit in the Wakeup Status Register 
(WUSR) when the link goes up or down.
PME# remains asserted until the OS either writes a 1b to the PME_Status bit of the PMCSR 
register or writes a 0b to the Pme_En bit.