跳到主要内容

16.10 Power Management and Low-Power Mode Control

16.10.1 Overview

The PMU module is a hardware unit within the SoC and is primarily responsible for managing CPU core power-on and power-off functions.

16.10.2 Features

  • Manage CPU core and cluster power on/off
  • Capture external wake-up sources to wake up the CPU
  • Support system suspend management

16.10.3 Registers

Core Power-Down Voting Register

BitsFieldTypeResetDescription
31:22ReservedRO0Reserved for future use.
21:20Power switch modeRW0Power switch mode.
The core has both a large macro power switch and distributed power switches. This field selects the power switch mode.
0 = Both the large macro switches and distributed switches are used.
19Disable L1 sleepRW0Disable L1 sleep.
This field disables core L1 SRAM power-switch power-down during core power-down mode.
1 = Disable core L1 SRAM switch sleep.
18Disable core sleepRW0Disable core sleep.
This field disables core switch sleep power-down during core power-down mode.
1 = Disable core power-switch sleep.
17:12ReservedRO0Reserved for future use.
11Mask core clock off state checkRW0Mask core clock-off state check.
Masks the core clock-off check during the core idle process.
10Mask core clock stable state checkRW0Mask core clock stable-state check.
Masks the core clock stable check during core wake-up.
9Mask JTAG idle state checkRW0Mask JTAG idle-state check.
Masks the JTAG idle check during MP idle entry.
1 = Mask the JTAG idle check.
8Mask core WFI idle state checkRW0Mask core WFI idle-state check.
Debug only.
7:5ReservedRO0Reserved for future use.
4GIC nFIQ global maskRW0GIC nFIQ global mask.
Masks nFIQ generated in the GIC for the core. Software can set this bit before the core enters power-down mode. APMU hardware automatically clears this bit when the core enters power-down mode.
3GIC nIRQ global maskRW0GIC nIRQ global mask.
Masks nIRQ generated in the GIC for the core. Software can set this bit before the core enters power-down mode. APMU hardware automatically clears this bit when the core enters power-down mode.
2Core L1 SRAM power downRW0Core L1 SRAM power down.
Not used.
1Core power downRW0Core power down.
This bit has no effect if bit [0] is 0.
1 = When the core enters WFI idle, the core enters deep-sleep mode and power is turned off.
0Core idleRW0Core idle.
1 = When the core enters WFI idle, the core clock is gated externally.

Cluster Power-Down Voting Register

BitsFieldTypeResetDescription
31:20ReservedRO0Reserved for future use.
19Disable Application MP L2 power switchRW0Disable Application MP L2 power switch.
This field disables Application MP L2 power-switch sleep power-down during Application MP power-down mode.
1 = Disable.
18Disable Application MP power switch modeRW0Disable Application MP power switch.
This field disables Application MP power-switch sleep power-down during MP subsystem power-down mode.
1 = Disable MP power-switch sleep mode.
17ReservedRO0Reserved.
16FRC L2 SRAM offRW0Force L2 SRAM off.
1 = L2 cache power is off.
15:14ReservedRO0Reserved.
13L2 hardware cache flush enableRW0L2 hardware cache flush enable.
1 = Enable.
12Mask SRAM repair done checkRW0Mask SRAM repair-done check.
1 = Mask the SRAM repair-done check.
11Mask core clock off state checkRW0Mask MP clock-off stable check.
This field masks the MP clock-off stable check during the MP idle process.
10Mask core clock stable state checkRW0Mask MP clock stable check.
This field masks the MP clock stable check during MP wake-up.
9Mask JTAG idle state checkRW0Mask the JTAG idle check during MP idle entry.
1 = Mask the JTAG idle check.
8Mask idle state checkRW0Mask Application MP idle-state check. Debug only.
This field should be 0 during normal operation.
1 = Status check masked
0 = Status check not masked
7ACINACTM hardware controlRW0ACINACTM hardware control.
0 = The low-power state machine does not control the ACINACTM port.
1 = The low-power state machine controls the Application MP ACINACTM port.
When M2/M1 low-power mode is entered, the ACINACTM port is high.
6ReservedRO0Reserved.
5Disable memory controller software REQRW0Disable memory controller software request.
This field disables memory controller entry into idle mode through the memory controller sleep request bits.
4Application MP wake MC enableRW0Application MP wake memory controller enable.
Wakes up the memory controller when the Application MP wakes up from idle mode.
The memory controller is woken up before the interrupt to the core is released.
3SCU SRAM Power DownRW0Not used.
2L2 cache SRAM power downRW0L2 cache SRAM power down.
This field has no effect if bit [1] is 0.
1 = When Application MP is idle, L2 SRAM power is turned off.
0 = When Application MP is idle, L2 SRAM remains in retention mode.
1Application MP power downRW0Application MP power down.
This bit has no effect if bit [0] is 0.
1 = When Application MP is idle, Application MP enters deep-sleep mode and power is turned off.
0Application MP idleRW0Application MP idle.
1 = When Application MP is idle, the Application MP clocks are gated externally.

Core Wake-Up Register

BitsFieldTypeResetDescription
31:16ReservedRO0Reserved for future use.
15Wakeup Core15RO0Wake up Core15.
If software writes 1 to this field, core 15 is woken up.
Writes of 0 to this bit, and writes to this bit when core 15 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 15 exits C1/C2 mode.
14Wakeup Core14RW0Wake up Core14.
If software writes 1 to this field, core 14 is woken up.
Writes of 0 to this bit, and writes to this bit when core 14 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 14 exits C1/C2 mode.
13Wakeup Core13RW0Wake up Core13.
If software writes 1 to this field, core 13 is woken up.
Writes of 0 to this bit, and writes to this bit when core 13 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 13 exits C1/C2 mode.
12Wakeup Core12RW0Wake up Core12.
If software writes 1 to this field, core 12 is woken up.
Writes of 0 to this bit, and writes to this bit when core 12 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 12 exits C1/C2 mode.
11Wakeup Core11RW0Wake up Core11.
If software writes 1 to this field, core 11 is woken up.
Writes of 0 to this bit, and writes to this bit when core 11 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 11 exits C1/C2 mode.
10Wakeup Core10RW0Wake up Core10.
If software writes 1 to this field, core 10 is woken up.
Writes of 0 to this bit, and writes to this bit when core 10 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 10 exits C1/C2 mode.
9Wakeup Core9RW0Wake up Core9.
If software writes 1 to this field, core 9 is woken up.
Writes of 0 to this bit, and writes to this bit when core 9 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 9 exits C1/C2 mode.
8Wakeup Core8RW0Wake up Core8.
If software writes 1 to this field, core 8 is woken up.
Writes of 0 to this bit, and writes to this bit when core 8 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 8 exits C1/C2 mode.
7Wakeup Core7RW0Wake up Core7.
If software writes 1 to this field, core 7 is woken up.
Writes of 0 to this bit, and writes to this bit when core 7 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 7 exits C1/C2 mode.
6Wakeup Core6RO0Wake up Core6.
If software writes 1 to this field, core 6 is woken up.
Writes of 0 to this bit, and writes to this bit when core 6 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 6 exits C1/C2 mode.
5Wakeup Core5RW0Wake up Core5.
If software writes 1 to this field, core 5 is woken up.
Writes of 0 to this bit, and writes to this bit when core 5 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 5 exits C1/C2 mode.
4Wakeup Core4RW0Wake up Core4.
If software writes 1 to this field, core 4 is woken up.
Writes of 0 to this bit, and writes to this bit when core 4 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 4 exits C1/C2 mode.
3Wakeup Core3RW0Wake up Core3.
If software writes 1 to this field, core 3 is woken up.
Writes of 0 to this bit, and writes to this bit when core 3 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 3 exits C1/C2 mode.
2Wakeup Core2RW0Wake up Core2.
If software writes 1 to this field, core 2 is woken up.
Writes of 0 to this bit, and writes to this bit when core 2 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 2 exits C1/C2 mode.
1Wakeup Core1RW0Wake up Core1.
If software writes 1 to this field, core 1 is woken up.
Writes of 0 to this bit, and writes to this bit when core 1 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 1 exits C1/C2 mode.
0Wakeup Core0RW0Wake up Core0.
If software writes 1 to this field, core 0 is woken up.
Writes of 0 to this bit, and writes to this bit when core 0 is in C0 (WFI) mode, are ignored.
This bit is cleared by PMU hardware when core 0 exits C1/C2 mode.

APCR_COREX Voting Register

BitsFieldTypeResetDescription
31AXISDRW0AXISD
Allows AXI buses and agents to be shut down after the Application MP cores enter idle states.
0 = AXI shutdown is not allowed.
1 = AXI shutdown is allowed.
30DSPSDRW0Not used
29SLPENRW0SLPEN
Allows the PMU to switch the system to sleep mode after the system reaches idle mode.
0 = Sleep mode is not allowed.
1 = Sleep mode is allowed.
28ReservedRO0Reserved for future use.
27DDRCORSDRW0DDRCORSD
Allows Application MP core clocks and TC DDR clocks to shut down. The clocks are halted when CPCR[DDRCORSD], APCR[DDRCORSD], and DPCR[DDRCORSD] are set and the Application MP core is in idle mode.
0 = Application MP core and TC DDR clock shutdown is not allowed.
1 = Application MP core and TC DDR clock shutdown is allowed.
26APBSDRW0APBSD
Allows the PMU to shut down APB clocks to all recipients, overriding other per-mode fields. The APB clock is actually shut down once the cores are idle and CPCR[APBSD], APCR[APBSD], and DPCR[APBSD] are set.
0 = APB clock shutdown is not allowed.
1 = APB clock shutdown is allowed.
25BBSDRW0BBSD
Allows the PMU to shut down all clocks provided to the baseband logic except the 32.768 kHz clock.
The baseband logic clocks are halted as soon as CPCR[BBSD], APCR[BBSD], and DPCR[BBSD] are set and the pm_bb_clkres port is negated.
0 = Baseband clock shutdown is not allowed.
1 = Baseband clock shutdown is allowed.
24:20ReservedRO0Reserved for future use.
19VCTCXOSDRW0VCTCXOSD
Allows VCTCXO shutdown when the system is in sleep mode.
VCTCXO is shut down when CPCR[VCTCXOSD], APCR[VCTCXOSD], and DPCR[VCTCXOSD] are set and the system enters sleep mode.
0 = VCTCXO shutdown is not allowed.
1 = VCTCXO shutdown is allowed.
18:15ReservedRO0Reserved for future use.
14MASSLPENRW0MASSLPEN
Allows the MSA subsystem to enter sleep mode after it reaches subsystem idle mode.
Sleep mode is allowed when CPCR[MASSLPEN], APCR[MASSLPEN], and DPCR[MASSLPEN] are set.
0 = MSA sleep mode is not allowed.
1 = MSA sleep mode is allowed.
13STBYENRW1STBYEN
Allows the Apps subsystem to shut down and enter UDR mode when the AP subsystem is in sleep mode.
UDR is enabled when CPCR[STBYEN] and APCR[STBYEN] are both set and the AP subsystem enters AP sleep.
12:4ReservedRO0Reserved for future use.
3C0_VOTE_AP_SLPENRW1C0 vote APMU sleep enable.
2:0ReservedRO0Reserved for future use

APCR_PER Voting Register

BitsFieldTypeResetDescription
31AXISDRW0AXISD
Allows AXI buses and agents to be shut down after the Application MP cores enter idle states.
0 = AXI shutdown is not allowed.
1 = AXI shutdown is allowed.
30DSPSDRW0Not used
29SLPENRW0SLPEN
Allows the PMU to switch the system to sleep mode after the system reaches idle mode.
0 = Sleep mode is not allowed.
1 = Sleep mode is allowed.
28ReservedRO0Reserved for future use.
27DDRCORSDRW0DDRCORSD
Allows Application MP core clocks and TC DDR clocks to shut down. The clocks are halted when CPCR[DDRCORSD], APCR[DDRCORSD], and DPCR[DDRCORSD] are set and the Application MP core is in idle mode.
0 = Application MP core and TC DDR clock shutdown is not allowed.
1 = Application MP core and TC DDR clock shutdown is allowed.
26APBSDRW0APBSD
Allows the PMU to shut down APB clocks to all recipients, overriding other per-mode fields. The APB clock is actually shut down once the cores are idle and CPCR[APBSD], APCR[APBSD], and DPCR[APBSD] are set.
0 = APB clock shutdown is not allowed.
1 = APB clock shutdown is allowed.
25BBSDRW0BBSD
Allows the PMU to shut down all clocks provided to the baseband logic except the 32.768 kHz clock.
The baseband logic clocks are halted as soon as CPCR[BBSD], APCR[BBSD], and DPCR[BBSD] are set and the pm_bb_clkres port is negated.
0 = Baseband clock shutdown is not allowed.
1 = Baseband clock shutdown is allowed.
24:20ReservedRO0Reserved for future use.
19VCTCXOSDRW0VCTCXOSD
Allows VCTCXO shutdown when the system is in sleep mode.
VCTCXO is shut down when CPCR[VCTCXOSD], APCR[VCTCXOSD], and DPCR[VCTCXOSD] are set and the system enters sleep mode.
0 = VCTCXO shutdown is not allowed.
1 = VCTCXO shutdown is allowed.
18:15ReservedRO0Reserved for future use.
14MSASLPENRW0MSASLPEN
Allows the MSA subsystem to enter sleep mode after it reaches subsystem idle mode.
Sleep mode is allowed when CPCR[MASSLPEN], APCR[MASSLPEN], and DPCR[MASSLPEN] are set.
0 = MSA sleep mode is not allowed.
1 = MSA sleep mode is allowed.
13STBYENRW1STBYEN
Allows the Apps subsystem to shut down and enter UDR mode when the AP subsystem is in sleep mode.
UDR is enabled when CPCR[STBYEN] and APCR[STBYEN] are both set and the AP subsystem enters AP sleep.
12:4ReservedRO0Reserved for future use.
3PER_VOTE_AP_SLPENRW1Peripheral vote APMU sleep enable.
2:0ReservedRO0Reserved for future use