Watchdog isn't being fed during MCUboot image confirmation - loop reboot

Hi,
I'm trying to implement a watchdog on the nRF54L15. I configured the watchdog with a maximum window of 1000 ms, and I'm feeding it from a low-priority thread every 500 ms. This setup works well under normal conditions.
However, I'm encountering an issue during OTA firmware updates. I'm using MCUboot as the bootloader, and building the update using sysbuild. I'm able to successfully load the new firmware image. The problem happens when I try to confirm the image: after marking it for testing and performing a reset, the microcontroller enters a reboot loop. It seems that the watchdog isn't being fed during the boot.
If I increase the watchdog's maximum window to a value greater than the reboot time, the problem no longer occurs — the device boots and I can confirm the image correctly.
Could you help me understand what might be going wrong?
Thanks for your insights

 

Parents Reply
  • Hi,
    Initially, I was using NCS version 2.9.1, and builds without problems.

    After upgrading to NCS 3.0.1, I started encountering the following linker errors:

    undefined reference to `z_impl_k_sem_give'
    undefined reference to `z_impl_k_sem_take'

    This issue also occurs in the sample:
    zephyr/samples/sysbuild/with_mcuboot

    I added an app.overlay file with the following content:

    / {
    aliases {
    watchdog0 = &wdt30;
    };
    };
    &wdt30 { status = "okay"; };

    This configuration builds without any issues in NCS 2.9.1. However, in NCS 3.0.1 I have the same errors mentioned above.

Children
No Data
Related