aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq40xx/base-files/lib/upgrade/platform.sh')
-rw-r--r--target/linux/ipq40xx/base-files/lib/upgrade/platform.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index 4096e127ea..0e29302465 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -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"
;;