Skip to content
Open
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/AM437X/AM437X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ linux/Foundational_Components/Power_Management/pm_overview
linux/Foundational_Components/Power_Management/pm_dvfs
linux/Foundational_Components/Power_Management/pm_cpuidle
linux/Foundational_Components/Power_Management/pm_suspend_resume
linux/Foundational_Components/Power_Management/pm_rtc_ddr
linux/Foundational_Components_Filesystem
linux/Foundational_Components_Tools
linux/Foundational_Components/Tools/Development_Tools
Expand Down
3 changes: 2 additions & 1 deletion configs/AM62DX/AM62DX_linux_config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,5 @@ Configuration Values
'CONFIG_image_type' : 'default'
'CONFIG_icss_support' : 'yes'
'CONFIG_rt_linux_support' : 'yes'
'CONFIG_crypto' : 'DTHEv2'
'CONFIG_crypto' : 'sa2ul'
'CONFIG_mcrc64' : 'mcrc64'
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,6 @@ Board-specific instructions
p1 - playback jack

.. rubric:: Kernel config
:name: kernel-config-8

.. code-block:: text

Expand Down Expand Up @@ -492,7 +491,6 @@ Board-specific instructions
}

.. rubric:: User space
:name: user-space-8-kernel-audio

``NOTE: Playback volume is HIGH after boot. Do not use headset without lowering it!!!``

Expand Down Expand Up @@ -567,7 +565,6 @@ Board-specific instructions
HDMI bridge**.

.. rubric:: Kernel config
:name: kernel-config-9

.. code-block:: text

Expand All @@ -582,7 +579,6 @@ Board-specific instructions
<*> ASoC Simple sound card support

.. rubric:: User space
:name: user-space-9

.. _hdmi_audio:
The hardware defaults are correct for audio playback, the routing is OK
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ SoC Family: |__PART_FAMILY_DEVICE_NAMES__|

The DSS7 hardware also supports resource sharing across multiple processing cores with separate register region per sub-component and interrupt duplication for each processing core, thus allowing independent context update for the associated pipelines.

.. Image:: /images/DSS7_resource_paritioning_HW.png
.. Image:: /images/DSS7_resource_partitioning_HW.png


Supported Features
Expand Down Expand Up @@ -287,7 +287,7 @@ Note: this is not a comprehensive list of features supported/not supported, and

The device-tree property "ti,dss-shared-mode-vp" can be used by processing core running Linux to enlist one or more video ports being used by it and the ownership related information can be set using ti,dss-shared-mode-owned-vp device-tree property.

To summarize, below is the list of device-tree properties which can be added to display node, using these properties one can set up a resource paritioning scheme tailored as per the desired end use-case::
To summarize, below is the list of device-tree properties which can be added to display node, using these properties one can set up a resource partitioning scheme tailored as per the desired end use-case:

.. ifconfig:: CONFIG_part_variant in ('AM62PX', 'J722S')

Expand All @@ -304,13 +304,13 @@ Note: this is not a comprehensive list of features supported/not supported, and

.. note::

For display sharing mode to work with chosen resource paritioning between Linux and remote core, the remote core needs to be running appropriate firmware which programs the display hardware by supporting this resource paritioning scheme.
For display sharing mode to work with chosen resource partitioning between Linux and remote core, the remote core needs to be running appropriate firmware which programs the display hardware by supporting this resource partitioning scheme.

.. ifconfig:: CONFIG_part_variant in ('AM62PX', 'J722S')

More detailed description of these properties can be found at:
`Display device-tree file <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml?h=09.01.00.008>`__
Also there is a how-to guide available for dss sharing which walks through different examples for resource paritioning using these device-tree properties :
Also there is a how-to guide available for dss sharing which walks through different examples for resource partitioning using these device-tree properties :
`How to enable dss sharing between remote core and Linux <../../../../How_to_Guides/Target/How_to_enable_display_sharing_between_remotecore_and_Linux.html>`__

Unsupported Features/Limitations
Expand Down Expand Up @@ -339,6 +339,7 @@ Unsupported Features/Limitations
- **DisplayPort (MHDP)**
- MST
- 4K@60FPS Resolution

| For 4k@60FPS resolution, sometimes visual artifacts are seen due to Video Sync Loss.
| Therefore the maximum supported video resolution as of now is limited to 4K@30FPS (or equivalent)
| by limiting the dp phy-link rate to 2700Mbps.
Expand All @@ -347,6 +348,7 @@ Unsupported Features/Limitations
- **DisplayPort (MHDP)**
- MST
- 4K@60FPS Resolution

| MHDP PHY has only 2 SERDES LANES dedicated to eDP and with the phy-link rate of 5400Mbps, the maximum
| data rate it can support is 10.8Gbps which is not sufficient for 4k@60FPS. So the maximum supported
| resolution is 4K@30FPS (and equivalent resolutions).
Expand Down Expand Up @@ -430,12 +432,12 @@ Another option is kms++, a C++11 library for kernel mode setting which includes
on the platform. The GPU, if present, associates with the card1, which leaves card2 for DSS1.
In a case where GPU driver is not present, DSS1 will take up card1.

- **Note:** Most display applications and windowing managers are programmed in such a way that
they can only access a display DRM card (card0) and a GPU DRM card (card1). This is why, the
second DSS instance, will not show up running Weston or any framebuffer application, even when
GPU is not present, in which case the windowing manager will only use card0. This makes DSS1
completely available for a 2nd DRM Master. This can be a custom display application, helping out
in the most niche of use-cases.
.. note:: Most display applications and windowing managers are programmed in such a way that
they can only access a display DRM card (card0) and a GPU DRM card (card1). This is why, the
second DSS instance, will not show up running Weston or any framebuffer application, even when
GPU is not present, in which case the windowing manager will only use card0. This makes DSS1
completely available for a 2nd DRM Master. This can be a custom display application, helping out
in the most niche of use-cases.


Testing tidss
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#########################
RTC-Only and RTC+DDR Mode

Check warning on line 2 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 2, "column": 18}}}, "severity": "INFO"}

Check warning on line 2 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 2, "column": 14}}}, "severity": "INFO"}

Check warning on line 2 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'RTC-Only and RTC+DDR Mode'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'RTC-Only and RTC+DDR Mode'.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 2, "column": 1}}}, "severity": "INFO"}

Check warning on line 2 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 2, "column": 1}}}, "severity": "INFO"}
#########################

AM437x supports two RTC modes, RTC+DDR and RTC-Only mode. RTC+DDR Mode is similar to the

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 63}}}, "severity": "INFO"}

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 59}}}, "severity": "INFO"}

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 44}}}, "severity": "INFO"}

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'DDR') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 36}}}, "severity": "INFO"}

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 32}}}, "severity": "INFO"}

Check warning on line 5 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'RTC') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 5, "column": 21}}}, "severity": "INFO"}
Suspend/Resume above but only supports wake by the Power Button present
on the board or from an RTC ALARM2 Event. RTC-Only mode supports the
same wake sources, however DDR context is not maintained so a wake event
causes a cold boot.

Check failure on line 9 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'hardware restart' rather than 'cold boot'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'hardware restart' rather than 'cold boot'.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 9, "column": 10}}}, "severity": "ERROR"}

RTC-Only mode is supported on:

- AM437x GP EVM
- AM437x SK EVM

RTC+DDR mode is supported on:

- AM437x GP EVM

.. rubric:: RTC+DDR Mode

The first step in using RTC+DDR mode is to enable off mode by typing the
following at the command line:

.. code-block:: console

$ echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode
Copy link
Member

Choose a reason for hiding this comment

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


With off-mode enabled, a command to enter DeepSleep0 will now enter
RTC-Only mode:
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

This text appears to be incorrect. Under the "RTC+DDR Mode" section, it states that "a command to enter DeepSleep0 will now enter RTC-Only mode", but based on the context and section heading, it should describe entering RTC+DDR mode. The distinction between RTC-Only and RTC+DDR modes is explained later (lines 49-53) as depending on regulator configuration, but the text here should clarify that with proper regulator configuration, this enters RTC+DDR mode.

Suggested change
RTC-Only mode:
either RTC-Only mode or RTC+DDR mode, depending on the regulator configuration (see below):

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Need someone from PM to verify whether this change makes sense or not.

Copy link
Collaborator

Choose a reason for hiding this comment

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


.. code-block:: console

$ echo mem > /sys/power/state

This method of entry only supports Power button as the wake source.

To use the rtc as a wake source, after enabling off mode use the
following command:

.. code-block:: console

$ rtcwake -s <NUMBER OF SECONDS TO SLEEP> -d /dev/rtc0 -m mem

Whether or not your board enters RTC-Only mode or RTC+DDR mode depends
on the regulator configuration and whether or not the regulator that
supplies the DDR is configured to remain on during suspend. This is
supported by the TPS65218 in use of the AM437x boards but not the
TPS65217 or TPS65910 present on AM335x boards.

.. code-block:: dts

tps65218: tps65218@24 {
reg = <0x24>;
compatible = "ti,tps65218";
interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* NMIn */
interrupt-parent = <&gic>;
interrupt-controller;
#interrupt-cells = <2>;

...

dcdc3: regulator-dcdc3 {
compatible = "ti,tps65218-dcdc3";
regulator-name = "vdcdc3";
regulator-suspend-enable;
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
regulator-boot-on;
regulator-always-on;
};

...

};

Another important thing to make sure of is that you are using the proper
u-boot. A certain u-boot is required in order to support RTC+DDR mode
otherwise the following message appears during boot of the kernel:

``PM: bootloader does not support rtc-only!``

When building u-boot, rather than using ``am43xx_evm_config`` you must
use ``am43xx_evm_rtconly_config`` to support either RTC mode.

.. rubric:: RTC-Only Mode

RTC-Only mode does not maintain DDR context so placing a board into
RTC-only mode allows for very low power consumption after which a
supported wake source will cause a cold boot. RTC-Only mode is entered

Check failure on line 90 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'hardware restart' rather than 'cold boot'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'hardware restart' rather than 'cold boot'.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 90, "column": 36}}}, "severity": "ERROR"}
via the poweroff command.

To wakeup from RTC-Only mode via an RTC alarm, a separate tool must be
used to program an RTC alarm prior to entering poweroff.

Check failure on line 94 in source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'before' rather than 'prior to'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'before' rather than 'prior to'.", "location": {"path": "source/linux/Foundational_Components/Power_Management/pm_rtc_ddr.rst", "range": {"start": {"line": 94, "column": 30}}}, "severity": "ERROR"}
Loading