2.6.2. Cortex-A9 processor power control

Place holders for level-shifters and clamps are inserted around the Cortex-A9 processor to ease the implementation of different power domains.

The Cortex-A9 processor can have the following power domains:

Table 2.2 shows the power modes.

Table 2.2. Cortex-A9 processor power modes

ModeCortex-A9 processor RAM arraysCortex-A9 processor logicCortex-A9 Data EngineComments
Full Run ModePowered-up

Powered-up

Powered-up

-
  ClockedClocked
Run Mode with MPE disabledPowered-upPowered-upPowered-upSee Coprocessor Access Control Register for information about disabling the MPE.
 ClockedNo clock
Run Mode with MPE powered offPowered-upPowered-upPowered offThe MPE can be implemented in a separate power domain and be powered off separately
 Clocked  
WFI/WFEPowered-up

Powered-up

Powered Up WFI/WFE mode, see Wait for interrupt (WFI/WFE) mode.
Only wake-up logic is clocked.Clock is disabled, or powered off
DormantRetention state/voltagePowered-offPowered-offExternal wake-up event required to wake up.
ShutdownPowered-offPowered-offPowered-offExternal wake-up event required to wake up.

Entry to Dormant or Shutdown mode must be controlled through an external power controller.

Run mode

Run mode is the normal mode of operation, where all of the functionality of the Cortex-A9 processor is available.

Wait for interrupt (WFI/WFE) mode

Wait for Interrupt mode disables most of the clocks of a processor, while keeping its logic powered up. This reduces the power drawn to the static leakage current, leaving a tiny clock power overhead requirement to enable the device to wake up from the WFI state.

The transition from the WFI mode to the Run mode is caused by:

  • an interrupt, masked or unmasked

  • an asynchronous data abort, regardless of the value of the CPSR.A bit. A pending wake-up event prevents the processor from entering low power mode.

  • a debug request, regardless of whether debug is enabled

  • a reset.

The transition from the WFE mode to the Run mode is caused by:

  • an interrupt, unless masked

  • a debug request, regardless of whether debug is enabled

  • a previous exception return on the same processor

  • a reset

  • the assertion of the EVENTI input signal.

The debug request can be generated by an externally generated debug request, using the EDBGRQ pin on the Cortex-A9 processor, or from a Debug Halt instruction issued to the Cortex-A9 processor through the APB debug port.

Entry into WFI Mode is performed by executing the WFI Wait For Interrupt instruction.

Entry into WFE Mode is performed by executing the WFE Wait For Event instruction.

To ensure that the memory system is not affected by the entry into the WFI state, perform a Data Synchronization Barrier, to ensure that all explicit memory accesses occurring in program order before the WFI/WFE complete. This avoids any possible deadlocks that can be caused in a system where memory access can trigger or enable an interrupt that the Cortex-A9 processor is waiting for.

Any other memory accesses that have been started at the time that the WFI or WFE instruction is executed complete as normal. This ensures that the L2 memory system does not see any disruption caused by the WFI.

The debug channel remains active throughout a WFI.

Dormant mode

Dormant mode enables the Cortex-A9 processor to be powered down, while leaving the caches powered up and maintaining their state.

The RAM blocks that must remain powered up during Dormant mode are:

  • all data RAMs associated with the cache

  • all tag RAMs associated with the cache

  • Outer RAMs.

The RAM blocks that are to remain powered up must be implemented on a separate power domain. All inputs to the RAMs must be clamped to a known logic level, with the chip enable held inactive. This clamping is not implemented in gates as part of the default synthesis flow because it can contribute to a tight critical path. Implementations that include Dormant mode must add these clamps around the RAMs, either as explicit gates in the RAM power domain, or as pull-down transistors that clamp the values while the Cortex-A9 processor is powered down.

Before entering Dormant mode, the state of the Cortex-A9 processor, excluding the contents of the RAMs that remain powered up in dormant mode, must be saved to external memory. These state saving operations must ensure that the following occur:

  • All ARM registers, including CPSR and SPSR registers are saved.

  • All system registers are saved.

  • All debug-related state must be saved.

  • A Data Synchronization Barrier instruction is executed to ensure that all state saving has completed.

  • The Cortex-A9 processor then communicates with the power controller, using the STANDBYWFI, to indicate that it is ready to enter dormant mode by performing a WFI instruction. See Communication to the power management controller for more information.

  • Before removing the power, the Reset signal to the Cortex-A9 processor must be asserted by the external power control mechanism.

The external power controller triggers the transition from Dormant state to Run state. The external power controller must assert reset to the Cortex-A9 processor until the power is restored. After power is restored, the Cortex-A9 processor leaves reset and can determine that the saved state must be restored.

Shutdown mode

Shutdown mode powers down the entire device, and all state, including cache, must be saved externally by software. This state saving is performed with interrupts disabled, and finishes with a Data Synchronization Barrier operation. The Cortex-A9 processor then communicates with a power controller that the device is ready to be powered down in the same manner as when entering Dormant Mode. The processor is returned to the run state by asserting reset.

Note

You must power up the processor before performing a reset.

Communication to the power management controller

Communication between the Cortex-A9 processor and the external power management controller can be performed using the Standby signals, Cortex-A9 input clamp signals, and DBGNOPWRDWN.

Standby signals

These signals control the external power management controller.

The STANDBYWFI signal indicates that the Cortex-A9 processor is ready to enter Power Down mode. See Standby and Wait For Event signals.

Cortex-A9 input signals

The external power management controller uses NEONCLAMP and CPURAMCLAMP to isolate Cortex-A9 power domains from one another before they are turned off. These signals are only meaningful if the Cortex-A9 processor implements power domain clamps. See Power management signals.

DBGNOPWRDWN

DBGNOPWRDWN is connected to the system power controller and is interpreted as a request to operate in emulate mode. In this mode, the Cortex-A9 processor and PTM are not actually powered down when requested by software or hardware handshakes. See Miscellaneous debug interface signals.

Copyright © 2008-2009 ARM. All rights reserved.ARM DDI 0388E
Non-Confidential