| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #
- # Copyright 2015-2019 Traverse Technologies
- # Copyright 2020 NXP
- #
- RAMFS_COPY_BIN=""
- RAMFS_COPY_DATA=""
- REQUIRE_IMAGE_METADATA=1
- platform_do_upgrade_sdboot() {
- local diskdev partdev parttype=ext4
- local tar_file="$1"
- local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
- board_dir=${board_dir%/}
- export_bootdevice && export_partdevice diskdev 0 || {
- echo "Unable to determine upgrade device"
- return 1
- }
- if export_partdevice partdev 1; then
- mount -t $parttype -o rw,noatime "/dev/$partdev" /mnt 2>&1
- echo "Writing kernel..."
- tar xf $tar_file ${board_dir}/kernel -O > /mnt/fitImage
- umount /mnt
- fi
- echo "Erasing rootfs..."
- dd if=/dev/zero of=/dev/mmcblk0p2 bs=1M > /dev/null 2>&1
- echo "Writing rootfs..."
- tar xf $tar_file ${board_dir}/root -O | dd of=/dev/mmcblk0p2 bs=512k > /dev/null 2>&1
- }
- platform_do_upgrade_traverse_slotubi() {
- part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
- echo "Active boot slot: ${part}"
- new_active_sys="b"
- if [ ! -z "${part}" ]; then
- if [ "${part}" = "ubia" ]; then
- CI_UBIPART="ubib"
- else
- CI_UBIPART="ubia"
- new_active_sys="a"
- fi
- fi
- echo "Updating UBI part ${CI_UBIPART}"
- fw_setenv "openwrt_active_sys" "${new_active_sys}"
- nand_do_upgrade "$1"
- return $?
- }
- platform_copy_config_sdboot() {
- local diskdev partdev parttype=ext4
- export_bootdevice && export_partdevice diskdev 0 || {
- echo "Unable to determine upgrade device"
- return 1
- }
- if export_partdevice partdev 1; then
- mount -t $parttype -o rw,noatime "/dev/$partdev" /mnt 2>&1
- echo "Saving config backup..."
- cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
- umount /mnt
- fi
- }
- platform_copy_config() {
- local board=$(board_name)
- case "$board" in
- fsl,ls1012a-frwy-sdboot | \
- fsl,ls1021a-iot-sdboot | \
- fsl,ls1021a-twr-sdboot | \
- fsl,ls1028a-rdb-sdboot | \
- fsl,ls1043a-rdb-sdboot | \
- fsl,ls1046a-frwy-sdboot | \
- fsl,ls1046a-rdb-sdboot | \
- fsl,ls1088a-rdb-sdboot | \
- fsl,lx2160a-rdb-sdboot)
- platform_copy_config_sdboot
- ;;
- esac
- }
- platform_check_image() {
- local board=$(board_name)
- case "$board" in
- traverse,ten64)
- nand_do_platform_check "ten64-mtd" $1
- return $?
- ;;
- fsl,ls1012a-frdm | \
- fsl,ls1012a-frwy-sdboot | \
- fsl,ls1012a-rdb | \
- fsl,ls1021a-iot-sdboot | \
- fsl,ls1021a-twr | \
- fsl,ls1021a-twr-sdboot | \
- fsl,ls1028a-rdb | \
- fsl,ls1028a-rdb-sdboot | \
- fsl,ls1043a-rdb | \
- fsl,ls1043a-rdb-sdboot | \
- fsl,ls1046a-frwy | \
- fsl,ls1046a-frwy-sdboot | \
- fsl,ls1046a-rdb | \
- fsl,ls1046a-rdb-sdboot | \
- fsl,ls1088a-rdb | \
- fsl,ls1088a-rdb-sdboot | \
- fsl,ls2088a-rdb | \
- fsl,lx2160a-rdb | \
- fsl,lx2160a-rdb-sdboot)
- return 0
- ;;
- *)
- echo "Sysupgrade is not currently supported on $board"
- ;;
- esac
- return 1
- }
- platform_do_upgrade() {
- local board=$(board_name)
- # Force the creation of fw_printenv.lock
- mkdir -p /var/lock
- touch /var/lock/fw_printenv.lock
- case "$board" in
- traverse,ten64)
- platform_do_upgrade_traverse_slotubi "${1}"
- ;;
- fsl,ls1012a-frdm | \
- fsl,ls1012a-rdb | \
- fsl,ls1021a-twr | \
- fsl,ls1028a-rdb | \
- fsl,ls1043a-rdb | \
- fsl,ls1046a-frwy | \
- fsl,ls1046a-rdb | \
- fsl,ls1088a-rdb | \
- fsl,ls2088a-rdb | \
- fsl,lx2160a-rdb)
- PART_NAME=firmware
- default_do_upgrade "$1"
- ;;
- fsl,ls1012a-frwy-sdboot | \
- fsl,ls1021a-iot-sdboot | \
- fsl,ls1021a-twr-sdboot | \
- fsl,ls1028a-rdb-sdboot | \
- fsl,ls1043a-rdb-sdboot | \
- fsl,ls1046a-frwy-sdboot | \
- fsl,ls1046a-rdb-sdboot | \
- fsl,ls1088a-rdb-sdboot | \
- fsl,lx2160a-rdb-sdboot)
- platform_do_upgrade_sdboot "$1"
- return 0
- ;;
- *)
- echo "Sysupgrade is not currently supported on $board"
- ;;
- esac
- }
|