ipq40xx: add support for the ZyXEL NBG6617
[openwrt/openwrt.git] / target / linux / ipq40xx / base-files / lib / upgrade / platform.sh
index 4096e127ea9eaa8106475a3143b0b2ea796b5c7c..0e29302465fb5fca6f2a2194c751728f492053d5 100644 (file)
@@ -29,6 +29,21 @@ EOF
        return 0;
 }
 
+zyxel_do_upgrade() {
+       local tar_file="$1"
+
+       local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
+       board_dir=${board_dir%/}
+
+       tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel
+
+       if [ "$SAVE_CONFIG" -eq 1 ]; then
+               tar Oxf $tar_file ${board_dir}/root | mtd -j "$CONF_TAR" write - rootfs
+       else
+               tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
+       fi
+}
+
 platform_do_upgrade() {
        case "$(board_name)" in
        8dev,jalapeno)
@@ -48,6 +63,9 @@ platform_do_upgrade() {
                CI_KERNPART="part.safe"
                nand_do_upgrade "$1"
                ;;
+       zyxel,nbg6617)
+               zyxel_do_upgrade "$1"
+               ;;
        *)
                default_do_upgrade "$ARGV"
                ;;