ar71xx: mikrotik: erase firmware partition on SPI NOR devices in pre_upgrade()
[openwrt/staging/yousong.git] / target / linux / ar71xx / base-files / lib / upgrade / platform.sh
index 0175f6d32c606f20dba05b15a567ce7a2eb284c6..576ff6c06ccbc018a158900047b1da8d0bc2d997 100755 (executable)
@@ -344,11 +344,6 @@ platform_check_image() {
        ls-sr71|\
        pb42|\
        pb44|\
-       rb-750-r2|\
-       rb-750up-r2|\
-       rb-941-2nd|\
-       rb-951ui-2nd|\
-       rb-mapl-2nd|\
        routerstation-pro|\
        routerstation|\
        wp543|\
@@ -486,7 +481,33 @@ platform_check_image() {
        tew-673gru)
                dir825b_check_image "$1" && return 0
                ;;
-       rb*)
+       rb-411|\
+       rb-411u|\
+       rb-433|\
+       rb-433u|\
+       rb-435g|\
+       rb-450|\
+       rb-450g|\
+       rb-493|\
+       rb-493g|\
+       rb-750|\
+       rb-750gl|\
+       rb-751|\
+       rb-751g|\
+       rb-911g-2hpnd|\
+       rb-911g-5hpnd|\
+       rb-911g-5hpacd|\
+       rb-912uag-2hpnd|\
+       rb-912uag-5hpnd|\
+       rb-951g-2hnd|\
+       rb-951ui-2hnd|\
+       rb-2011l|\
+       rb-2011uas|\
+       rb-2011uias|\
+       rb-2011uas-2hnd|\
+       rb-2011uias-2hnd|\
+       rb-sxt2n|\
+       rb-sxt5n)
                nand_do_platform_check routerboard $1
                return $?
                ;;
@@ -611,6 +632,14 @@ platform_check_image() {
 
                return 0;
                ;;
+       # these boards use metadata images
+       rb-750-r2|\
+       rb-750up-r2|\
+       rb-941-2nd|\
+       rb-951ui-2nd|\
+       rb-mapl-2nd)
+               return 0
+               ;;
        esac
 
        echo "Sysupgrade is not yet supported on $board."
@@ -621,20 +650,48 @@ platform_pre_upgrade() {
        local board=$(ar71xx_board_name)
 
        case "$board" in
-       rb-750-r2|\
-       rb-750up-r2|\
-       rb-941-2nd|\
-       rb-951ui-2nd|\
-       rb-mapl-2nd)
-               ;;
-       rb*|\
        c-60|\
        nbg6716|\
        r6100|\
+       rb-411|\
+       rb-411u|\
+       rb-433|\
+       rb-433u|\
+       rb-435g|\
+       rb-450|\
+       rb-450g|\
+       rb-493|\
+       rb-493g|\
+       rb-750|\
+       rb-750gl|\
+       rb-751|\
+       rb-751g|\
+       rb-911g-2hpnd|\
+       rb-911g-5hpnd|\
+       rb-911g-5hpacd|\
+       rb-912uag-2hpnd|\
+       rb-912uag-5hpnd|\
+       rb-951g-2hnd|\
+       rb-951ui-2hnd|\
+       rb-2011l|\
+       rb-2011uas|\
+       rb-2011uias|\
+       rb-2011uas-2hnd|\
+       rb-2011uias-2hnd|\
+       rb-sxt2n|\
+       rb-sxt5n|\
        wndr3700v4|\
        wndr4300)
                nand_do_upgrade "$1"
                ;;
+       rb-750-r2|\
+       rb-750up-r2|\
+       rb-941-2nd|\
+       rb-951ui-2nd|\
+       rb-mapl-2nd)
+               # erase firmware if booted from initramfs
+               [ -z "$(rootfs_type)" ] && mtd erase firmware
+               ;;
        mr18|\
        z1)
                merakinand_do_upgrade "$1"
@@ -661,14 +718,6 @@ platform_do_upgrade() {
        local board=$(ar71xx_board_name)
 
        case "$board" in
-       rb-750-r2|\
-       rb-750up-r2|\
-       rb-941-2nd|\
-       rb-951ui-2nd|\
-       rb-mapl-2nd)
-               PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=1
-               platform_do_upgrade_combined "$ARGV"
-               ;;
        all0258n)
                platform_do_upgrade_allnet "0x9f050000" "$ARGV"
                ;;