diff options
author | Sven Eckelmann <sven@narfation.org> | 2022-01-31 14:39:52 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2022-02-03 22:27:15 +0100 |
commit | 7c3efd5273fde3ec53d7f80670963e16512c6f17 (patch) | |
tree | 5e97d0450882052a1dcdc07a0042ae477c0caf31 | |
parent | d16bd89c71da6bad5f4d37008217ced3bac4e5d6 (diff) | |
download | openwrt-7c3efd5273fde3ec53d7f80670963e16512c6f17.tar.gz openwrt-7c3efd5273fde3ec53d7f80670963e16512c6f17.tar.bz2 openwrt-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.dts | 9 | ||||
-rw-r--r-- | target/linux/ramips/image/rt305x.mk | 1 | ||||
-rw-r--r-- | target/linux/ramips/rt305x/config-5.10 | 2 |
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 |