[RFC PATCH 00/19] Enable Low power support for J7200 and J784S4

Prasanth Babu Mantena p-mantena at ti.com
Fri Mar 13 14:58:41 CET 2026


This series introduces support for SOC_OFF and IO+DDR low power mode on TI K3 J7200 and J784s4 SOCs.

The system suspend starts from the host, Linux in our case starts the suspend sequence
by safely suspending the drivers through pm ops and turns off the A cores expect one and
the control transfers to ATF. ATF is encrypted in this suspend flow by TIFS, at the address
that is conveyed to TIFS at the boot time at R5 spl stage.
Then the DDR is set into retention mode at lower op frequency and pmic powers off the remaining voltage rails.

The resume flow starts by reading a flag from the PMIC, which has been magic value set at
suspend time. This identifies the system being in resume flow and corresponding resume path is followed.

Following tasks are done at the R5 spl stage in resume flow.
- restore TIFS context
- Decrypt TFA and load into its msmc region
- set TFA resume vector to its warm_entrypoint
- Turn on A72 core and cluster

J7200 EVM log: https://gist.github.com/PrasanthBabuMantena/8dcfb743a8208b810a2d95d4827d7a04
J784S4 EVM log: https://gist.github.com/PrasanthBabuMantena/593fa0a02160fd1149e779d2a5c3a418

Abhash Kumar Jha (4):
  board: ti: Update pm-boardcfg for all k3 platforms
  board: evm: Enable de-isolation of IOs at resume for j7200 and j784s4
  board: ti: evm: Store wakeup reason on scratchpad memory
  arm: mach-k3: j784s4: Enable DDR_RET exit for j742s2

Gregory CLEMENT (1):
  configs: j784s4_evm_r5: Used main_r5 reserved memory in DDR for malloc
    heap

Prasanth Babu Mantena (7):
  configs: j7200_evm_r5: Used main_r5 reserved memory in DDR for malloc
    heap
  ram: k3-ddrss: Add functionality to identify resume
  arm: dts: k3-j7200: Remove background firewall on DDR
  arm: dts: k3-j7200: Extend firewall for ATF region to TIFS
  r5: comomon.c: Add helper functions needed in LPM resume sequence
  arm: mach-k3: j7200: Enable lpm resume flow for J7200 SOC
  arm: mach-k3: j784s4: Enable lpm resume flow for J784S4

Richard Genoud (3):
  global: k3: use gd to store the resume state
  board: ti: j784s4: Add exit retention for k3-ddrss (J784s4)
  firmware: ti_sci: add low power mode operations

Thomas Richard (4):
  ram: k3-ddrss: Add exit retention support
  board: ti: j721e: Add resume detection for J7200
  board: ti: j784s4: Add resume detection for J784s4
  board: ti: j721e: Add exit retention for k3-ddrss (J7200)

 arch/arm/dts/k3-binman.dtsi                   |  18 +-
 arch/arm/dts/k3-j7200-binman.dtsi             |  26 +-
 arch/arm/dts/k3-security.h                    |   1 +
 arch/arm/include/asm/global_data.h            |  11 +
 arch/arm/mach-k3/common.h                     |  14 +
 .../arm/mach-k3/include/mach/j721e_hardware.h |  20 ++
 .../mach-k3/include/mach/j784s4_hardware.h    |  19 ++
 arch/arm/mach-k3/include/mach/k3-ddr.h        |  18 ++
 arch/arm/mach-k3/include/mach/security.h      |   2 +
 arch/arm/mach-k3/j721e/j721e_init.c           | 124 +++++++++
 arch/arm/mach-k3/j784s4/j784s4_init.c         | 128 ++++++++-
 arch/arm/mach-k3/r5/common.c                  | 116 ++++++++
 arch/arm/mach-k3/schema.yaml                  | 181 ++++++++++--
 arch/arm/mach-k3/security.c                   |  64 +++++
 board/phytec/phycore_am62ax/pm-cfg.yaml       |   7 +-
 board/ti/am62ax/pm-cfg.yaml                   |   7 +-
 board/ti/am62px/pm-cfg.yaml                   |   7 +-
 board/ti/am62x/pm-cfg.yaml                    |   7 +-
 board/ti/am64x/pm-cfg.yaml                    |   7 +-
 board/ti/am65x/pm-cfg.yaml                    |   7 +-
 board/ti/j7200/pm-cfg.yaml                    |  94 ++++++-
 board/ti/j721e/evm.c                          |  84 ++++++
 board/ti/j721e/pm-cfg.yaml                    |  94 ++++++-
 board/ti/j721s2/pm-cfg.yaml                   |   7 +-
 board/ti/j722s/pm-cfg.yaml                    |   7 +-
 board/ti/j784s4/evm.c                         |  77 +++++
 board/ti/j784s4/pm-cfg.yaml                   |  94 ++++++-
 configs/j7200_evm_r5_defconfig                |   5 +-
 configs/j784s4_evm_r5_defconfig               |   3 +-
 drivers/firmware/ti_sci.c                     | 218 +++++++++++++++
 drivers/firmware/ti_sci.h                     | 103 +++++++
 drivers/ram/k3-ddrss/k3-ddrss.c               | 263 +++++++++++++++++-
 drivers/ram/k3-ddrss/lpddr4_k3_reg.h          | 120 ++++++++
 .../arm64/ti/k3-j7200-ti-ipc-firmware.dtsi    |   7 +
 ...-j784s4-j742s2-ti-ipc-firmware-common.dtsi |   6 +
 include/linux/soc/ti/ti_sci_protocol.h        |  17 ++
 tools/binman/etype/ti_board_config.py         |   4 +-
 37 files changed, 1904 insertions(+), 83 deletions(-)
 create mode 100644 drivers/ram/k3-ddrss/lpddr4_k3_reg.h

-- 
2.34.1



More information about the U-Boot mailing list