A4.6
Powering down an individual core
To enable a core to be powered down, the implementation must place the core on a separately controlled
power supply. In addition, you must clamp the outputs of the core to benign values while the entire
cluster is powered down.
To power down the core, apply the following sequence:
Procedure
1. 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 caches.
2. Clean and invalidate all data from the L1 Data cache. The SCU duplicate tag RAMs for this core are
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.
3. 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.
4. Execute an
ISB
instruction to ensure that all of the register changes from the previous steps have been
committed.
5. Execute a
DSB SY
instruction to ensure that all cache, TLB, and branch predictor maintenance
operations issued by any core in the cluster device before the SMPEN bit was cleared have
completed.
6. Execute a
WFI
instruction and wait until the
STANDBYWFI
output is asserted to indicate that the
core is in idle and low-power state.
7. Deassert
DBGPWRDUP
LOW. This prevents any external debug access to the core.
8. Activate the core output clamps.
9. Assert
nCPUPORESET
LOW.
10. Remove power from the PDCPU power domain.
A4 Power Management
A4.6 Powering down an individual core
100236_0100_00_en
Copyright © 2015–2017, 2019 Arm Limited or its affiliates. All rights
reserved.
A4-65
Non-Confidential
Summary of Contents for Cortex-A35
Page 4: ......
Page 18: ......
Page 26: ......
Page 27: ...Part A Functional Description ...
Page 28: ......
Page 145: ...Part B Register Descriptions ...
Page 146: ......
Page 573: ...Part C Debug ...
Page 574: ......
Page 845: ...Part D Appendices ...
Page 846: ......