From c456a5796a56146c5bcfb0b0dfdc3126a0f36940 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:59:23 +0300 Subject: [PATCH] xiongmai: the kernel's sp805_wdt for /dev/watchdog, in place of xm_wdt.ko XM510 and XM530/XM550 had only the vendor xm_wdt.ko: /dev/wdt, private ioctls, no write() feeding and no magic close, so busybox watchdog and sysupgrade's watchdog keeper could not drive it. It also counted from insmod, not from open (#743), and on XM510 it was not loaded at all. The watchdog is an ARM SP805, and OpenIPC/linux now registers it on both SoCs (OpenIPC/linux#128, #129). Enable CONFIG_WATCHDOG and CONFIG_ARM_SP805_WATCHDOG in both kernel configs, so the stock sp805_wdt gives /dev/watchdog: write() feeding, WDIOC_*, magic close, idle until opened. Stop shipping and loading xm_wdt.ko: it registers the same misc minor and can no longer load beside it. sysupgrade's WDOG default, /dev/watchdog, now exists on XM, so its pre-flash report and RAM-phase keeper work there unchanged. Closes #2611. --- .../board/xm510/xm510.generic.config | 10 +++++++++- .../board/xm530/xm530.generic.config | 18 +++++++++++++++++- .../xiongmai-osdrv-xm510/files/kmod/xm_wdt.ko | Bin 3635 -> 0 bytes .../files/script/load_xiongmai | 4 ++-- .../files/script/loadxm510_64M | 4 ++-- .../files/kmod/Readme.txt | 3 +-- .../xiongmai-osdrv-xm530/files/kmod/xm_wdt.ko | Bin 4585 -> 0 bytes .../files/script/load_xiongmai | 4 ++-- 8 files changed, 33 insertions(+), 10 deletions(-) delete mode 100644 general/package/xiongmai-osdrv-xm510/files/kmod/xm_wdt.ko delete mode 100644 general/package/xiongmai-osdrv-xm530/files/kmod/xm_wdt.ko diff --git a/br-ext-chip-xiongmai/board/xm510/xm510.generic.config b/br-ext-chip-xiongmai/board/xm510/xm510.generic.config index 130d27c055..108396275b 100644 --- a/br-ext-chip-xiongmai/board/xm510/xm510.generic.config +++ b/br-ext-chip-xiongmai/board/xm510/xm510.generic.config @@ -791,7 +791,15 @@ CONFIG_GPIO_XM510=y # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set # CONFIG_THERMAL is not set -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_ARM_SP805_WATCHDOG=y +# CONFIG_MAX63XX_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # diff --git a/br-ext-chip-xiongmai/board/xm530/xm530.generic.config b/br-ext-chip-xiongmai/board/xm530/xm530.generic.config index c6e474870d..c1b71dd2f6 100644 --- a/br-ext-chip-xiongmai/board/xm530/xm530.generic.config +++ b/br-ext-chip-xiongmai/board/xm530/xm530.generic.config @@ -979,7 +979,23 @@ CONFIG_GPIO_XM530=y # CONFIG_POWER_AVS is not set # CONFIG_HWMON is not set # CONFIG_THERMAL is not set -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_ARM_SP805_WATCHDOG=y +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MPCORE_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set CONFIG_SSB_POSSIBLE=y # diff --git a/general/package/xiongmai-osdrv-xm510/files/kmod/xm_wdt.ko b/general/package/xiongmai-osdrv-xm510/files/kmod/xm_wdt.ko deleted file mode 100644 index 719761c8f028fce95242409807d284c17262f8f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3635 zcmd5;Piz!b82@Hx`wt70+DeNX9kggm+i?m7ifOU6ARH>C1cOnNb-O#XV|Qnoo!MFw z6G%Ccc=1n6M2UMau?ZYJ5aWS^iFnWu_22;$53~~!i5G|(FGl=*^WNK?ZIEy-TUf8%^D5gCH>l07S?MCJFk(3m;N35PHVV>EwQIA z)M;v^gJ|7)qO-cx8=z~Dlh*#o{{YbzqIa%;cl-9QYJWbD$;X?g!USSIh}lr8kZ3gg zJ8m=9)Tv$8X$#hzl67b)hs`ZghApwCCLOBgas1IEt4ZWsJLk2q19gnsIG17U1M?)6 zSJ)q~v&c1;H~e`gYrDQZa`4Cm6IS87Dik)3nS1YrrUYxpc|RdzqXu zcJ%p$Jq8W$+?VwVg^Zgs>|)U?Zbf#mEf&(R=K{lVogil4U1N8A!<*xHMA8x#upgrf z<9;Hskozg4|0fsp8MR^P7zYo(KtoqQJ^s?_(!$W$%V*A?`R&5@PiSR2I6nTg(fw@6 z$>)lm7Z^LNfkD$6>M;h*z2*))cz6Gp3Gj@anRZCyy4UULAEWwp4P%X3Q=&E5rnPIE z^$x95+md)B@t8)Y|3)FmOoInS!Dp3JwDV?QF9u|?#BCQ-?Zt|U26o&N9>Tm_Cde?- zfH^3hVuO%o+>)7h+&Rz9+Ga58_-Q;>%G+eRUSON-p5{gOJ2^6^eVM#`EIAq2HOhg|+;5ig2ya^aM4&4>ekBB=YWo8`5{bEVrGj@FGR~jMdM^N=3%VkO_dX0< zKQ-?U${_<)3LipenR932xY0-wf9&J&iR8kH+_(raQg|0(!<_TV#c@w51zg2#5^)vJ zGl;uf(W-GAuWHNg6!zsN3~i8mFnC$KPrP?(tq`dh2lkU{GU!SyL+EYCdcga@m%&s0 zh(}B>UI51G184jczB2~fJH;ONfp@bV@!X%iIQ6;L`oM>!eU$k|(OW4jl5tZ2Wn9K* zT*k+bQdj`zpTOF=RtdahUCg(OGcAGOBdoWIcPW8pxWsxN(O=Aa@pl)}E2|bkdd&{; ze$^IHk2~N!^W2$L(g~X$Bb_$HG>*r{#7K{JrE1V=Q%%N6x^)}nj*(WG z;Z;}@h~5m&@-e9!;1@Aok-7!mf*SL_bNpWLu9$uR`VjPJU*VsGUZuw9(p1&;%C}F< zr$=*F{Y~^56rM{^BY6-|E=gL`#N13ZCxoRT{CjfQ%>Ep@?~=sl@(pJ?d%kHJ}< zm3nP_Bb|p`5$`Aa8Cy^TeF1@Wt}M^@4LDv4dR*$Yc(wIbcnFo$KtCxFoO}L;)cKpY z3H|b?)D7@fthXL^Cf?6hbV#ez*~ZUzuF*+ctjsKRW%vS^#(7x`q~y&D!4A@aQ?R{~ zaCo?uMh=|ucE-0O+3~VLp3I4HOG2jk^oL>W@c5z0qZYdc_-}{u^L2pIe59x4t#@G8 zAa&)GKW8r}@q{<;OW8y`vW=d@RUj=d$r4E2ly_0V@w0Fi?HR`p>>~W}3q%%)yQO(` SpWsxLJYRI&U`{+=dHNqdpIH9@ diff --git a/general/package/xiongmai-osdrv-xm510/files/script/load_xiongmai b/general/package/xiongmai-osdrv-xm510/files/script/load_xiongmai index cfbdd49b71..7578f03f5e 100755 --- a/general/package/xiongmai-osdrv-xm510/files/script/load_xiongmai +++ b/general/package/xiongmai-osdrv-xm510/files/script/load_xiongmai @@ -89,7 +89,8 @@ insert_ko() insmod xm510_rgn.ko insmod xm510_h264.ko insmod xm_rtc.ko - # insmod xm_wdt.ko + # The watchdog is the kernel's sp805_wdt (/dev/watchdog), not xm_wdt.ko: see + # OpenIPC/firmware#2611. #insert_audio echo "==== Your input Sensor type is $SNS_A ====" @@ -98,7 +99,6 @@ insert_ko() remove_ko() { #remove_audio - rmmod -w xm_wdt rmmod -w xm_rtc rmmod -w xm510_h264 rmmod -w xm510_rgn diff --git a/general/package/xiongmai-osdrv-xm510/files/script/loadxm510_64M b/general/package/xiongmai-osdrv-xm510/files/script/loadxm510_64M index a4e8e75d73..9666cf267a 100755 --- a/general/package/xiongmai-osdrv-xm510/files/script/loadxm510_64M +++ b/general/package/xiongmai-osdrv-xm510/files/script/loadxm510_64M @@ -82,7 +82,8 @@ insert_ko() insmod xm510_rgn.ko insmod xm510_h264.ko insmod xm_rtc.ko - insmod xm_wdt.ko + # The watchdog is the kernel's sp805_wdt (/dev/watchdog), not xm_wdt.ko: see + # OpenIPC/firmware#2611. #insert_audio echo "==== Your input Sensor type is $SNS_A ====" @@ -91,7 +92,6 @@ insert_ko() remove_ko() { remove_audio - rmmod -w xm_wdt rmmod -w xm_rtc rmmod -w xm510_h264 rmmod -w xm510_rgn diff --git a/general/package/xiongmai-osdrv-xm530/files/kmod/Readme.txt b/general/package/xiongmai-osdrv-xm530/files/kmod/Readme.txt index d7cbda7d25..6347dc5aa0 100644 --- a/general/package/xiongmai-osdrv-xm530/files/kmod/Readme.txt +++ b/general/package/xiongmai-osdrv-xm530/files/kmod/Readme.txt @@ -19,8 +19,7 @@ | |-- xm530_vo.ko | |-- xm_i2c.ko | |-- xm_i2s.ko -| |-- xm_rtc.ko -| `-- xm_wdt.ko +| `-- xm_rtc.ko |-- readme.txt |-- rtl8188 | |-- 8188eu.ko diff --git a/general/package/xiongmai-osdrv-xm530/files/kmod/xm_wdt.ko b/general/package/xiongmai-osdrv-xm530/files/kmod/xm_wdt.ko deleted file mode 100644 index 5bb0c444928d08ce43bbb5cf3845b2c14694f1d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4585 zcmdT{Piz!r6o0e3h4R-@3NFy-NJ>)ZcG$LP(SWqJ2qXns{zMJNal1Rf*xj8vJ1r$9 zkU&U`@j%oVqZk|IfQcp?IB4R5L=GN2Xu`on4=pPOBL_`1;XuUSZ)U#T*%c8FMttcv z@BQ9;-}}Dry*JZuk8d4%Qqwe1q)EF}k;u)tzNKM<&)Q{~G|Qrk)3fqT=Z}f=Lsvwm z%X04BYk#FnSNxJ{s4D92@FHi;fvB=UAV#AxsN8stQJ(6=uT zSt;_`)r;&?^fv206p^1=I8u(m=cS0QCMV&X8r{Fp?|1BFJ?v$?H}$=&&cydMsp=Z7 zY2Wab1aeZdf0-#Kk%y>`@9`#_m7MPf?a^<5|DH$V!k)LYRj zf_rYj4=c&F@`h(kd16pvPe!0MRe@-6yLixno0H3U8Aj?dHUzV%2&6;B2_tV8$DCr; zGQ7if$;7;gyd_4_@hpSpQ69R}&WSNvDv7}t#42KW-vJ5hEP0vim>77GjEv{G_UMFX zm2k+rqzB>0JHedLpLc;vEJjGI4`~&~JYNbPgZP*xF>xs%=hLqdV{M34yc>wM4?0CE z-Wn*P@t$2M@-%de$K_SLjgX`J8-hWHPLYboeMjS6Ks+5f#%sV(@dh9>9=`KF%#~kN)bc zG`Aox!&smNatedzV4j#ebykRygYuMG3|NWmtBz(7_F)Qq6L>2Q&tB;06k(sFz-NeI zzeWsx9lW&%>md;Jjo{QT1m}FdJDktja{gsv*uNtNp8@Cmo1vbEqCNr6`Ay)Q-$Fh3 zX=2#lA_hML&iPF^WXE#&fv3Qe;H};00qWt`PCa;vdc@sGJ>qSm9{eL>*e?)+e*(_9 zXkY1A5#%xj&iu9_SvvK&Wwn8)z}uQh1eVt6OmtFf?`WB9%g5-&ro$?prkB{2l~jJOMNkjGfGv7oP~c%|xrC0^4Z z>=%AXsucI%tSIKLsuZtzLph&sW|iWys0tv(WpN$GK_V3Qvr<*WWl7DB6Y|R~-kGYT zRaRggWAH``_&HU0H85-RRcP-3uhL?97~lrRuNa)a1^ha4>E{)AH}E<38uJVM3~-ei z{mW(*$K|;Y>;sSC#4l8hkmiYpC-)Xmqa1~RvWHY3uR)H579Bi>`n(ci_K}AAycgnt z&6D>-%>LA{-pAmS^C7PFZ>*cYSU!axDS@G(UYC3nJeYsZ=h^|ym9HTX^LxYnTmeU$ z3a=!8-d}BhsCaMvl;p6s`K9-V%DP>_1ITu zKTwB{)L{uOv_@9iGJ?yu>EQ0~3%DRznUdwpCC?cbW2k@E!1mpH(xEEjdVyqlre_x{ zXClD1llAiO9!Q75P2RIA)4OQ$AKl8%i