2 # Copyright 2015-2019 Traverse Technologies
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"
9 REQUIRE_IMAGE_METADATA
=1
11 platform_do_upgrade_sdboot
() {
12 local diskdev partdev parttype
=ext4
14 local board_dir
=$
(tar tf
$tar_file |
grep -m 1 '^sysupgrade-.*/$')
15 board_dir
=${board_dir%/}
17 export_bootdevice
&& export_partdevice diskdev
0 ||
{
18 echo "Unable to determine upgrade device"
22 if export_partdevice partdev
1; then
23 mount
-t $parttype -o rw
,noatime
"/dev/$partdev" /mnt
2>&1
24 echo "Writing kernel..."
25 tar xf
$tar_file ${board_dir}/kernel
-O > /mnt
/fitImage
29 echo "Erasing rootfs..."
30 dd if=/dev
/zero of
=/dev
/mmcblk0p2 bs
=1M
> /dev
/null
2>&1
31 echo "Writing rootfs..."
32 tar xf
$tar_file ${board_dir}/root
-O |
dd of
=/dev
/mmcblk0p2 bs
=512k
> /dev
/null
2>&1
35 platform_do_upgrade_traverse_nandubi
() {
36 bootsys
=$
(fw_printenv bootsys |
awk -F= '{{print $2}}')
38 if [ "$bootsys" -eq "2" ]; then
42 # If nand_do_upgrade succeeds, we don't have an opportunity to add any actions of
43 # our own, so do it here and set back on failure
44 echo "Setting bootsys to #${newbootsys}"
45 fw_setenv bootsys
$newbootsys
47 CI_KERNPART
="kernel${newbootsys}"
48 CI_ROOTPART
="rootfs${newbootsys}"
49 nand_do_upgrade
"$1" ||
(echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys
$bootsys)
53 platform_do_upgrade_traverse_slotubi
() {
54 part
="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
55 echo "Active boot slot: ${part}"
58 if [ ! -z "${part}" ]; then
59 if [ "${part}" = "ubia" ]; then
66 echo "Updating UBI part ${CI_UBIPART}"
67 fw_setenv
"openwrt_active_sys" "${new_active_sys}"
72 platform_copy_config_sdboot
() {
73 local diskdev partdev parttype
=ext4
75 export_bootdevice
&& export_partdevice diskdev
0 ||
{
76 echo "Unable to determine upgrade device"
80 if export_partdevice partdev
1; then
81 mount
-t $parttype -o rw
,noatime
"/dev/$partdev" /mnt
2>&1
82 echo "Saving config backup..."
83 cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
87 platform_copy_config
() {
88 local board
=$
(board_name
)
91 fsl
,ls1012a-frwy-sdboot | \
92 fsl
,ls1021a-iot-sdboot | \
93 fsl
,ls1021a-twr-sdboot | \
94 fsl
,ls1028a-rdb-sdboot | \
95 fsl
,ls1043a-rdb-sdboot | \
96 fsl
,ls1046a-frwy-sdboot | \
97 fsl
,ls1046a-rdb-sdboot | \
98 fsl
,ls1088a-rdb-sdboot | \
99 fsl
,lx2160a-rdb-sdboot
)
100 platform_copy_config_sdboot
104 platform_check_image
() {
105 local board
=$
(board_name
)
110 nand_do_platform_check
"traverse-ls1043" $1
114 nand_do_platform_check
"ten64-mtd" $1
118 fsl
,ls1012a-frwy-sdboot | \
120 fsl
,ls1021a-iot-sdboot | \
122 fsl
,ls1021a-twr-sdboot | \
124 fsl
,ls1028a-rdb-sdboot | \
126 fsl
,ls1043a-rdb-sdboot | \
128 fsl
,ls1046a-frwy-sdboot | \
130 fsl
,ls1046a-rdb-sdboot | \
132 fsl
,ls1088a-rdb-sdboot | \
135 fsl
,lx2160a-rdb-sdboot
)
139 echo "Sysupgrade is not currently supported on $board"
145 platform_do_upgrade
() {
146 local board
=$
(board_name
)
148 # Force the creation of fw_printenv.lock
150 touch /var
/lock
/fw_printenv.lock
155 platform_do_upgrade_traverse_nandubi
"$1"
158 platform_do_upgrade_traverse_slotubi
"${1}"
171 default_do_upgrade
"$1"
173 fsl
,ls1012a-frwy-sdboot | \
174 fsl
,ls1021a-iot-sdboot | \
175 fsl
,ls1021a-twr-sdboot | \
176 fsl
,ls1028a-rdb-sdboot | \
177 fsl
,ls1043a-rdb-sdboot | \
178 fsl
,ls1046a-frwy-sdboot | \
179 fsl
,ls1046a-rdb-sdboot | \
180 fsl
,ls1088a-rdb-sdboot | \
181 fsl
,lx2160a-rdb-sdboot
)
182 platform_do_upgrade_sdboot
"$1"
186 echo "Sysupgrade is not currently supported on $board"