Skip to content

fix(linux): Update AM62L standby mode documentation#747

Open
ti-scaria wants to merge 1 commit into
TexasInstruments:masterfrom
ti-scaria:update_standby
Open

fix(linux): Update AM62L standby mode documentation#747
ti-scaria wants to merge 1 commit into
TexasInstruments:masterfrom
ti-scaria:update_standby

Conversation

@ti-scaria

Copy link
Copy Markdown
Contributor

The existing standby mode is renamed from 'low-latency standby' to 'standby' and has been migrated to the default device tree from an overlay. A new 'deep-standby' mode has been added which requires the overlay for use.

Update the docs to reflect these changes, introduce the new deep-standby mode along with its pre-requisites and how to enable the given mode.

@akashdeep-ti akashdeep-ti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Spelling mistake in commit message


The ``cluster_sleep_deep_stby`` state is an optional configuration that can be enabled using the device tree overlay
:file:`k3-am62l3-evm-idle-states.dtso`.
It provides deeper power savings but requires CPSW and Display drivers to be suspended. Look at section :ref:`deep-standby-mode` for more details.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it will be better to add clear note stating that this deeper standby should only be enabled if CPSW and display are to be used in the system.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, there is a lot of passive voice usage as vale is reporting, can you correct that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged

- Latency

* - **cpu_sleep_0** (CPU Level)
* - **cpu_sleep_stby** (CPU Level)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am missing more idle states that you recently added in the DT (to select deep sleep, DSS + DeepSleep, RTC + IO + DDR) etc. Can you please add those as well?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i understand that these idle states are not meant for standby but do we have their documentation elsewhere, then please add it there.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section I am thinking of keeping for the standby related idle-states only
The s2idle docs will have all the idle-states mentioned

@ti-scaria ti-scaria changed the title fix(linux): Update AM62L standby mode docmentation fix(linux): Update AM62L standby mode documentation Jul 20, 2026
overlay :file:`k3-am62l3-evm-idle-states.dtso` disables the CPSW driver to ensure this
condition is met. Do not override this configuration without understanding the implications for cluster
idle transitions and hardware stability.
This overlay adds the ``cluster_sleep_deep_stby`` idle state to the device tree configuration.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to mention this in power domain hierarchy list?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This gets added in the CLUSTER_PD domain itself

@StaticRocket StaticRocket left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer if you defined the acronyms you use here, but I'm still evaluating some other solutions for this.

Comment on lines +54 to +57
| The ``cluster_sleep_deep_stby`` state is an optional configuration. Enable it using the device tree overlay
:file:`k3-am62l3-evm-idle-states.dtso`.
| It should be used **only** when CPSW and Display drivers are not needed.
| See :ref:`deep-standby-mode` for more details.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please avoid using | unless explicitly necessary for formatting. It has a habit of breaking other directives.


| The ``cluster_sleep_deep_stby`` state is an optional configuration. Enable it using the device tree overlay
:file:`k3-am62l3-evm-idle-states.dtso`.
| It should be used **only** when CPSW and Display drivers are not needed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| It should be used **only** when CPSW and Display drivers are not needed.
| **Only do this when CPSW and Display drivers are not needed.**

* **CLUSTER_PD** (Cluster Power Domain): Cluster-level power domain that groups multiple CPUs

These power domains inform CPUIdle about which non-critical domains can be disabled when all cores within them are idle.
These power domains inform CPUIdle about which non-critical domains to disable when all cores within them are idle.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
These power domains inform CPUIdle about which non-critical domains to disable when all cores within them are idle.
These power domains inform CPUIdle about what non-critical domains to disable when all cores within them are idle.

Comment on lines +155 to +156
To monitor cluster-level standby mode usage, which is the most useful metric for verifying that the system
is successfully entering the low-latency standby mode when all cores are idle:
is successfully entering the standby mode when all cores are idle:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cluster-level standby mode usage metric is useful metric for verifying that the system
is successfully entering standby mode. To check this value, issue the following:

* - **cluster_sleep_0** (Low Latency Cluster standby)
- Cluster low-latency standby mode when all cores are idle, with reduced clock frequencies and non-critical power domains disabled
* - **cluster_sleep_stby** (Cluster standby)
- The default Cluster standby mode when all cores are idle, with reduced clock frequencies and non-critical power domains disabled

@akashdeep-ti akashdeep-ti Jul 21, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i am still thinking that this chapter should list the exact hardware optimizations done, that is which clock frequency is reduced, which non-critical power domains are disabled and other system details, maybe a table with that. As the current information is not that useful to a reader because what is non-critical from our point of view may be critical for user.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 on this

@kwillis01 kwillis01 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Info looks good, mostly need updates for grammar. We should decide on how the states are named and their capitalization to stay consistent. Not sure if all my changes are vale approved, so try to do something similar to the changes if not.

Comment on lines +48 to +49
* - **cluster_sleep_deep_stby*** (Cluster Deep standby)
- Additional Deep standby mode similar to cluster standby, with additional clock gating and power domain shutdown for more aggressive power savings.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: why is deep capitalized? IMO needs to either be "Deep Standby" or "deep standby" when talking about the mode.

@ti-scaria ti-scaria Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, ill follow this convention

The ``cluster_sleep_deep_stby`` state is an optional configuration. Enable it using the device tree overlay
:file:`k3-am62l3-evm-idle-states.dtso`.

**Only do this when CPSW and Display drivers are not needed.**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Only do this when CPSW and Display drivers are not needed.**
**Only enable deep standby mode when CPSW and Display drivers are not needed.**

----------------------

The AM62L Standby Mode implementation has important prerequisites that must be met for correct operation.
Meet the following prerequisites before using AM62L Deep Standby Mode.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit

Suggested change
Meet the following prerequisites before using AM62L Deep Standby Mode.
The following prerequisites must be met before using AM62L Deep Standby Mode.


Similarly, the display driver must be in a suspended state for cluster standby due to frame buffer overflow issues.
Ensure display is not actively driving output when testing or relying on Standby Mode for power savings.
Similarly, the display driver must not drive output during Deep standby. The DDR enters Auto self-refresh

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: capitalization

Suggested change
Similarly, the display driver must not drive output during Deep standby. The DDR enters Auto self-refresh
Similarly, the display driver must not drive output during deep standby. DDR enters auto self-refresh

overlay :file:`k3-am62l3-evm-idle-states.dtso` disables the CPSW driver to ensure this
condition is met. Do not override this configuration without understanding the implications for cluster
idle transitions and hardware stability.
To enable Deep Standby Mode, apply the device tree overlay :file:`k3-am62l3-evm-idle-states.dtso` to your system.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: capitalization

Suggested change
To enable Deep Standby Mode, apply the device tree overlay :file:`k3-am62l3-evm-idle-states.dtso` to your system.
To enable deep standby mode, apply the device tree overlay :file:`k3-am62l3-evm-idle-states.dtso` to your system.


* - Mode
- Hardware Sequence Steps
* - **Default Standby Mode**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe rename to "shallow standby mode"? "Default" isn't really descriptive imo and renaming to "shallow" will make it easier to talk about it in other sections

* Put PLL8(A53 clock) in bypass
* - **Deep Standby Mode**
- * All default standby mode steps
* Reduce CBASS frequency to lowest functional value(125Mhz)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
* Reduce CBASS frequency to lowest functional value(125Mhz)
* Reduce CBASS frequency to lowest functional value (125Mhz)

* - **Deep Standby Mode**
- * All default standby mode steps
* Reduce CBASS frequency to lowest functional value(125Mhz)
* Put DDR in Auto-self-refresh

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
* Put DDR in Auto-self-refresh
* Put DDR in auto self-refresh


Once Standby Mode is enabled, you can monitor idle state activity through the PM generic power domain (genpd)
sysfs interface. The power domain names are derived from the PSCI power domain hierarchy defined in the device
Once you enable Standby Mode, you can monitor idle state activity through the PM generic power domain (genpd)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once you enable Standby Mode, you can monitor idle state activity through the PM generic power domain (genpd)
Once the standby modes are enabled, you can monitor idle state activity through the PM generic power domain (genpd)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might change it to passive voice, however it sounds correct this way.


To monitor cluster-level standby mode usage, which is the most useful metric for verifying that the system
is successfully entering the low-latency standby mode when all cores are idle:
The cluster-level standby mode usage metric is useful metric for verifying that the system

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The cluster-level standby mode usage metric is useful metric for verifying that the system
The cluster-level standby mode usage metric is useful for verifying that the system

The existing standby mode is renamed from 'low-latency standby'
to 'standby' and has been migrated to the default device tree from
an overlay. A new 'deep-standby' mode has been added which requires
the overlay for use.

Update the docs to reflect these changes, introduce the new
deep-standby mode along with its pre-requisites and how to
enable the given mode.

Signed-off-by: Scaria Kochidanadu <s-kochidanadu@ti.com>
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.

10 participants