144 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.