procd: update to latest git HEAD
[openwrt/openwrt.git] / package / system / procd / files / nand.sh
index 70b9af559dc0ddfdd63d508a561f7c3e197bc206..9c831df3b4247d12d7e882da349eafea5894fabc 100644 (file)
@@ -5,10 +5,10 @@
 . /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"
@@ -194,7 +194,7 @@ nand_upgrade_prepare_ubi() {
 
 nand_do_upgrade_success() {
        local conf_tar="/tmp/sysupgrade.tgz"
-       
+
        sync
        [ -f "$conf_tar" ] && nand_restore_config "$conf_tar"
        echo "sysupgrade successful"
@@ -231,7 +231,7 @@ nand_upgrade_ubifs() {
        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
@@ -239,9 +239,18 @@ nand_upgrade_ubifs() {
        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`
@@ -324,7 +333,7 @@ nand_upgrade_stage1() {
                [ "$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
        }
 }
@@ -361,6 +370,7 @@ nand_do_platform_check() {
 # $(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
 }