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
