Skip to content

Commit 5bd8e23

Browse files
DhruvaG2000VeeruPrudhvi
authored andcommitted
feat(Linux): Add AM62L specific LPM documentation
Add docs for AM62LX LPM Signed-off-by: Dhruva Gole <[email protected]>
1 parent 2e63ff7 commit 5bd8e23

File tree

5 files changed

+133
-1
lines changed

5 files changed

+133
-1
lines changed

configs/AM62LX/AM62LX_linux_toc.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ linux/Foundational_Components/Kernel/Kernel_Drivers/USB/AM62_DWC3
6666
linux/Foundational_Components/Kernel/Kernel_Drivers/VTM
6767
linux/Foundational_Components/Kernel/Kernel_Drivers/Watchdog
6868

69+
linux/Foundational_Components_Power_Management
70+
linux/Foundational_Components/Power_Management/pm_overview
71+
linux/Foundational_Components/Power_Management/pm_cpuidle
72+
linux/Foundational_Components/Power_Management/pm_am62lx_low_power_modes
73+
6974
#linux/Foundational_Components/System_Security/SELinux
7075

7176
linux/Foundational_Components_Kernel_Users_Guide

source/devices/AM62LX/linux/Release_Specific_Release_Notes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ What's new
5050
- ATF Based Device Manager including SCMI
5151
- U-Boot: Legacy Boot Flow, Boot modes (UART, MMCSD, OSPI), CPSW, DMA
5252
- Kernel: DMA, GPIO, I2C, UART, MMCSD, OSPI NOR, eCAP, eQEP, CPSW, McASP/Audio, DSS, DSI
53-
- Power Management: Basic Deep Sleep and RTC+DDR mode
53+
- :ref:`Power Management <am62lx-power-management>`: DeepSleep and RTC+DDR low power modes.
5454
- RT Kernel : Real-Time Linux Interrupt Latency numbers here - :ref:`RT Interrupt Latencies <RT-linux-performance>`
5555
- Support for Wifi with M2 CC33xx cards - :ref:`How to Enable M.2-CC33xx in Linux <enable_m2cc3301>`
5656
- Out-of-Box experience based on LVGL (Light and Versatile Graphics Library) - :ref:`TI LVGL Demo - User Guide <TI-LVGL-Demo-User-Guide-label>`
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
.. _am62lx-power-management:
2+
3+
###############
4+
Low Power Modes
5+
###############
6+
7+
Overview
8+
********
9+
10+
.. note::
11+
12+
For this release, both of the documented low power modes below require special steps which have been
13+
documented in :ref:`am62l_suspend_workarounds`. This includes the steps to choose the system suspend mode
14+
and how to wakeup the system.
15+
16+
The following sections describe a high-level description of the different low power modes (LPM) of the
17+
device. If your application requires inactive power management, you must determine which
18+
low power mode described below satisfies your requirements. Each mode must be evaluated
19+
based on power consumption and latency (the time it takes to wakeup to active mode) requirements. Specific
20+
values are detailed in the device-specific data sheet. As part of this SDK offering,
21+
Texas Instruments has added support for the following low power modes (ordered from lowest power consumption
22+
to highest power consumption):
23+
24+
#. RTC Only Plus DDR
25+
#. Deep Sleep
26+
27+
RTC Only Plus DDR
28+
*****************
29+
30+
RTC Only + DDR mode is the deepest low power mode that allows the system to enter a state of lowest power consumption
31+
while still retaining the DDR RAM context.
32+
33+
In order to enter RTC Only + DDR mode,
34+
35+
.. code-block:: console
36+
37+
root@am62lxx-evm:~# echo mem > /sys/power/state
38+
[ 67.335138] PM: suspend entry (deep)
39+
[ 67.358190] Filesystems sync: 0.019 seconds
40+
[ 67.363206] Freezing user space processes
41+
[ 67.368991] Freezing user space processes completed (elapsed 0.001 seconds)
42+
[ 67.376038] OOM killer disabled.
43+
[ 67.379271] Freezing remaining freezable tasks
44+
[ 67.384973] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
45+
[ 67.392398] printk: Suspending console(s) (use no_console_suspend to debug)
46+
NOTICE: bl1_plat_arch_setup arch setup
47+
NOTICE: Booting Trusted Firmware
48+
NOTICE: BL1: v2.12.0(release):11.00.04-7-gaa3963759-dirty
49+
NOTICE: BL1: Built : 15:56:37, Feb 25 2025
50+
NOTICE: lpdd4_init <--
51+
NOTICE: DDR ram size =80000000
52+
NOTICE: bl1_platform_setup DDR init done
53+
NOTICE: k3_bl1_handoff sent message to tifs
54+
ERROR: Wake up src 0x0
55+
ERROR: Wake up interrupt 0xc
56+
[ 67.405953] Disabling non-boot CPUs ...
57+
[ 67.408032] psci: CPU1 killed (polled 0 ms)
58+
[ 67.408974] Enabling non-boot CPUs ...
59+
[ 67.409281] Detected VIPT I-cache on CPU1
60+
[ 67.409330] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
61+
[ 67.409393] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
62+
[ 67.410371] CPU1 is up
63+
[ 67.446329] OOM killer enabled.
64+
[ 67.449479] Restarting tasks ... done.
65+
[ 67.454324] random: crng reseeded on system resumption
66+
[ 67.459689] PM: suspend exit
67+
68+
69+
DeepSleep
70+
*********
71+
72+
DeepSleep AKA Suspend-to-RAM is a low-power mode that allows the SoC
73+
to retain its state in RAM while the processor is turned off.
74+
DeepSleep mode is typically used during inactivity when the user requires very low power
75+
while waiting for an event that requires processing or higher performance. DeepSleep
76+
is a low power mode which still includes DDR in self-refresh, so wakeup events do not
77+
require a full cold boot, significantly reducing wakeup latencies.
78+
Since the power to Always-On power domains are ON throughout DeepSleep,
79+
power to key modules such as GPIO and others is maintained to allow wakeup events
80+
to exit out of this mode.
81+
82+
In order to enter DeepSleep,
83+
84+
.. code-block:: console
85+
86+
root@am62lxx-evm:~# echo mem > /sys/power/state
87+
[ 88.507502] PM: suspend entry (deep)
88+
[ 88.530523] Filesystems sync: 0.019 seconds
89+
[ 88.537597] Freezing user space processes
90+
[ 88.543218] Freezing user space processes completed (elapsed 0.001 seconds)
91+
[ 88.550275] OOM killer disabled.
92+
[ 88.553518] Freezing remaining freezable tasks
93+
[ 88.559139] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
94+
[ 88.566570] printk: Suspending console(s) (use no_console_suspend to debug)
95+
ERROR: Wake up src 0x80
96+
ERROR: Wake up interrupt 0xc
97+
[ 88.591181] Disabling non-boot CPUs ...
98+
[ 88.593309] psci: CPU1 killed (polled 0 ms)
99+
[ 88.594858] Enabling non-boot CPUs ...
100+
[ 88.595327] Detected VIPT I-cache on CPU1
101+
[ 88.595379] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
102+
[ 88.595446] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
103+
[ 88.596420] CPU1 is up
104+
[ 88.634778] OOM killer enabled.
105+
[ 88.637926] Restarting tasks ... done.
106+
[ 88.642801] random: crng reseeded on system resumption
107+
[ 88.649913] PM: suspend exit
108+
root@am62lxx-evm:~#

source/linux/Foundational_Components/Power_Management/pm_overview.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ The dynamic power management features enabled on |__PART_FAMILY_DEVICE_NAMES__|
3636
#. CPUIdle
3737
#. Runtime PM
3838

39+
.. ifconfig:: CONFIG_part_variant in ('AM62LX')
40+
41+
#. Dynamic Frequency Scaling
42+
#. Runtime PM
43+
#. CPUIdle
44+
45+
.. note::
46+
47+
Dynamic Frequency Scaling and runtime PM are not fully supported on |__PART_FAMILY_DEVICE_NAMES__| as of today,
48+
and shall be enabled in a future release.
49+
3950
.. rubric:: Static Power Management
4051

4152
Static Power Management ensures the SoC is drawing minimum power when
@@ -52,3 +63,10 @@ supported by the Linux kernel.
5263
#. I/O Only Plus DDR
5364
#. Deep Sleep
5465
#. MCU Only Mode
66+
67+
.. ifconfig:: CONFIG_part_variant in ('AM62LX')
68+
69+
The static power management features on |__PART_FAMILY_DEVICE_NAMES__| are:
70+
71+
#. RTC Only Plus DDR
72+
#. Deep Sleep

source/linux/Foundational_Components_Power_Management.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Power Management
1313
Foundational_Components/Power_Management/pm_suspend_resume
1414
Foundational_Components/Power_Management/pm_rtc_ddr
1515
Foundational_Components/Power_Management/pm_low_power_modes
16+
Foundational_Components/Power_Management/pm_am62lx_low_power_modes
1617
Foundational_Components/Power_Management/pm_wakeup_sources
1718
Foundational_Components/Power_Management/pm_sw_arch
1819
Foundational_Components/Power_Management/pm_debug

0 commit comments

Comments
 (0)