Skip to content

low-latency CPU standby mode#70

Merged
DhruvaG2000 merged 4 commits intoTexasInstruments:ti-masterfrom
ti-scaria:low_latency_standby
Feb 4, 2026
Merged

low-latency CPU standby mode#70
DhruvaG2000 merged 4 commits intoTexasInstruments:ti-masterfrom
ti-scaria:low_latency_standby

Conversation

@ti-scaria
Copy link

Adds a new low-latency CPU standby LPM in the AM62L SoC.
Using the OSI mode of PSCI in ATF and the cpuidle driver in the kernel,
the system can enter idle states opportunistically when the OS deems the cpus to be idle.

@ti-scaria ti-scaria force-pushed the low_latency_standby branch from 67ab5cd to 32582ce Compare February 3, 2026 10:23
@DhruvaG2000 DhruvaG2000 requested review from DhruvaG2000 and ti-sebin and removed request for DhruvaG2000 February 3, 2026 10:34
@ti-scaria ti-scaria force-pushed the low_latency_standby branch 2 times, most recently from fd10391 to 6967427 Compare February 3, 2026 13:00
@ti-scaria ti-scaria force-pushed the low_latency_standby branch from 6967427 to 53203dd Compare February 4, 2026 06:59
Implementing cpu standby LPM introduces more intermediate
power states for retention. Thus increasing the power level
for PLAT_MAX_RET_STATE and in association PLAT_MAX_OFF_STATE

Signed-off-by: Scaria Kochidanadu <[email protected]>
plat_psci_common.c is not used by am62l, thus removing it from
plat_common.mk. Adding plat_psci_common.c in the board specific
board.mk to build it for the boards that use it.

Signed-off-by: Scaria Kochidanadu <[email protected]>
Executing WFI at EL3 without explicitly configuring scr_el3
leads to unstable behaviour and systems hangs on entering
the low power mode.

Save and update scr_el3 with required bits for routing of
interrupts and restoring original scr_el3 value on resume to
ensure correct entry and exit from WFI.

Signed-off-by: Scaria Kochidanadu <[email protected]>
Introduce a new low-latency CPU standby mode using
the OSI mode in PSCI and leveraging the cpuidle
framework in the kernel.

Using the cpuidle framework, when the cores are idle,
the cpuidle governor opportunistically selects among the
idle-states that are present to enter a low power state.
In the low latency cluster idle state implemented: DDR
is in auto self refresh, auto clock gating is enabled,
few LPSCs are disabled and PLLs are in Bypass or
running at low frequency to save power.

Signed-off-by: Scaria Kochidanadu <[email protected]>
@DhruvaG2000 DhruvaG2000 merged commit 6c343d6 into TexasInstruments:ti-master Feb 4, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants