ar71xx: convert mikrotik routerboard support to UBI
[openwrt/staging/wigyori.git] / target / linux / ar71xx / base-files / lib / upgrade / platform.sh
index 5f4375da6a3aa16db51ca904bcfddd31011aae2a..82ed041d66226239095bb53c3ecc068e5140dd64 100755 (executable)
@@ -7,6 +7,7 @@
 
 PART_NAME=firmware
 RAMFS_COPY_DATA=/lib/ar71xx.sh
+[ -x /usr/sbin/nandwrite ] && RAMFS_COPY_BIN=/usr/sbin/nandwrite
 
 CI_BLKSZ=65536
 CI_LDADR=0x80060000
@@ -164,6 +165,15 @@ alfa_check_image() {
        return 0
 }
 
+platform_nand_board_name() {
+       local board=$(ar71xx_board_name)
+
+       case "$board" in
+       rb*) echo "routerboard";;
+       *) echo "$board";;
+       esac
+}
+
 platform_check_image() {
        local board=$(ar71xx_board_name)
        local magic="$(get_magic_word "$1")"
@@ -176,8 +186,6 @@ platform_check_image() {
        airgateway|\
        airrouter|\
        ap132|\
-       ap81|\
-       ap83|\
        ap90q|\
        bullet-m|\
        c-55|\
@@ -228,6 +236,7 @@ platform_check_image() {
        rocket-m-xw|\
        rocket-m|\
        rw2458n|\
+       sr3200|\
        tew-632brp|\
        tew-712br|\
        tew-732br|\
@@ -251,7 +260,8 @@ platform_check_image() {
        wzr-hp-ag300h|\
        wzr-hp-g300nh2|\
        wzr-hp-g300nh|\
-       wzr-hp-g450h)
+       wzr-hp-g450h|\
+       xd3200)
                [ "$magic" != "2705" ] && {
                        echo "Invalid image type."
                        return 1
@@ -261,7 +271,6 @@ platform_check_image() {
                ;;
        alfa-ap96|\
        alfa-nx|\
-       ap113|\
        ap121-mini|\
        ap121|\
        ap135-020|\
@@ -344,6 +353,7 @@ platform_check_image() {
        omy-x1|\
        onion-omega|\
        oolite|\
+       re450|\
        smart-300|\
        som9331|\
        tellstick-znet-lite|\
@@ -379,6 +389,7 @@ platform_check_image() {
        tl-wpa8630|\
        tl-wr1041n-v2|\
        tl-wr1043nd-v2|\
+       tl-wr1043nd-v4|\
        tl-wr1043nd|\
        tl-wr2543n|\
        tl-wr703n|\
@@ -397,6 +408,7 @@ platform_check_image() {
        tl-wr842n-v3|\
        tl-wr941nd-v5|\
        tl-wr941nd-v6|\
+       tl-wr940n-v4|\
        tl-wr941nd)
                local magic_ver="0100"
 
@@ -441,6 +453,10 @@ platform_check_image() {
        tew-673gru)
                dir825b_check_image "$1" && return 0
                ;;
+       rb*)
+               nand_do_platform_check routerboard $1
+               return $?
+               ;;
        c-60|\
        nbg6716|\
        r6100|\
@@ -451,7 +467,9 @@ platform_check_image() {
                ;;
        cpe210|\
        cpe510|\
-       eap120)
+       eap120|\
+       wbs210|\
+       wbs510)
                tplink_pharos_check_image "$1" && return 0
                return 1
                ;;
@@ -496,6 +514,7 @@ platform_check_image() {
 
                return 0
                ;;
+       e2100l|\
        mynet-rext|\
        wrt160nl)
                cybertan_check_image "$1" && return 0
@@ -565,6 +584,7 @@ platform_pre_upgrade() {
        local board=$(ar71xx_board_name)
 
        case "$board" in
+       rb*|\
        c-60|\
        nbg6716|\
        r6100|\
@@ -579,6 +599,21 @@ platform_pre_upgrade() {
        esac
 }
 
+platform_nand_pre_upgrade() {
+       local board=$(ar71xx_board_name)
+
+       case "$board" in
+       rb*)
+               CI_KERNPART=none
+               local fw_mtd=$(find_mtd_part kernel)
+               fw_mtd="${fw_mtd/block/}"
+               [ -n "$fw_mtd" ] || return
+               mtd erase kernel
+               tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" -
+               ;;
+       esac
+}
+
 platform_do_upgrade() {
        local board=$(ar71xx_board_name)