On 10/16/2026 2:35 PM, Markus Schneider-Pargmann wrote:
> On HS-SE platforms TIFS takes longer to initialize. TIFS only removes
> the firewall on the registers at the end of initialization. On HS-SE the
> U-Boot ctrl_mmr_unlock() can happen before TIFS removed the firewall
> leading to a race condition. This leads to a broken watchdog since the
> signal configuration doesn't succeed because the write doesn't take
> effect.
> 
> Wait for TIFS to be initialized using k3_sysfw_wait_ready() before doing
> ctrl_mmr_unlock(). Note that spl_early_init() needs to be done first to
> setup DM.
> 
> Link: 
> https://lore.kernel.org/u-boot/[email protected]/
> Link: https://lore.kernel.org/u-boot/[email protected]/
> Signed-off-by: Markus Schneider-Pargmann <[email protected]>
> ---

I have tested on J722S hs-fs and hs-se devices,
Post this patch wdt reset got functional on hs-se device.

So for this patch

Tested-by: Udit Kumar <[email protected]>

>  arch/arm/mach-k3/j722s/j722s_init.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-k3/j722s/j722s_init.c 
> b/arch/arm/mach-k3/j722s/j722s_init.c
> index 1180c75f551d..c15b3b2682d9 100644
> --- a/arch/arm/mach-k3/j722s/j722s_init.c
> +++ b/arch/arm/mach-k3/j722s/j722s_init.c
> @@ -84,13 +84,14 @@ static void k3_spl_init(void)
>        */
>       store_boot_info_from_rom();
>  
> -     ctrl_mmr_unlock();
> -
>       /* Init DM early */
>       ret = spl_early_init();
>       if (ret)
>               panic("spl_early_init() failed: %d\n", ret);
>  
> +     k3_sysfw_wait_ready();
> +     ctrl_mmr_unlock();
> +
>       /*
>        * Process pinctrl for the serial0 a.k.a. WKUP_UART0 module and continue
>        * regardless of the result of pinctrl. Do this without probing the
> 

Reply via email to