ramips: support dual image feature on ALFA Network boards
[openwrt/staging/wigyori.git] / target / linux / ramips / mt7620 / base-files / lib / upgrade / platform.sh
index 786d57fc70432f526d98734ad778f8c7ac0ab65d..aad243c1f9776d6bb0368fc4bc923cb55c0841c7 100755 (executable)
@@ -5,6 +5,9 @@
 PART_NAME=firmware
 REQUIRE_IMAGE_METADATA=1
 
+RAMFS_COPY_BIN='fw_printenv fw_setenv'
+RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
+
 platform_check_image() {
        return 0
 }
@@ -13,6 +16,19 @@ platform_do_upgrade() {
        local board=$(board_name)
 
        case "$board" in
+       alfa-network,ac1200rm|\
+       alfa-network,tube-e4g)
+               [ "$(fw_printenv -n dual_image 2>/dev/null)" = "1" ] &&\
+               [ -n "$(find_mtd_part backup)" ] && {
+                       PART_NAME=backup
+                       if [ "$(fw_printenv -n bootactive 2>/dev/null)" = "1" ]; then
+                               fw_setenv bootactive 2 || exit 1
+                       else
+                               fw_setenv bootactive 1 || exit 1
+                       fi
+               }
+               default_do_upgrade "$1"
+               ;;
        *)
                default_do_upgrade "$1"
                ;;