3 # Copyright 2015-2018 Traverse Technologies
5 platform_do_upgrade_traverse_nandubi
() {
6 bootsys
=$
(fw_printenv bootsys |
awk -F= '{{print $2}}')
8 if [ "$bootsys" -eq "2" ]; then
13 get_image
"$1" > image.
tar
15 files
=$
(tar -tf image.
tar)
16 echo "Files in image:"
20 part_name
=$
(echo $f |
awk -F '/' '{{print $2}}')
21 if [ -z "$part_name" ] ||
[ "$part_name" = "CONTROL" ]; then
25 [ "$part_name" = "root" ] && part_name
="rootfs"
28 if [ "$part_name" = "kernel" ] ||
[ "$part_name" = "rootfs" ]; then
29 volume
="${part_name}${newbootsys}"
31 volume_id
=$
(ubinfo
-d 0 --name $volume |
awk '/Volume ID/ {print $3}')
32 file_size
=$
(tar -tvf image.
tar $f |
awk '{{print $3}}')
33 echo "$f size $file_size"
34 tar -xOf image.
tar $f | ubiupdatevol
-s $file_size /dev
/ubi0_
$volume_id -
36 echo "$volume upgraded"
38 fw_setenv bootsys
$newbootsys
39 echo "Upgrade complete"
41 platform_copy_config
() {
42 bootsys
=$
(fw_printenv bootsys |
awk -F= '{{print $2}}')
43 rootvol
=rootfs
$bootsys
44 volume_id
=$
(ubinfo
-d 0 --name $rootvol |
awk '/Volume ID/ {print $3}')
46 mount
-t ubifs
-o rw
,noatime
/dev
/ubi0_
$volume_id /mnt
/oldsys
47 cp -af "$CONF_TAR" /mnt
/oldsys
50 platform_check_image
() {
51 local board
=$
(board_name
)
58 local kernel_length
=$
( (tar xf
$tar_file sysupgrade-traverse-five64
/kernel
-O |
wc -c) 2> /dev
/null
)
59 local rootfs_length
=$
( (tar xf
$tar_file sysupgrade-traverse-five64
/root
-O |
wc -c) 2> /dev
/null
)
60 [ "$kernel_length" -eq 0 -o "$rootfs_length" -eq 0 ] && {
61 echo "The upgrade image is corrupt."
67 echo "Sysupgrade is not currently supported on $board"
73 platform_do_upgrade
() {
74 local board
=$
(board_name
)
80 platform_do_upgrade_traverse_nandubi
"$ARGV"
83 echo "Sysupgrade is not currently supported on $board"
87 platform_pre_upgrade
() {
88 # Force the creation of fw_printenv.lock
90 touch /var
/lock
/fw_printenv.lock
92 export RAMFS_COPY_BIN
="/usr/sbin/fw_printenv /usr/sbin/fw_setenv /usr/sbin/ubinfo /bin/echo ${RAMFS_COPY_BIN}"
93 export RAMFS_COPY_DATA
="/etc/fw_env.config /var/lock/fw_printenv.lock ${RAMFS_COPY_DATA}"