[PATCH 0/2] rockchip: odroid-m1s/rk3566 watchdog support
Andreas Zdziarstek
andreas.zdziarstek at gmail.com
Sat Jun 20 00:08:18 CEST 2026
I experimented with the Synopsys DesignWare watchdog on an Odroid-M1S
(RK3566). On current master, the watchdog is present in device-tree.
After activating the relevant options in .config, U-Boot tried probing
it but failed, aborting at a failing clk_enable(). Current next branch
already has a patch for that in the driver (d62801d09441) and with that
wdt query and servicing works.
However, a timeout or wdt expire causes a hung SoC. There are two
possible "global resets" the watchdog may trigger, set in the CRU
registers, as per the TRM. Default is the "second" reset.
Unfortunately, the TRM is rather tight-lipped about what each one really
does. Per experimentation: Setting it to the "first" global reset fixes
the hang and makes the watchdog work as expected in U-Boot. This is the
first patch. As the PX30 does the same thing in its arch_cpu_init(), I
believe this to be the way to go but I am curious to hear if anybody has
more technical insight on this.
Second patch adds watchdog support (per wdt command) to the Odroid-M1S
defconfig, which was my original goal. I didn't enable AUTOSTART and
cyclic servicing to not break any existing systems. However, I tested
both and they too work as expected with the reset fix.
Andreas Zdziarstek (2):
rockchip: rk3568: make the WDT trigger a first global reset
rockchip: odroid-m1s: enable watchdog support
arch/arm/mach-rockchip/rk3568/rk3568.c | 8 ++++++++
configs/odroid-m1s-rk3566_defconfig | 5 +++++
2 files changed, 13 insertions(+)
base-commit: 298d44464dc63a4f3f5489150acd7958f359f9bd
--
2.53.0
More information about the U-Boot
mailing list