aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/base-files/lib/upgrade/platform.sh
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ath79/base-files/lib/upgrade/platform.sh')
-rw-r--r--target/linux/ath79/base-files/lib/upgrade/platform.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/target/linux/ath79/base-files/lib/upgrade/platform.sh b/target/linux/ath79/base-files/lib/upgrade/platform.sh
index 08039e0052..806b3f0787 100644
--- a/target/linux/ath79/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/base-files/lib/upgrade/platform.sh
@@ -5,6 +5,15 @@
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
+routerstation_do_upgrade() {
+ local append
+ local kern_length=0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)
+
+ [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
+ dd if="$1" bs=64k skip=1 2>/dev/null | \
+ mtd -r $append -Fkernel:$kern_length:0x80060000,rootfs write - kernel:rootfs
+}
+
platform_check_image() {
return 0
}
@@ -17,6 +26,10 @@ platform_do_upgrade() {
PART_NAME="rootfs:kernel"
default_do_upgrade "$ARGV"
;;
+ ubnt,routerstation|\
+ ubnt,routerstation-pro)
+ routerstation_do_upgrade "$ARGV"
+ ;;
*)
default_do_upgrade "$ARGV"
;;