layerscape: support sysupgrade for squashfs rootfs
[openwrt/openwrt.git] / target / linux / layerscape / base-files / lib / upgrade / platform.sh
1 #
2 # Copyright 2015-2019 Traverse Technologies
3 # Copyright 2020 NXP
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 fsl,ls1012a-rdb | \
39 fsl,ls1021a-twr | \
40 fsl,ls1043a-rdb | \
41 fsl,ls1046a-rdb | \
42 fsl,ls1088a-rdb | \
43 fsl,ls2088a-rdb)
44 return 0
45 ;;
46 *)
47 echo "Sysupgrade is not currently supported on $board"
48 ;;
49 esac
50
51 return 1
52 }
53 platform_do_upgrade() {
54 local board=$(board_name)
55
56 # Force the creation of fw_printenv.lock
57 mkdir -p /var/lock
58 touch /var/lock/fw_printenv.lock
59
60 case "$board" in
61 traverse,ls1043v | \
62 traverse,ls1043s)
63 platform_do_upgrade_traverse_nandubi "$1"
64 ;;
65 fsl,ls1012a-frdm | \
66 fsl,ls1012a-rdb | \
67 fsl,ls1021a-twr | \
68 fsl,ls1043a-rdb | \
69 fsl,ls1046a-rdb | \
70 fsl,ls1088a-rdb | \
71 fsl,ls2088a-rdb)
72 PART_NAME=firmware
73 default_do_upgrade "$1"
74 ;;
75 *)
76 echo "Sysupgrade is not currently supported on $board"
77 ;;
78 esac
79 }