aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/mt7620/base-files/etc
diff options
context:
space:
mode:
authorPiotr Dymacz <pepe2k@gmail.com>2019-10-29 23:25:56 +0100
committerPiotr Dymacz <pepe2k@gmail.com>2019-11-13 21:45:31 +0100
commitbc173ddd8381b03dde8cc2e6c66d0cd392c62bbd (patch)
tree97d4cf58f923ed1d08482537227fd61f16a311e8 /target/linux/ramips/mt7620/base-files/etc
parentb20b997c680e38f999e4608b158ef08718527ca0 (diff)
downloadupstream-bc173ddd8381b03dde8cc2e6c66d0cd392c62bbd.tar.gz
upstream-bc173ddd8381b03dde8cc2e6c66d0cd392c62bbd.tar.bz2
upstream-bc173ddd8381b03dde8cc2e6c66d0cd392c62bbd.zip
ramips: support dual image feature on ALFA Network boards
New U-Boot version for MediaTek MT76x8/MT762x based ALFA Network boards includes support for a 'dual image' feature. Users can enable it using U-Boot environment variable 'dual_image' ('1' -> enabled). When 'dual image' feature is enabled, U-Boot will modify DTB and divide the original 'firmware' flash area into two, equal in size and aligned to 64 KB partitions: 'firmware' and 'backup'. U-Boot will also adjust size of 'firmware' area to match installed flash chip size. U-Boot will load kernel from active partition which is marked with env variable 'bootactive' ('1' -> first partition, '2' -> second partition) and rename both partitions accordingly ('firmware' <-> 'backup'). There are 3 additional env variables used to control 'dual image' mode: - bootlimit - maximum number of unsuccessful boot tries (default: '3') - bootcount - current number of boot tries - bootchanged - flag which informs that active partition was changed; if it is set and 'bootcount' reaches 'bootlimit' value, U-Boot will start web-based recovery which then updates both partitions with provided image Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Diffstat (limited to 'target/linux/ramips/mt7620/base-files/etc')
-rwxr-xr-xtarget/linux/ramips/mt7620/base-files/etc/init.d/bootcount13
1 files changed, 13 insertions, 0 deletions
diff --git a/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount b/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount
new file mode 100755
index 0000000000..c7b6919926
--- /dev/null
+++ b/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount
@@ -0,0 +1,13 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+
+boot() {
+ case $(board_name) in
+ alfa-network,ac1200rm|\
+ alfa-network,tube-e4g)
+ [ -n "$(fw_printenv bootcount bootchanged 2>/dev/null)" ] &&\
+ echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s -
+ ;;
+ esac
+}