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
10 changes: 9 additions & 1 deletion configs/AM62DX/AM62DX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,15 @@ linux/Foundational_Components/Machine_Learning/nnstreamer
linux/Foundational_Components/Machine_Learning/onnxrt
linux/Foundational_Components/Machine_Learning/tflite

#linux/Foundational_Components_Power_Management
linux/Foundational_Components_Power_Management
linux/Foundational_Components/Power_Management/pm_overview
linux/Foundational_Components/Power_Management/pm_dfs
linux/Foundational_Components/Power_Management/pm_cpuidle
linux/Foundational_Components/Power_Management/pm_runtime_pm
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_Kernel_Users_Guide
linux/Foundational_Components_Kernel_LTP-DDT_Validation
Expand Down
28 changes: 14 additions & 14 deletions source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,23 @@
,,PRG,No
,,PGD,No
,,VTM,Yes
Power Management,Deep Sleep Low Power Mode ,,No
,Deep Sleep LPM Wakeup Events,RTC Timer,No
Power Management,Deep Sleep Low Power Mode ,,Yes
,Deep Sleep LPM Wakeup Events,RTC Timer,Yes

Check warning on line 47 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.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/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 47, "column": 34}}}, "severity": "INFO"}

Check warning on line 47 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'LPM') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'LPM') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 47, "column": 16}}}, "severity": "INFO"}
,,GT Timers,No
,,WKUP UART,No
,,WKUP UART,Yes

Check warning on line 49 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

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

Check warning on line 49 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'WKUP') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'WKUP') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 49, "column": 6}}}, "severity": "INFO"}
,,I2C,No
,,MCU GPIO,No
,,I/O Daisy Chain,No
,,USB Connect/Disconnect,No
,,USB Remote Wakeup,No
,MCU-Only Low Power Mode,,No
,Standby Low Power Mode,,No
,Partial I/O Low Power Mode,,No
,IO + DDR low power mode,,No
,Boot-time OPP configurations,,No
,Runtime Power Management,,No
,,MCU GPIO,Yes

Check warning on line 51 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

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

Check warning on line 51 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'MCU') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'MCU') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 51, "column": 6}}}, "severity": "INFO"}
,,I/O Daisy Chain,Yes
,,USB Connect/Disconnect,Yes
,,USB Remote Wakeup,Yes
,MCU-Only Low Power Mode,,Yes

Check warning on line 55 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'MCU') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'MCU') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 55, "column": 5}}}, "severity": "INFO"}
,Standby Low Power Mode,,Yes
,Partial I/O Low Power Mode,,Yes
,IO + DDR low power mode,,Yes

Check warning on line 58 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.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/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 58, "column": 10}}}, "severity": "INFO"}

Check failure on line 58 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsErrors] Use 'I/O' rather than 'IO'. Raw Output: {"message": "[RedHat.TermsErrors] Use 'I/O' rather than 'IO'.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 58, "column": 5}}}, "severity": "ERROR"}
,Boot-time OPP configurations,,Yes

Check warning on line 59 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'OPP') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'OPP') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 59, "column": 15}}}, "severity": "INFO"}
,Runtime Power Management,,Yes
,DFS/CPUFreq,,Yes
,CPUIdle (A53 WFI),,No
,CPUIdle (A53 WFI),,Yes

Check warning on line 62 in source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'WFI') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'WFI') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/devices/AM62DX/linux/Release_Specific_Build_Sheet.rst", "range": {"start": {"line": 62, "column": 18}}}, "severity": "INFO"}
,CPUIdle (DDR in Self-Refresh),,No
Interprocessor Communication,Mailbox,,Yes
,Spinlock,,Yes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ C-state. Governor decides whether to continue in current state/
transition to a different state. Current 'driver' is called to
transition to the selected state.

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

.. rubric:: Standby Mode

Expand All @@ -32,7 +32,7 @@ transition to the selected state.
.. rubric:: Enable Standby

In order to enable Standby the `k3-am62x-sk-lpm-standby.dtso
<https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-standby.dtso?h=11.02.08>`__
<https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-standby.dtso?h=12.00.00.07>`__
overlay should be applied. Refer to :ref:`How to enable DT overlays
<howto_dt_overlays>` for more details. More information on what the overlay
does is in the :ref:`linux-device-tree-label` section.
Expand Down Expand Up @@ -112,7 +112,7 @@ transition to the selected state.

In order to implement Standby in Linux, an idle-states node has to be added
and then referenced by the CPU node. The `k3-am62x-sk-lpm-standby.dtso
<https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-standby.dtso?h=11.02.08>`__
<https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-standby.dtso?h=12.00.00.07>`__
can be used as a reference.

.. code-block:: dts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ To view supported OPP's (frequency in kHz),
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
750000000 1000000000 1500000000 2000000000

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

.. code-block:: console

Expand Down Expand Up @@ -248,7 +248,7 @@ table.
};
};

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

The OPP table defined in the following files
allows defining of a different set of OPPs for each different SoC:
Expand All @@ -257,7 +257,7 @@ table.

:file:`arch/arm64/boot/dts/ti/k3-am625.dtsi`

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

:file:`arch/arm64/boot/dts/ti/k3-am62a7.dtsi`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,25 @@ wakeup event is triggered.

Only AM62 LP-SK EVM supports Partial I/O mode.

The reference implementation in this SDK implements Partial I/O as a
poweroff state. On poweroff, Linux ti_sci driver checks the potential
Partial I/O wakeup sources for being enabled. If one of the wakeup
sources is found to be enabled, Partial I/O is entered instead of poweroff.
Partial I/O is a poweroff state. Upon poweroff, the Linux ti_sci driver
chooses Partial I/O entry if any CAN I/O wakeup sources are present.

The following wakeup sources have been configured for Partial I/O:
mcu_uart0, mcu_mcan0, and mcu_mcan1. Partial I/O mode can only be tested
when `k3-am62x-sk-lpm-wkup-sources.dtso <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-wkup-sources.dtso?h=11.02.08>`__
overlay is loaded. Please refer to :ref:`How to enable DT overlays<howto_dt_overlays>` for more details.
Partial I/O supports wakeup sources mcu_mcan0 and mcu_mcan1. For more
information about enabling CAN wakeup, see
:ref:`CAN I/O Daisy Chain<pm_wakeup_sources_can>`.

After Linux boots, the MCAN wakeup for Partial I/O is enabled.
.. ifconfig:: CONFIG_part_variant in ('AM62DX')

.. important::

Currently, wakeup from CAN is not available on AM62D EVM, but CAN
wakeup still needs to be **enabled** to enter Partial I/O. To wakeup
from Partial I/O, enable WKUP UART wakeup by entering the following
command:

.. code-block:: console

root@<machine>:~# devmem2 0x4084024 w 0x20050000 # MCU_PADCONFIG9 for wkup_uart0

Enter Partial I/O mode with the following command:

Expand All @@ -70,13 +78,13 @@ the console output will stop at the following lines:

.. code-block:: text

[ 51.698039] systemd-shutdown[1]: Powering off.
[ 51.769478] reboot: Power down
[ 74.310565] systemd-shutdown[1]: Powering off.
[ 74.396204] reboot: Power down
[ 74.399358] ti-sci 44043000.system-controller: Entering Partial-IO because a powered wakeup-enabled device was found.

The system has entered Partial I/O and can only be woken up with an
activity on the I/O pin programmed for wakeup. For example, if mcu_mcan0
wakeup was enabled, grounding Pin 22 of J8 MCU Header will wakeup the
system and it will go through a normal Linux boot process.
The above output indicates that the system has entered Partial I/O. The
system will resume to through a normal Linux boot process by triggering
activity on the wakeup I/O pin programmed.

.. _pm_io_only_plus_ddr:

Expand All @@ -88,7 +96,7 @@ I/O Only Plus DDR

This mode is not applicable for AM62X.

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

This mode is similar to Partial I/O mode, with the major distinction being
that the DDR memory is kept in self refresh to save context. All the processor
Expand All @@ -113,13 +121,16 @@ I/O Only Plus DDR

.. important:: Jumper J12 should be connected on SK to enable system to enter I/O Only plus DDR mode.

The wakeup sources that can be used to wake the system from I/O Only Plus
DDR are mcu_uart0, mcu_mcan0, mcu_mcan1 and wkup_uart0. To use the mcu_mcan0
and mcu_mcan1 wakeup sources, apply the
`k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-lpm-io-ddr-wkup-sources.dtso?h=11.02.08>`__
overlay. Please refer to :ref:`How to enable DT overlays<howto_dt_overlays>`
for more details. To use the mcu_uart0 and wkup_uart0 wakeup sources, direct
register writes can be used to enable wakeup after Linux boots.
.. ifconfig:: CONFIG_part_variant in ('AM62DX')

.. important:: Jumper J16 should be connected on SK to enable system to enter I/O Only plus DDR mode.

I/O Only Plus DDR supports wakeup sources mcu_uart0, mcu_mcan0,
mcu_mcan1 and wkup_uart0. To use the mcu_mcan0 and mcu_mcan1 wakeup
sources, see
:ref:`CAN I/O Daisy Chain<pm_wakeup_sources_can>`.
To use the mcu_uart0 and wkup_uart0 wakeup sources, direct register
writes enable wakeup after Linux boots.

.. rubric:: Following commands set the wakeup EN bit, enable receive for pad in PADCONFIG register and can
be used to enable wakeup from mcu_uart0 and wkup_uart0 pins respectively.
Expand All @@ -143,7 +154,7 @@ I/O Only Plus DDR
Main UART, USB0, and USB1 as these wakeup sources are not
supported for this mode.

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

.. code-block:: console

Expand All @@ -163,7 +174,7 @@ I/O Only Plus DDR

.. rubric:: Then, configure PMIC register bit to turn off only selected rails for this mode.

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

.. code-block:: console

Expand Down Expand Up @@ -253,7 +264,7 @@ In order to enter Deep Sleep, use the following command:
[ 444.826567] psci: CPU2 killed (polled 0 ms)
[ 444.830170] psci: CPU3 killed (polled 0 ms)

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

.. code-block:: console

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ The dynamic power management features enabled on |__PART_FAMILY_DEVICE_NAMES__|
#. DVFS
#. CPUIdle

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

#. Dynamic Frequency Scaling
#. CPUIdle
Expand All @@ -56,7 +56,7 @@ duration. This is accomplished by leveraging the low power modes supported
by the SoC and the `System Sleep States <https://docs.kernel.org/admin-guide/pm/sleep-states.html>`__
supported by the Linux kernel.

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

The static power management features on |__PART_FAMILY_DEVICE_NAMES__| are:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ The following drivers have been validated for Runtime PM in this release:

DSS, GPU, McASP, OSPI, MCAN, Video Codec.

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

DSS, McASP, OSPI, MCAN.

.. rubric:: Driver Usage

Linux provides the following sysfs interface (/sys/devices/.../power/)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ Specifically, checking of constraints is done at two levels:

The code enabling the constraints framework can be found in:

#. TISCI PM Domain driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/pmdomain/ti/ti_sci_pm_domains.c?h=11.02.08
#. TISCI driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/firmware/ti_sci.c?h=11.02.08
#. TISCI PM Domain driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/pmdomain/ti/ti_sci_pm_domains.c?h=12.00.00.07
#. TISCI driver: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/firmware/ti_sci.c?h=12.00.00.07

Examples of adding constraints from the remote core side are being implemented and will
be enabled in future release.
Expand Down Expand Up @@ -230,7 +230,7 @@ If constraint is put on MAIN devgroup devices, then no low power mode is possibl
`Devgroup section <https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62x/soc_devgrps.html#am62x-device-group-descriptions>`__
of TISCI documentation.

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

For detailed description for devgroup of these devices, refer to
`Devgroup section <https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62ax/soc_devgrps.html#am62ax-device-group-descriptions>`__
Expand Down
Loading
Loading