On Mon, 5 Oct 2026 at 11:18, Bernhard Beschow <[email protected]> wrote:
>
> The WDT bit gets reset and becomes writeable after power on reset which
> imx2_wdt_reset() represents. While the WDT bit in the WCR register
> already gets reset, its locked attribute wasn't. Fix this inconsistency
> by adding the missing unlock of its locked attribute.
>
> Fixes: daca13d495a1 ("hw/watchdog: Implement full i.MX watchdog support")
> cc: qemu-stable
> Reported-by: Peter Maydell <[email protected]>
> Reviewed-by: Bin Meng <[email protected]>
> Signed-off-by: Bernhard Beschow <[email protected]>
> ---
>  include/hw/watchdog/wdt_imx2.h | 2 +-
>  hw/watchdog/wdt_imx2.c         | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/hw/watchdog/wdt_imx2.h b/include/hw/watchdog/wdt_imx2.h
> index ad36b8820d..fc01fc46e7 100644
> --- a/include/hw/watchdog/wdt_imx2.h
> +++ b/include/hw/watchdog/wdt_imx2.h
> @@ -85,7 +85,7 @@ struct IMX2WdtState {
>
>      bool wcr_locked;            /* affects WDZST, WDBG, and WDW */
>      bool wcr_wde_locked;        /* affects WDE */
> -    bool wcr_wdt_locked;        /* affects WDT (never cleared) */
> +    bool wcr_wdt_locked;        /* affects WDT, cleared on POR */
>  };
>
>  #endif /* WDT_IMX2_H */
> diff --git a/hw/watchdog/wdt_imx2.c b/hw/watchdog/wdt_imx2.c
> index d897ff6e52..a15f452d48 100644
> --- a/hw/watchdog/wdt_imx2.c
> +++ b/hw/watchdog/wdt_imx2.c
> @@ -60,6 +60,7 @@ static void imx2_wdt_reset(DeviceState *dev)
>      s->wicr_locked = false;
>      s->wcr_locked = false;
>      s->wcr_wde_locked = false;
> +    s->wcr_wdt_locked = false;
>
>      s->wcr = IMX2_WDT_WCR_WDA | IMX2_WDT_WCR_SRS;
>      s->wsr = 0;
> --

Reviewed-by: Peter Maydell <[email protected]>

thanks
-- PMM

Reply via email to