From 7c3efd5273fde3ec53d7f80670963e16512c6f17 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Mon, 31 Jan 2022 14:39:52 +0100 Subject: [PATCH] ramips: Switch Teltonika RUT5xx to kernel GPIO-line watchdog driver The commit 04e91631e050 ("om-watchdog: add support for Teltonika RUT5xx (ramips)") used the deprecated om-watchdog daemon to handle the GPIO-line connected watchdog on the Teltonika RUT5xx. But this daemon has massive problems since commit 30f61a34b4cf ("base-files: always use staged sysupgrade"). The process will always be stopped on sysupgrades. If the sysupgrade takes slightly longer, the watchdog is not triggered at the correct time and thus the sysupgrade will interrupted hard by the watchdog sysupgrade. And this hard interrupt can easily brick the device when there is no fallback (dual-boot, ...). Signed-off-by: Sven Eckelmann --- target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts | 9 +++++++++ target/linux/ramips/image/rt305x.mk | 1 - target/linux/ramips/rt305x/config-5.10 | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts b/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts index cfdb4d6b4b..6be2590a0c 100644 --- a/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts +++ b/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts @@ -33,6 +33,15 @@ linux,code = ; }; }; + + watchdog { + compatible = "linux,wdt-gpio"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + hw_algo = "toggle"; + /* hw_margin_ms is actually 280s but driver limits it to 60s */ + hw_margin_ms = <60000>; + always-running; + }; }; &spi0 { diff --git a/target/linux/ramips/image/rt305x.mk b/target/linux/ramips/image/rt305x.mk index e817c12e76..d8ea1d5673 100644 --- a/target/linux/ramips/image/rt305x.mk +++ b/target/linux/ramips/image/rt305x.mk @@ -990,7 +990,6 @@ define Device/teltonika_rut5xx IMAGE_SIZE := 16064k DEVICE_VENDOR := Teltonika DEVICE_MODEL := RUT5XX - DEVICE_PACKAGES := om-watchdog SUPPORTED_DEVICES += rut5xx endef TARGET_DEVICES += teltonika_rut5xx diff --git a/target/linux/ramips/rt305x/config-5.10 b/target/linux/ramips/rt305x/config-5.10 index b62c441988..31dbec907e 100644 --- a/target/linux/ramips/rt305x/config-5.10 +++ b/target/linux/ramips/rt305x/config-5.10 @@ -60,6 +60,8 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIOLIB=y CONFIG_GPIO_RALINK=y +CONFIG_GPIO_WATCHDOG=y +# CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HAS_DMA=y -- 2.30.2