layerscape: sysupgrade: require metadata
[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 REQUIRE_IMAGE_METADATA=1
10
11 platform_do_upgrade_traverse_nandubi() {
12 bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}')
13 newbootsys=2
14 if [ "$bootsys" -eq "2" ]; then
15 newbootsys=1
16 fi
17
18 # If nand_do_upgrade succeeds, we don't have an opportunity to add any actions of
19 # our own, so do it here and set back on failure
20 echo "Setting bootsys to #${newbootsys}"
21 fw_setenv bootsys $newbootsys
22 CI_UBIPART="nandubi"
23 CI_KERNPART="kernel${newbootsys}"
24 CI_ROOTPART="rootfs${newbootsys}"
25 nand_do_upgrade "$1" || (echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys $bootsys)
26
27 }
28 platform_check_image() {
29 local board=$(board_name)
30
31 case "$board" in
32 traverse,ls1043v | \
33 traverse,ls1043s)
34 nand_do_platform_check "traverse-ls1043" $1
35 return $?
36 ;;
37 fsl,ls1012a-frdm)
38 return 0
39 ;;
40 *)
41 echo "Sysupgrade is not currently supported on $board"
42 ;;
43 esac
44
45 return 1
46 }
47 platform_do_upgrade() {
48 local board=$(board_name)
49
50 # Force the creation of fw_printenv.lock
51 mkdir -p /var/lock
52 touch /var/lock/fw_printenv.lock
53
54 case "$board" in
55 traverse,ls1043v | \
56 traverse,ls1043s)
57 platform_do_upgrade_traverse_nandubi "$1"
58 ;;
59 fsl,ls1012a-frdm)
60 PART_NAME=firmware
61 default_do_upgrade "$1"
62 ;;
63 *)
64 echo "Sysupgrade is not currently supported on $board"
65 ;;
66 esac
67 }