. /lib/functions.sh
# 'kernel' partition on NAND contains the kernel
-CI_KERNPART="kernel"
+CI_KERNPART="${CI_KERNPART:-kernel}"
# 'ubi' partition on NAND contains UBI
-CI_UBIPART="ubi"
+CI_UBIPART="${CI_UBIPART:-ubi}"
ubi_mknod() {
local dir="$1"
nand_do_upgrade_success() {
local conf_tar="/tmp/sysupgrade.tgz"
-
+
sync
[ -f "$conf_tar" ] && nand_restore_config "$conf_tar"
echo "sysupgrade successful"
+ umount -a
reboot -f
}
if [ ! "$mtdnum" ]; then
echo "cannot find mtd device $CI_UBIPART"
+ umount -a
reboot -f
fi
local rootfs_length=`(cat $1 | wc -c) 2> /dev/null`
nand_upgrade_prepare_ubi "$rootfs_length" "ubifs" "0" "0"
-
+
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
local root_ubivol="$(nand_find_volume $ubidev rootfs)"
ubiupdatevol /dev/$root_ubivol -s $rootfs_length $1
nand_do_upgrade_success
}
+nand_board_name() {
+ if type 'platform_nand_board_name' >/dev/null 2>/dev/null; then
+ platform_nand_board_name
+ return
+ fi
+
+ cat /tmp/sysinfo/board_name
+}
+
nand_upgrade_tar() {
local tar_file="$1"
- local board_name="$(cat /tmp/sysinfo/board_name)"
+ local board_name="$(nand_board_name)"
local kernel_mtd="$(find_mtd_index $CI_KERNPART)"
local kernel_length=`(tar xf $tar_file sysupgrade-$board_name/kernel -O | wc -c) 2> /dev/null`
nand_do_upgrade_stage2() {
local file_type=$(identify $1)
+ if type 'platform_nand_pre_upgrade' >/dev/null 2>/dev/null; then
+ platform_nand_pre_upgrade "$1"
+ fi
+
[ ! "$(find_mtd_index "$CI_UBIPART")" ] && CI_UBIPART="rootfs"
case "$file_type" in
[ "$SAVE_CONFIG" != 1 -a -f "$CONF_TAR" ] &&
rm $CONF_TAR
- ubus call system nandupgrade "{\"path\": \"$path\" }"
+ ubus call system nandupgrade "{\"prefix\": \"$RAM_ROOT\", \"path\": \"$path\" }"
exit 0
}
}
-append sysupgrade_pre_upgrade nand_upgrade_stage1
# Check if passed file is a valid one for NAND sysupgrade. Currently it accepts
# 3 types of files:
return 1
}
- echo -n $2 > /tmp/sysupgrade-nand-path
- cp /sbin/upgraded /tmp/
-
return 0
}
# $(1): file to be used for upgrade
nand_do_upgrade() {
echo -n $1 > /tmp/sysupgrade-nand-path
- cp /sbin/upgraded /tmp/
+ install_bin /sbin/upgraded
+ ln -s "$RAM_ROOT"/sbin/upgraded /tmp/upgraded
nand_upgrade_stage1
}