summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/base-files/files/lib/upgrade/common.sh17
-rw-r--r--target/linux/brcm-2.4/base-files/lib/upgrade/platform.sh16
-rw-r--r--target/linux/x86/base-files/lib/upgrade/platform.sh2
3 files changed, 21 insertions, 14 deletions
diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
index 59ac7a70b..7fc31e8b4 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -130,11 +130,24 @@ jffs2_copy_config() {
fi
}
+default_do_upgrade() {
+ if [ "$SAVE_CONFIG" -eq 1 -a -z "$USE_REFRESH" ]; then
+ get_image "$1" | mtd -j "$CONF_TAR" write - "${PART_NAME:-image}"
+ else
+ get_image "$1" | mtd write - "${PART_NAME:-image}"
+ fi
+ sync
+}
+
do_upgrade() {
v "Performing system upgrade..."
- platform_do_upgrade "$ARGV"
+ if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then
+ platform_do_upgrade "$ARGV"
+ else
+ default_do_upgrade "$ARGV"
+ fi
- [ "$SAVE_CONFIG" -eq 1 ] && {
+ [ "$SAVE_CONFIG" -eq 1 -a -n "$USE_REFRESH" ] && {
v "Refreshing partitions"
if type 'platform_refresh_partitions' >/dev/null 2>/dev/null; then
platform_refresh_partitions
diff --git a/target/linux/brcm-2.4/base-files/lib/upgrade/platform.sh b/target/linux/brcm-2.4/base-files/lib/upgrade/platform.sh
index ac53b9d59..9921cf571 100644
--- a/target/linux/brcm-2.4/base-files/lib/upgrade/platform.sh
+++ b/target/linux/brcm-2.4/base-files/lib/upgrade/platform.sh
@@ -1,24 +1,16 @@
+PART_NAME=linux
+
platform_check_image() {
[ "$ARGC" -gt 1 ] && return 1
case "$(get_magic_word "$1")" in
# .trx files
4844) return 0;;
- # .bin files
- 5735) return 0;;
*)
- echo "Invalid image type"
+ echo "Invalid image type. Please use only .trx files"
return 1
;;
esac
}
-platform_do_upgrade() {
- get_image "$1" > $(find_mtd_part "linux")
- sync
-}
-
-brcm_prepare_mtd() {
- [ "$SAVE_CONFIG" -eq 1 ] && return 0
-}
-append sysupgrade_pre_upgrade brcm_prepare_mtd
+# use default for platform_do_upgrade()
diff --git a/target/linux/x86/base-files/lib/upgrade/platform.sh b/target/linux/x86/base-files/lib/upgrade/platform.sh
index f4c8334f3..6bae07b01 100644
--- a/target/linux/x86/base-files/lib/upgrade/platform.sh
+++ b/target/linux/x86/base-files/lib/upgrade/platform.sh
@@ -1,3 +1,5 @@
+USE_REFRESH=1
+
platform_check_image() {
[ "$ARGC" -gt 1 ] && return 1