Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions configs/AM62AX/AM62AX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ linux/Foundational_Components/Power_Management/pm_low_power_modes
linux/Foundational_Components/Power_Management/pm_wakeup_sources
linux/Foundational_Components/Power_Management/pm_sw_arch
linux/Foundational_Components/Power_Management/pm_debug
linux/Foundational_Components/Power_Management/pm_upstream

linux/Foundational_Components/System_Security/Security_overview
linux/Foundational_Components/System_Security/SELinux
Expand Down
1 change: 1 addition & 0 deletions configs/AM62DX/AM62DX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ linux/Foundational_Components/Power_Management/pm_low_power_modes
linux/Foundational_Components/Power_Management/pm_wakeup_sources
linux/Foundational_Components/Power_Management/pm_sw_arch
linux/Foundational_Components/Power_Management/pm_debug
linux/Foundational_Components/Power_Management/pm_upstream

linux/Foundational_Components_Kernel_Users_Guide
linux/Foundational_Components_Kernel_LTP-DDT_Validation
Expand Down
1 change: 1 addition & 0 deletions configs/AM62LX/AM62LX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ linux/Foundational_Components/Power_Management/pm_am62lx_low_power_modes
linux/Foundational_Components/Power_Management/pm_psci_s2idle
linux/Foundational_Components/Power_Management/pm_wakeup_sources
linux/Foundational_Components/Power_Management/pm_am62lx_debug
linux/Foundational_Components/Power_Management/pm_upstream

linux/Foundational_Components/System_Security/Security_overview
#linux/Foundational_Components/System_Security/SELinux
Expand Down
1 change: 1 addition & 0 deletions configs/AM62PX/AM62PX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ linux/Foundational_Components/Power_Management/pm_low_power_modes
linux/Foundational_Components/Power_Management/pm_wakeup_sources
linux/Foundational_Components/Power_Management/pm_sw_arch
linux/Foundational_Components/Power_Management/pm_debug
linux/Foundational_Components/Power_Management/pm_upstream

linux/Foundational_Components/System_Security/Security_overview
linux/Foundational_Components/System_Security/SELinux
Expand Down
1 change: 1 addition & 0 deletions configs/AM62X/AM62X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ linux/Foundational_Components/Power_Management/pm_low_power_modes
linux/Foundational_Components/Power_Management/pm_wakeup_sources
linux/Foundational_Components/Power_Management/pm_sw_arch
linux/Foundational_Components/Power_Management/pm_debug
linux/Foundational_Components/Power_Management/pm_upstream

linux/Foundational_Components/System_Security/Security_overview
linux/Foundational_Components/System_Security/SELinux
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,333 @@
.. _pm_upstream:

Check warning on line 1 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.ReadabilityGrade] Simplify your language. The calculated Flesch–Kincaid grade level of 10.61 is above the recommended reading grade level of 9. Raw Output: {"message": "[RedHat.ReadabilityGrade] Simplify your language. The calculated Flesch–Kincaid grade level of 10.61 is above the recommended reading grade level of 9.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 1, "column": 1}}}, "severity": "INFO"}

###############
Upstream Status

Check warning on line 4 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'Upstream Status'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'Upstream Status'.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 4, "column": 1}}}, "severity": "INFO"}
###############

At TI, developers practice an upstream-first mindset where all patches that
are in the SDK are expected to be available in their respective upstream

Check warning on line 8 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.DoNotUseTerms] Do not use "respective" or "respectively". Rewrite to avoid using these words. Raw Output: {"message": "[RedHat.DoNotUseTerms] Do not use \"respective\" or \"respectively\". Rewrite to avoid using these words.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 8, "column": 54}}}, "severity": "WARNING"}

Check warning on line 8 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'are expected' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'are expected' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 8, "column": 16}}}, "severity": "INFO"}
repositories as soon as possible. However, because of the extensive
community review process, getting patches into their upstream repository can
take a long time, so features may appear in the SDK before upstream.

Check warning on line 11 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsWarnings] Consider using 'might' or 'can' rather than 'may' unless updating existing content that uses the term. Raw Output: {"message": "[RedHat.TermsWarnings] Consider using 'might' or 'can' rather than 'may' unless updating existing content that uses the term.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 11, "column": 31}}}, "severity": "WARNING"}

This page tracks the status of all low power features in upstream. Users are

Check warning on line 13 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'are encouraged' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'are encouraged' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 13, "column": 74}}}, "severity": "INFO"}
encouraged to review any pending series listed.

This page is updated with each SDK release, so it may fall out of date as new

Check warning on line 16 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsWarnings] Consider using 'might' or 'can' rather than 'may' unless updating existing content that uses the term. Raw Output: {"message": "[RedHat.TermsWarnings] Consider using 'might' or 'can' rather than 'may' unless updating existing content that uses the term.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 16, "column": 51}}}, "severity": "WARNING"}

Check warning on line 16 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'is updated' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'is updated' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 16, "column": 11}}}, "severity": "INFO"}
patches are accepted to the upstream codebases.

Check warning on line 17 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.PassiveVoice] 'are accepted' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'are accepted' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 17, "column": 9}}}, "severity": "INFO"}

.. note::

Wakeup sources that have support in upstream are not necessarily configured
in the device tree. Refer to the
:ref:`Wakeup Sources section<pm_wakeup_sources>` for how to enable specific
wakeup sources in the device tree if needed.

.. ifconfig:: CONFIG_part_variant in ('AM62X')

.. list-table:: Feature Upstream Status
:widths: auto
:header-rows: 1

* - Feature
- Upstream
- Notes
* - DeepSleep
- Yes
- Remoteproc graceful shutdown is not upstream. See additional steps below.
* - MCU Only
- Yes
- Same remoteproc limitation as DeepSleep.
* - Partial I/O
- Yes
-
* - Dynamic Frequency Scaling
- Yes
-
* - Standby
- No
-
* - Runtime PM
- Yes
-

.. list-table:: Wakeup Source Upstream Status
:widths: auto
:header-rows: 1

* - Wakeup Source
- DeepSleep
- MCU Only
- Partial I/O
- Notes
* - Real-Time Clock (RTC)
- Yes
- Yes
-
-
* - MCU (WKUP) GPIO
- Yes
- Yes
-
-
* - Main I/O Daisy Chain
- Partial
- Partial
-
- Main UART wakeup is upstreamed, but Main GPIO wakeup is not.
* - USB
- Yes
- Yes
-
-
* - WKUP UART
- Yes
- Yes
-
-
* - MCU IPC
-
- Yes
-
-
* - CAN I/O Daisy Chain
- No
- No
- Yes
-

.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX', 'AM62PX')

.. list-table:: Feature Upstream Status
:widths: auto
:header-rows: 1

* - Feature
- Upstream
- Notes
* - DeepSleep
- Yes
-
* - MCU Only
- Yes
-
* - Partial I/O
- Yes
-
* - I/O Only Plus DDR
- In progress
- Linux and U-Boot patches are pending review.
* - Dynamic Frequency Scaling
- Yes
-
* - Standby
- No
-
* - Runtime PM
- Yes
-

.. list-table:: Wakeup Source Upstream Status
:widths: auto
:header-rows: 1

* - Wakeup Source
- DeepSleep
- MCU Only
- Partial I/O
- I/O Only Plus DDR
- Notes
* - Real-Time Clock (RTC)
- Yes
- Yes
-
-
-
* - WKUP GPIO
- Yes
- Yes
-
-
-
* - Main I/O Daisy Chain
- Partial
- Partial
-
-
- Main UART wakeup is upstreamed, but Main GPIO wakeup is not.
* - USB
- Yes
- Yes
-
-
-
* - WKUP UART
- Yes
- Yes
-
-
-
* - MCU IPC
-
- Yes
-
-
-
* - CAN I/O Daisy Chain
- No
- No
- Yes
- In progress
- I/O Only Plus DDR patches are in progress.

.. ifconfig:: CONFIG_part_variant in ('AM62LX')

.. important::

All low power mode features in Arm Trusted Firmware have not yet been
upstreamed. The following list will only apply to upstream Linux assuming
that the TI fork for TF-A is being used. Refer to
:ref:`Arm Trusted Firmware<foundational-components-atf>` section for how

Check warning on line 190 in source/linux/Foundational_Components/Power_Management/pm_upstream.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.UserReplacedValues] Separate words by underscores in user-replaced values. Raw Output: {"message": "[RedHat.UserReplacedValues] Separate words by underscores in user-replaced values.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_upstream.rst", "range": {"start": {"line": 190, "column": 33}}}, "severity": "INFO"}
to use the TI TF-A fork.

.. list-table:: Feature Upstream Status
:widths: auto
:header-rows: 1

* - Feature
- Upstream
- Notes
* - DeepSleep
- Yes
-
* - RTC + I/O + DDR
- In progress
- Linux patches pending review.
* - RTC Only
- In progress
-
* - Standby
- In progress
- Linux patches pending review.
* - Dynamic Frequency Scaling
- Yes
-
* - Runtime PM
- Yes
-
* - Wakeup source detection
- No
-

.. list-table:: Wakeup Source Upstream Status
:widths: auto
:header-rows: 1

* - Wakeup Source
- DeepSleep
- RTC + I/O + DDR
- RTC Only
- Notes
* - Real-Time Clock (RTC)
- No
- No
- No
-
* - WKUP GPIO
- Yes
-
-
-
* - Main I/O Daisy Chain
- Partial
-
-
- Main UART wakeup is upstreamed, but Main GPIO wakeup is not.
* - WKUP I/O Daisy Chain
- Yes
- Yes
-
-
* - WKUP UART
- Yes
-
-
-
* - USB
- Yes
-
-
-
* - RTC I/O
- No
- No
- No
-

***********************
Pending Upstream Series
***********************

.. ifconfig:: CONFIG_part_variant in ('AM62X')

Currently, there are no pending upstream series for
|__PART_FAMILY_DEVICE_NAMES__|.

.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX', 'AM62PX')

.. list-table:: Pending Upstream Series
:widths: auto
:header-rows: 1

* - Series
- Feature Covered
- Codebase
* - `arm64: dts: ti: k3-am62a7-sk: Split r5f memory region <https://lore.kernel.org/all/20260701-topic-am62a-ioddr-dt-v6-19-v7-0-e9db8b16821a@baylibre.com/>`__
- I/O Only Plus DDR
- `Linux <https://github.com/torvalds/linux>`__
* - `am62: IO+DDR resume support <https://lore.kernel.org/all/20260105-topic-am62-ioddr-v2025-04-rc1-v9-0-7e33f2c77dbf@baylibre.com/>`__
- I/O Only Plus DDR
- `U-Boot <https://git.u-boot-project.org/u-boot/u-boot/-/tree/main>`__
* - `IO+DDR low power mode bugfixes for AM62P and AM62A <https://lore.kernel.org/u-boot/20260310100614.951573-1-a-kaur@ti.com/>`__
- I/O Only Plus DDR
- `U-Boot <https://git.u-boot-project.org/u-boot/u-boot/-/tree/main>`__

After applying the pending series to their respective repositories,
I/O Only Plus DDR will work in upstream.

.. ifconfig:: CONFIG_part_variant in ('AM62LX')

.. list-table:: Pending Upstream Series
:widths: auto
:header-rows: 1

* - Series
- Feature Covered
- Codebase
* - `PM: QoS/pmdomains: support resume latencies for system-wide PM <https://lore.kernel.org/linux-pm/20260611-topic-lpm-pmdomain-device-constraints-v3-0-75d69438518b@baylibre.com/>`__
- RTC + I/O + DDR, standby
- `Linux <https://github.com/torvalds/linux>`__

To enable RTC + I/O + DDR and standby using upstream Linux, apply the pending
upstream series then apply the commit
`"PENDING: arm64: dts: ti: k3-am62l3: Add device tree support for s2idle and standby" <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/?h=ti-linux-6.18.y&id=ac8dc65b10a7156b781fec5d3a51360e259b9546>`__
from the ti-linux-kernel to the upstream Linux repository.

***********
Workarounds
***********

.. ifconfig:: CONFIG_part_variant in ('AM62X')

Remoteproc suspend/resume and graceful shutdown are not present upstream,
which prevents Linux from resuming properly from low power states. To enable
suspend/resume on Linux remove the M4 remoteproc module. Enter the following
command into the Linux console of the EVM:

.. code-block:: console

root@am62xx-evm:~# rmmod ti_k3_m4_remoteproc

.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'AM62DX', 'AM62PX', 'AM62LX')

No workarounds are needed for |__PART_FAMILY_DEVICE_NAMES__|.
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ Power Management
Foundational_Components/Power_Management/pm_sw_arch
Foundational_Components/Power_Management/pm_debug
Foundational_Components/Power_Management/pm_am62lx_debug
Foundational_Components/Power_Management/pm_upstream
Loading