@ -1,6 +1,7 @@
#!/bin/sh
#
# Copyright 2015-2018 Traverse Technologies
# Copyright 2015-2019 Traverse Technologies
#
platform_do_upgrade_traverse_nandubi( ) {
bootsys = $( fw_printenv bootsys | awk -F= '{{print $2}}' )
@ -8,60 +9,25 @@ platform_do_upgrade_traverse_nandubi() {
if [ " $bootsys " -eq "2" ] ; then
newbootsys = 1
fi
mkdir -p /tmp/image
cd /tmp/image
get_image " $1 " > image.tar
ls -la image.tar
files = $( tar -tf image.tar)
echo "Files in image:"
echo $files
for f in $files
do
part_name = $( echo $f | awk -F '/' '{{print $2}}' )
if [ -z " $part_name " ] || [ " $part_name " = "CONTROL" ] ; then
continue
fi
[ " $part_name " = "root" ] && part_name = "rootfs"
volume = $part_name
if [ " $part_name " = "kernel" ] || [ " $part_name " = "rootfs" ] ; then
volume = " ${ part_name } ${ newbootsys } "
fi
volume_id = $( ubinfo -d 0 --name $volume | awk '/Volume ID/ {print $3}' )
file_size = $( tar -tvf image.tar $f | awk '{{print $3}}' )
echo " $f size $file_size "
tar -xOf image.tar $f | ubiupdatevol -s $file_size /dev/ubi0_$volume_id -
echo " $volume upgraded "
done
# If nand_do_upgrade succeeds, we don't have an opportunity to add any actions of
# our own, so do it here and set back on failure
echo " Setting bootsys to # ${ newbootsys } "
fw_setenv bootsys $newbootsys
echo "Upgrade complete"
}
platform_copy_config( ) {
bootsys = $( fw_printenv bootsys | awk -F= '{{print $2}}' )
rootvol = rootfs$bootsys
volume_id = $( ubinfo -d 0 --name $rootvol | awk '/Volume ID/ {print $3}' )
mkdir -p /mnt/oldsys
mount -t ubifs -o rw,noatime /dev/ubi0_$volume_id /mnt/oldsys
cp -af " $CONF_TAR " /mnt/oldsys
umount /mnt/oldsys
CI_UBIPART = "nandubi"
CI_KERNPART = " kernel ${ newbootsys } "
CI_ROOTPART = " rootfs ${ newbootsys } "
nand_do_upgrade " $ARGV " || ( echo " Upgrade failed, setting bootsys ${ bootsys } " && fw_setenv bootsys $bootsys )
}
platform_check_image( ) {
local board = $( board_name)
case " $board " in
traverse,ls1043v | \
traverse,ls1043s | \
traverse,five64)
local tar_file = " $1 "
local kernel_length = $( ( tar xf $tar_file sysupgrade-traverse-five64/kernel -O | wc -c) 2> /dev/null)
local rootfs_length = $( ( tar xf $tar_file sysupgrade-traverse-five64/root -O | wc -c) 2> /dev/null)
[ " $kernel_length " -eq 0 -o " $rootfs_length " -eq 0 ] && {
echo "The upgrade image is corrupt."
return 1
}
return 0
traverse,ls1043s)
nand_do_platform_check "traverse-ls1043" $1
return $?
; ;
*)
echo " Sysupgrade is not currently supported on $board "
@ -75,8 +41,7 @@ platform_do_upgrade() {
case " $board " in
traverse,ls1043v | \
traverse,ls1043s | \
traverse,five64)
traverse,ls1043s)
platform_do_upgrade_traverse_nandubi " $ARGV "
; ;
*)
@ -88,7 +53,7 @@ platform_pre_upgrade() {
# Force the creation of fw_printenv.lock
mkdir -p /var/lock
touch /var/lock/fw_printenv.lock
export RAMFS_COPY_BIN = " /usr/sbin/fw_printenv /usr/sbin/fw_setenv /usr/sbin/ubinfo /bin/echo ${ RAMFS_COPY_BIN } "
export RAMFS_COPY_DATA = " /etc/fw_env.config /var/lock/fw_printenv.lock ${ RAMFS_COPY_DATA } "
}