This series is the U-Boot part of the work to add the suspend to RAM support for the K3 J7200 EVM board.
During the boot R5 SPL makes a copy of DM-Firmware in memory. Resume detection is done by reading a magic value in a pmic register (set by DM-Firmware). If a resume is detected, R5 SPL run the exit retention sequence of the DDR. Then it restores TF-A in SRAM (it saved itself to DDR), and load DM-Firmware using the copy done during the boot (fit image processing is skipped). The copy of TF-A/DM-Firmware, the SPL stack and malloc are located in a reserved memory region (for the kernel point of view) to avoid any memory corruption. Changes in v2: - Set exit retention code for DDR behind CONFIG_K3_J721E_DDRSS - Check if TF-A is running in DRAM, if yes no need to restore it - Remove BL31_START macro, and get TF-A start address from the fit image - Remove the test_enter_suspend command - Link to v1: https://lore.kernel.org/u-boot/20231016141135.325698-1-thomas.rich...@bootlin.com/ Gowtham Tammana (1): DO NOT MERGE: arm: dts: k3-j7200-r5-common: Add pmic node for esm Gregory CLEMENT (2): configs: j7200_evm_r5: Used reserved memory in DDR for stack configs: j7200_evm_r5: Move address used for allocation in the reserved space Thomas Richard (5): board: ti: j721e: Add resume detection for J7200 ram: k3-ddrss: Add exit retention support board: ti: j721e: Add the missing part of exit retention for k3-ddrss (J7200) board: ti: j721e: During resume spl restores TF-A and DM-Firmware arm: mach-k3: j7200: Skip fit processing when resuming .../arm/dts/k3-j7200-r5-common-proc-board.dts | 17 +- arch/arm/mach-k3/common.c | 48 ++- arch/arm/mach-k3/include/mach/j721e_spl.h | 28 ++ arch/arm/mach-k3/sysfw-loader.c | 16 +- board/ti/j721e/evm.c | 79 +++++ configs/j7200_evm_r5_defconfig | 4 +- drivers/ram/k3-ddrss/k3-ddrss.c | 307 ++++++++++++++++++ 7 files changed, 489 insertions(+), 10 deletions(-) -- 2.39.2