openwrt/target/linux/layerscape/base-files/lib/upgrade/platform.sh
Mathew McBride 6a2705a52f layerscape: use wrapped nand_do_upgrade for traverse-ls1043 boards
Traverse LS1043 boards are set up with a dual-system layout, rootfs{1,2} and kernel{1,2}.
nand_do_upgrade can do the image replacement work we were doing before as long as we give it the partition names.
This greatly simplifies the /lib/upgrade/platform.sh.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
2019-03-10 17:48:23 +01:00

60 lines
1.4 KiB
Bash

#!/bin/sh
#
# Copyright 2015-2019 Traverse Technologies
#
platform_do_upgrade_traverse_nandubi() {
bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}')
newbootsys=2
if [ "$bootsys" -eq "2" ]; then
newbootsys=1
fi
# 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
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)
nand_do_platform_check "traverse-ls1043" $1
return $?
;;
*)
echo "Sysupgrade is not currently supported on $board"
;;
esac
return 1
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
traverse,ls1043v | \
traverse,ls1043s)
platform_do_upgrade_traverse_nandubi "$ARGV"
;;
*)
echo "Sysupgrade is not currently supported on $board"
;;
esac
}
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}"
}