Sleep States
Sleep State Overview
The processor supports different sleep states S4/S5, which are entered by methods such as setting the SLP_EN bit or due to a Power Button press. The entry to the Sleep states is based on several assumptions:
- The G3 state cannot be entered using any software mechanism. The G3 state indicates a complete loss of power.
Initiating Sleep State
Sleep states (S4/S5) are initiated by:
- Masking interrupts, turning off all bus controller enable bits, setting the desired type in the SLP_TYP field, and then setting the SLP_EN bit. The hardware then attempts to gracefully put the system into the corresponding Sleep state.
- Pressing the PWRBTN# Signal for more than 4 seconds to cause a Power Button Override event. In this case the transition to the S5 state is less graceful, since there are no dependencies from the processor or on clocks other than the RTC clock.
- Assertion of the THERMTRIP# signal will cause a transition to the S5 state. This can occur when system is in the S0 state.
- Shutdown by integrated manageability functions (ASF/Intel® CSME).
- Internal watchdog timer timeout events.
Sleep Types
| Sleep Type | Comment |
|---|
| S4 | The processor asserts SLP_S4#. The motherboard uses the SLP_S4# signal to shut off the power to the memory subsystem and any other unneeded subsystem. Only devices needed to wake from this state should be powered. |
| S5 | The processor asserts SLP_S4# and SLP_S5#. |
Exiting Sleep States
Sleep states (S4/S5) are exited based on wake events. The wake events forces the system to a full on state (S0), although some non-critical subsystems might still be shut off and have to be brought back manually. For example, the storage subsystem may be shut off during a sleep state and have to be enabled using a GPIO pin before it can be used.
Upon exit from the processor-controlled Sleep states, the WAK_STS bit is set. The possible causes of wake events (and their restrictions) are shown in the table below.
If the BATLOW# signal is asserted, the processor does not attempt to wake from an S4/S5 state, nor will it exit from Deep Sx state, even if the power button is pressed. This prevents the system from waking when the battery power is insufficient to wake the system. Wake events that occur while BATLOW# is asserted are latched by the processor, and the system wakes after BATLOW# is de-asserted. Causes of Wake Events
| Cause | How Enabled | Wake from Sx | Wake from Sx After Power Loss2 | Wake from “Reset” Types3 |
|---|
| RTC Alarm | Set RTC_EN bit in PM1_EN_STS register. | Yes | Yes | No |
| Power Button | Always enabled as Wake event. | Yes | Yes | Yes |
| Any GPIOs except DSW GPIOs can be enabled for wake | Refer to Note 5 | Yes | No | No |
| LAN_WAKE# | Enabled natively (unless pin is configured to be in GPIO mode) | Yes | Yes | Yes |
| Intel® High Definition Audio | Event sets PME_B0_STS bit; PM_B0_EN must be enabled. Cannot wake from S5 state if it was entered due to power failure or power button override. | Yes | Yes | No |
| Primary PME# | PME_B0_EN bit in GPE0_EN[127:96] register. | Yes | Yes | No |
| Secondary PME# | Set PME_EN bit in GPE0_EN[127:96] register. | Yes | Yes | No |
| PCI Express* WAKE# pin | PCIEXP_WAKE_DIS bit. | Yes | Yes | No |
| SMBALERT# | Refer to Note 4 | Yes | Yes | Yes |
| SMBus Target Wake Message (01h) | Wake/SMI# command always enabled as a Wake event. SMBus Target Message can wake the system from S4/S5, as well as from S5 due to Power Button Override. | Yes | Yes | Yes |
| SMBus Host Notify message received | HOST_NOTIFY_WKEN bit SMBus Target Command register. Reported in the SMB_WAK_STS bit in the GPE0_STS register. | Yes | Yes | Yes |
| Intel® CSME Non-Maskable Wake | Always enabled as a wake event. | Yes | Yes | Yes |
| Integrated WoL Enable Override | WoL Enable Override bit (in Configuration Space). | Yes | Yes | Yes |
| Wake Alarm Device | WADT_EN in GPE0_EN[127:96] | Yes | No | No |
- If BATLOW# signal is low, processor will not attempt to wake from S4/S5 , even if a valid wake event occurs. This prevents the system from waking when battery power is insufficient to wake the system. However, once BATLOW# de-asserts, the system will boot.
- This column represents what the processor would honor as wake events but there may be enabling dependencies on the device side which are not enabled after a power loss.
- Reset Types include: Power Button override, Intel® CSME-initiated power button override, Intel® CSME-initiated host partition reset with power down, Intel® CSME Watchdog Timer, SMBus unconditional power down, processor thermal trip, processor catastrophic temperature event.
- SMBALERT# signal is multiplexed with a GPIO pin that defaults to GPIO mode. Hence, SMBALERT# related wakes are possible only when this GPIO is configured in native mode, which means that BIOS must program this GPIO to operate in native mode before this wake is possible. Because GPIO configuration is in the resume well, wakes remain possible until one of the following occurs: BIOS changes the pin to GPIO mode, a G3 occurs .
- There are only 72 bits in the GPE registers to be assigned to GPIOs, though any of the GPIOs can trigger a wake, only those status of GPIO mapped to 1-tier scheme are directly accessible through the GPE status registers. For those GPIO mapped under 2-tier scheme, their status would be reflected under single controller status, “GPIO_TIER2_SCI_STS” or GPE0_STS and further comparison needed to know which 2-tier GPI(s) has triggered the GPIO Tier 2 SCI.
|
PCI Express* WAKE# Signal and PME Event Message
PCI Express* ports can wake the platform from S4, S5 using the WAKE# pin. WAKE# is treated as a wake event, but does not cause any bits to go active in the GPE_STS register.
PCI Express* WAKE# pin is an Output in S0ix states hence this pin cannot be used to wake up the system during S0ix states. PCI Express* ports and the processor have the ability to cause PME using messages. These are logically OR’d to set the single PCI_EXP_STS bit. When a PME message is received, the processor will set the PCI_EXP_STS bit. If the PCI_EXP_EN bit is also set, the processor can cause an SCI via GPE0_STS register.
Sx-G3-Sx, Handling Power Failures
Depending on when the power failure occurs and how the system is designed, different transitions could occur due to a power failure.
The AFTERG3_EN bit provides the ability to program whether or not the system should boot once power returns after a power loss event. If the policy is to not boot, the system remains in an S5 state (unless previously in S4). There are only three possible events that will wake the system after a power failure.
Although PME_EN is in the RTC well, this signal cannot wake the system after a power loss. PME_EN is cleared by RTCRST#, and PME_STS is cleared by RSMRST#.
Transitions Due to Power Failure
| State at Power Failure | AFTERG3_EN Bit | Transition when Power Returns and BATLOW# is inactive |
|---|
| S0 | 1 0 | S5 S0 |
| S4 | 1 0 | S4 S0 |
| S5 | 1 0 | S5 S0 |