[v2 PATCH] mach-k3: Defer CTRL_MMR access until after TIFS version response
Udit Kumar
u-kumar1 at ti.com
Wed Feb 25 06:15:59 CET 2026
The CTRL_MMR registers are firewalled at boot time, and TIFS unlock
them as part of the system firmware initialization sequence.
Current code assumes the CTRL_MMR space can be accessible at early
stage of board_init_f execution by unlocking them.
But on HS-SE devices, TIFS takes more time to complete initialization,
and CTRL_MMR registers remains firewalled and not getting unlocked.
Which results in any write to these registers are ignored.
So, move the CTRL_MMR unlock to a point after the TIFS version message is
received, ensuring that the firmware initialization has progressed and
CTRL_MMR can be unlocked successfully.
Fixes: 5e291ee34fd4 ("arch: mach-k3: Introduce basic files to support J722S SoC family")
Reported-by: Diwakar Dhyani <d-dhyani at ti.com>
Signed-off-by: Udit Kumar <u-kumar1 at ti.com>
---
Changelog:
Changes in v2:
- Moved control mmr after tifs version
- updated commit msg
link
v1: https://lore.kernel.org/all/20260223144558.395289-1-u-kumar1@ti.com/
Test logs of v2:
HS-FS: https://gist.github.com/uditkumarti/c66ecbe800b4b3549fec3e505fe26dbf#file-hs_fs
HS-SE: https://gist.github.com/uditkumarti/c66ecbe800b4b3549fec3e505fe26dbf#file-hs_se
arch/arm/mach-k3/j722s/j722s_init.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-k3/j722s/j722s_init.c b/arch/arm/mach-k3/j722s/j722s_init.c
index 1180c75f551..32a3eed40d4 100644
--- a/arch/arm/mach-k3/j722s/j722s_init.c
+++ b/arch/arm/mach-k3/j722s/j722s_init.c
@@ -84,8 +84,6 @@ static void k3_spl_init(void)
*/
store_boot_info_from_rom();
- ctrl_mmr_unlock();
-
/* Init DM early */
ret = spl_early_init();
if (ret)
@@ -151,6 +149,8 @@ static void k3_spl_init(void)
/* Output System Firmware version info */
k3_sysfw_print_ver();
+ ctrl_mmr_unlock();
+
/* Output DM Firmware version info */
if (IS_ENABLED(CONFIG_ARM64))
k3_dm_print_ver();
--
2.34.1
More information about the U-Boot
mailing list