aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2022-01-31 14:39:52 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2022-02-03 22:27:15 +0100
commit7c3efd5273fde3ec53d7f80670963e16512c6f17 (patch)
tree5e97d0450882052a1dcdc07a0042ae477c0caf31
parentd16bd89c71da6bad5f4d37008217ced3bac4e5d6 (diff)
downloadupstream-7c3efd5273fde3ec53d7f80670963e16512c6f17.tar.gz
upstream-7c3efd5273fde3ec53d7f80670963e16512c6f17.tar.bz2
upstream-7c3efd5273fde3ec53d7f80670963e16512c6f17.zip
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 <sven@narfation.org>
-rw-r--r--target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts9
-rw-r--r--target/linux/ramips/image/rt305x.mk1
-rw-r--r--target/linux/ramips/rt305x/config-5.102
3 files changed, 11 insertions, 1 deletions
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 = <KEY_RESTART>;
};
};
+
+ 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