[PATCH v9 08/13] arm: mach-k3: am62a7_init: Resume on LPM exit
Markus Schneider-Pargmann (TI.com)
msp at baylibre.com
Mon Jan 5 17:38:53 CET 2026
When exiting a low power mode with DDR self-refresh, we can directly
resume after DDR setup is done. Call the common function to resume.
Swap order of setup_qos() and spl_enable_cache(). setup_qos() is
required for LPM resume but spl_enable_cache() is not required. There is
no dependency between the two.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp at baylibre.com>
---
arch/arm/mach-k3/am62ax/am62a7_init.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-k3/am62ax/am62a7_init.c b/arch/arm/mach-k3/am62ax/am62a7_init.c
index c1c7d669a45f53b7528c80d44bf9b914fed1cc10..74e598d52420cd2ff59384c69d1b038a40e08cca 100644
--- a/arch/arm/mach-k3/am62ax/am62a7_init.c
+++ b/arch/arm/mach-k3/am62ax/am62a7_init.c
@@ -194,14 +194,24 @@ void board_init_f(ulong dummy)
enable_mcu_esm_reset();
}
+ setup_qos();
+
#if defined(CONFIG_K3_AM62A_DDRSS)
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
if (ret)
panic("DRAM init failed: %d\n", ret);
-#endif
- spl_enable_cache();
- setup_qos();
+ if (wkup_ctrl_is_lpm_exit()) {
+ u64 meta_data_addr;
+
+ ret = wkup_r5f_am62_lpm_meta_data_addr(&meta_data_addr);
+ if (ret)
+ panic("Failed to get LPM meta data address %d\n", ret);
+ lpm_resume_from_ddr(meta_data_addr);
+ }
+#endif
+
+ spl_enable_cache();
if (IS_ENABLED(CONFIG_SPL_ETH) && IS_ENABLED(CONFIG_TI_AM65_CPSW_NUSS) &&
spl_boot_device() == BOOT_DEVICE_ETHERNET) {
--
2.51.0
More information about the U-Boot
mailing list