All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/22] am62: IO+DDR resume support
@ 2025-06-13 13:19 Markus Schneider-Pargmann
  2025-06-13 13:19 ` [PATCH v2 01/22] arm: mach-k3: Remove CANUART IO isolation Markus Schneider-Pargmann
                   ` (22 more replies)
  0 siblings, 23 replies; 25+ messages in thread
From: Markus Schneider-Pargmann @ 2025-06-13 13:19 UTC (permalink / raw)
  To: Vignesh Raghavendra, Nishanth Menon, Sumit Garg, Robert Nelson,
	Tom Rini, Bryan Brattlof
  Cc: u-boot, Kevin Hilman, Vishal Mahaveer, Akashdeep Kaur,
	Kendall Willis, Sebin Francis, Dhruva Gole

Hi,

this series introduces support to resume from IO+DDR. IO+DDR is a low
power mode of am62a and am62p in which nearly everything is powered off
except DDR which is in self-refresh and a few pins which detect
activity and can wakeup the system again.

On resume uboot SPL is loaded and checks if this is a IO+DDR resume. If
it is, the DDR initialization sequence in k3-ddrss differs slightly as
it has to get the DDR out of the self-refresh.

Afterward a specific address determined from DT is used to get the
metadata that stores relevant context addresses. The context is restored
using the tisci message TI_SCI_MSG_MIN_CONTEXT_RESTORE. At the end all
further initializations are skipped and uboot SPL directly jumps into
the DM resume address which takes care of the rest.

The devicetree R5F related patches were picked up from the devicetree
repository tag v6.16-rc1-dts and are required to find the correct
address of the metadata. I picked some additional patches to avoid
conflicts.

k3-ddrss is using absolute register accesses at the moment. I am trying
to submit syscon DT patches upstream to access these through syscon,
unfortunately there is ongoing discussion regarding syscon.

This series is based on next.

I tested this on am62a.

Best,
Markus

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
Changes in v2:
- Remove 'default n' from K3_IODDR
- Pick devicetree patches from upstream instead of mailinglist
- Link to v1: https://lore.kernel.org/r/20250311-topic-am62-ioddr-v2025-04-rc1-v1-0-666de9c105cb@baylibre.com

---
Devarsh Thakkar (3):
      arm64: dts: ti: k3-am62a-wakeup: Add R5F device node
      arm64: dts: ti: k3-am62a7-sk: Enable IPC with remote processors
      arm64: dts: ti: k3-am62p5-sk: Enable IPC with remote processors

Hari Nagalla (2):
      arm64: dts: ti: k3-am62a-mcu: Add R5F remote proc node
      arm64: dts: ti: k3-am62x-sk-common: Enable IPC with remote processors

Jai Luthra (1):
      arm64: dts: ti: k3-am62a-main: Add C7xv device node

Judith Mendez (3):
      arm64: dts: ti: k3-am62a7-sk: Enable PWM
      arm64: dts: ti: k3-am6*: Add boot phase flag to support MMC boot
      arm64: dts: ti: k3-am6*: Remove disable-wp for eMMC

Markus Schneider-Pargmann (13):
      arm: mach-k3: Remove CANUART IO isolation
      arm: mach-k3: Kconfig: Add symbols for IO+DDR Low Power Mode
      ram: k3-ddrss: Add support for DDR in self-refresh
      firmware: ti_sci: Add TI_SCI_MSG_MIN_CONTEXT_RESTORE
      arm: mach-k3: common: Add CANUART wakeup check helpers
      arm: mach-k3: common: Add lpm_resume_from_ddr
      arm: mach-k3: common: Helper for LPM meta data address from DT
      arm: mach-k3: am62a7_init: Resume on LPM exit
      arm: mach-k3: am62p5_init: Resume on LPM exit
      arm: dts: k3-am62a: Add r5 device nodes
      arm: dts: k3-am62p: Add r5 device nodes
      configs: am62ax_evm_r5: Enable IODDR resume support
      configs: am62p_evm_r5_defconfig: Enable IODDR resume support

 arch/arm/dts/k3-am62a7-sk-u-boot.dtsi              |  16 ++
 arch/arm/dts/k3-am62p5-sk-u-boot.dtsi              |  20 +++
 arch/arm/mach-k3/Kconfig                           |   8 +
 arch/arm/mach-k3/am62ax/am62a7_init.c              |  11 ++
 arch/arm/mach-k3/am62px/am62p5_init.c              |  12 ++
 arch/arm/mach-k3/am62x/am625_init.c                |   2 +
 arch/arm/mach-k3/common.c                          | 162 ++++++++++++++++++++
 arch/arm/mach-k3/common.h                          |   4 +
 arch/arm/mach-k3/include/mach/hardware.h           |  32 ++++
 configs/am62ax_evm_r5_defconfig                    |   1 +
 configs/am62px_evm_r5_defconfig                    |   1 +
 drivers/firmware/ti_sci.c                          |  38 +++++
 drivers/firmware/ti_sci.h                          |  14 ++
 drivers/ram/k3-ddrss/k3-ddrss.c                    | 165 +++++++++++++++++++++
 dts/upstream/src/arm64/ti/k3-am62-lp-sk.dts        |  12 ++
 dts/upstream/src/arm64/ti/k3-am62-phycore-som.dtsi |   1 -
 dts/upstream/src/arm64/ti/k3-am625-beagleplay.dts  |   1 -
 dts/upstream/src/arm64/ti/k3-am62a-main.dtsi       |  12 ++
 dts/upstream/src/arm64/ti/k3-am62a-mcu.dtsi        |  25 ++++
 .../src/arm64/ti/k3-am62a-phycore-som.dtsi         |   1 -
 dts/upstream/src/arm64/ti/k3-am62a-wakeup.dtsi     |  25 ++++
 dts/upstream/src/arm64/ti/k3-am62a7-sk.dts         | 139 ++++++++++++++++-
 dts/upstream/src/arm64/ti/k3-am62p5-sk.dts         |  51 ++++++-
 dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi  |  35 ++++-
 dts/upstream/src/arm64/ti/k3-am642-evm.dts         |   1 -
 dts/upstream/src/arm64/ti/k3-am654-base-board.dts  |   1 -
 .../ti/k3-am6548-iot2050-advanced-common.dtsi      |   1 -
 dts/upstream/src/arm64/ti/k3-am69-sk.dts           |   1 -
 include/linux/soc/ti/ti_sci_protocol.h             |   9 ++
 29 files changed, 774 insertions(+), 27 deletions(-)
---
base-commit: 548d997229b7929bd7f0782415952d5a85eb7e64
change-id: 20250306-topic-am62-ioddr-v2025-04-rc1-0b3a0ffe92b1

Best regards,
-- 
Markus Schneider-Pargmann <msp@baylibre.com>


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-06-17 10:01 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-13 13:19 [PATCH v2 00/22] am62: IO+DDR resume support Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 01/22] arm: mach-k3: Remove CANUART IO isolation Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 02/22] arm: mach-k3: Kconfig: Add symbols for IO+DDR Low Power Mode Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 03/22] ram: k3-ddrss: Add support for DDR in self-refresh Markus Schneider-Pargmann
2025-06-16 13:57   ` Bryan Brattlof
2025-06-13 13:19 ` [PATCH v2 04/22] firmware: ti_sci: Add TI_SCI_MSG_MIN_CONTEXT_RESTORE Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 05/22] arm: mach-k3: common: Add CANUART wakeup check helpers Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 06/22] arm: mach-k3: common: Add lpm_resume_from_ddr Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 07/22] arm: mach-k3: common: Helper for LPM meta data address from DT Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 08/22] arm: mach-k3: am62a7_init: Resume on LPM exit Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 09/22] arm: mach-k3: am62p5_init: " Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 10/22] arm64: dts: ti: k3-am62a7-sk: Enable PWM Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 11/22] arm64: dts: ti: k3-am6*: Add boot phase flag to support MMC boot Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 12/22] arm64: dts: ti: k3-am6*: Remove disable-wp for eMMC Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 13/22] arm64: dts: ti: k3-am62a-mcu: Add R5F remote proc node Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 14/22] arm64: dts: ti: k3-am62a-wakeup: Add R5F device node Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 15/22] arm64: dts: ti: k3-am62a-main: Add C7xv " Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 16/22] arm64: dts: ti: k3-am62a7-sk: Enable IPC with remote processors Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 17/22] arm64: dts: ti: k3-am62p5-sk: " Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 18/22] arm64: dts: ti: k3-am62x-sk-common: " Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 19/22] arm: dts: k3-am62a: Add r5 device nodes Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 20/22] arm: dts: k3-am62p: " Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 21/22] configs: am62ax_evm_r5: Enable IODDR resume support Markus Schneider-Pargmann
2025-06-13 13:19 ` [PATCH v2 22/22] configs: am62p_evm_r5_defconfig: " Markus Schneider-Pargmann
2025-06-17 10:01 ` [PATCH v2 00/22] am62: IO+DDR " Sumit Garg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.