A4.12 Entering Dormant mode
The processor can enter Dormant mode if certain requirements are met.
To support Dormant mode, you must ensure:
- That the L2 cache RAMs are in a separate power domain.
- That all inputs to the L2 cache RAMs are clamped to benign values. This avoids
corrupting data when the cores and L2 control power domains enter and exit power down
Before entering Dormant mode, the architectural state of the cluster,
excluding the contents of the L2 cache RAMs that remain powered up, must be saved to
To enter Dormant mode, apply the following sequence:
- Disable the data cache by clearing the SCTLR.C bit, or the HSCTLR.C bit if in
Hyp mode. This prevents more data cache allocations and causes cacheable memory attributes
to change to Normal Non-cacheable. Subsequent loads and stores do not access the L1 or L2
- Clean and invalidate all data from the L1 Data cache. The SCU duplicate tag RAM
for this core is now empty. This prevents any new data cache snoops or data cache
maintenance operations from other cores in the cluster being issued to this core.
- Disable data coherency with other
cores in the cluster, by clearing the CPUECTLR.SMPEN bit. Clearing
the SMPEN bit enables the core to be taken out of coherency by preventing
the core from receiving cache or TLB maintenance operations broadcast
by other cores in the cluster.
- Save architectural state, if required. These state
saving operations must ensure that the following occur:
- All ARM
registers, including the CPSR and SPSR, are saved.
- All system registers are saved.
- All debug related state is saved.
- Execute an
to ensure that all of the register changes from the previous steps
have been committed.
- Execute a
DSB instruction to ensure that all
cache, TLB, and branch predictor maintenance operations issued by any core in the cluster
before the SMPEN bit was cleared have completed. In addition, this ensures that all state
saving has completed.
- Execute a
WFI instruction and wait until the
STANDBYWFI output is
asserted, to indicate that the core is in idle and low-power state.
- Repeat the previous steps for all cores, and wait
for all STANDBYWFI outputs to be asserted.
- If the ACP interface is configured, ensure that
any master connected to the interface does not send new transactions,
then assert AINACTS.
- If ACE is implemented, the SoC asserts the input
pin ACINACTM to idle the AXI master interface after
all snoop transactions have been sent on the interface. If CHI is
implemented, the SoC asserts the input pin SINACT.
When the L2 has completed the outstanding transactions for
the AXI master and slave interfaces, STANDBYWFIL2 is
asserted to indicate that L2 memory system is idle. All Cortex®‑A32
processor implementations contain an L2 memory system, including
implementations without an L2 cache.
- When STANDBYWFI
and STANDBYWFIL2 are
asserted for all cores, the cluster is ready to enter Dormant mode. This applies to
implementations that use the mini-SCU as well as implementations that use the SCU.
- Activate the L2 cache RAM input clamps.
- Remove power from the PDCPU and PDMINERVA power domains.