layerscape: ls10121frdm: add sysupgrade
[openwrt/openwrt.git] / target / linux / layerscape / base-files / lib / upgrade / platform.sh
1 #!/bin/sh
2 #
3 # Copyright 2015-2019 Traverse Technologies
4 #
5
6 RAMFS_COPY_BIN="/usr/sbin/fw_printenv /usr/sbin/fw_setenv /usr/sbin/ubinfo /bin/echo"
7 RAMFS_COPY_DATA="/etc/fw_env.config /var/lock/fw_printenv.lock"
8
9 platform_do_upgrade_traverse_nandubi() {
10 bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}')
11 newbootsys=2
12 if [ "$bootsys" -eq "2" ]; then
13 newbootsys=1
14 fi
15
16 # If nand_do_upgrade succeeds, we don't have an opportunity to add any actions of
17 # our own, so do it here and set back on failure
18 echo "Setting bootsys to #${newbootsys}"
19 fw_setenv bootsys $newbootsys
20 CI_UBIPART="nandubi"
21 CI_KERNPART="kernel${newbootsys}"
22 CI_ROOTPART="rootfs${newbootsys}"
23 nand_do_upgrade "$1" || (echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys $bootsys)
24
25 }
26 platform_check_image() {
27 local board=$(board_name)
28
29 case "$board" in
30 traverse,ls1043v | \
31 traverse,ls1043s)
32 nand_do_platform_check "traverse-ls1043" $1
33 return $?
34 ;;
35 fsl,ls1012a-frdm)
36 return 0
37 ;;
38 *)
39 echo "Sysupgrade is not currently supported on $board"
40 ;;
41 esac
42
43 return 1
44 }
45 platform_do_upgrade() {
46 local board=$(board_name)
47
48 # Force the creation of fw_printenv.lock
49 mkdir -p /var/lock
50 touch /var/lock/fw_printenv.lock
51
52 case "$board" in
53 traverse,ls1043v | \
54 traverse,ls1043s)
55 platform_do_upgrade_traverse_nandubi "$1"
56 ;;
57 fsl,ls1012a-frdm)
58 PART_NAME=firmware
59 default_do_upgrade "$1"
60 ;;
61 *)
62 echo "Sysupgrade is not currently supported on $board"
63 ;;
64 esac
65 }