| PART_NAME=linux |
| REQUIRE_IMAGE_METADATA=0 |
| |
| platform_check_image() { |
| [ "$#" -gt 1 ] && return 1 |
| |
| case "$(board_name)" in |
| comtrend,vg-8050|\ |
| comtrend,vr-3032u|\ |
| huawei,hg253s-v2|\ |
| netgear,dgnd3700-v2|\ |
| sercomm,ad1018|\ |
| sercomm,h500-s-lowi|\ |
| sercomm,h500-s-vfes) |
| # NAND sysupgrade |
| return 0 |
| ;; |
| esac |
| |
| case "$(get_magic_word "$1")" in |
| 3600|3700|3800) |
| # CFE tag versions |
| return 0 |
| ;; |
| *) |
| echo "Invalid image type. Please use only .bin files" |
| return 1 |
| ;; |
| esac |
| } |
| |
| cfe_jffs2_upgrade_tar() { |
| local tar_file="$1" |
| local kernel_mtd="$(find_mtd_index $CI_KERNPART)" |
| |
| if [ -z "$kernel_mtd" ]; then |
| echo "$CI_KERNPART partition not found" |
| return 1 |
| fi |
| |
| local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') |
| board_dir=${board_dir%/} |
| |
| local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c 2> /dev/null) |
| local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c 2> /dev/null) |
| |
| if [ "$kernel_length" = 0 ]; then |
| echo "kernel cannot be empty" |
| return 1 |
| fi |
| |
| flash_erase -j /dev/mtd${kernel_mtd} 0 0 |
| tar xf $tar_file ${board_dir}/kernel -O | nandwrite /dev/mtd${kernel_mtd} - |
| |
| local rootfs_type="$(identify_tar "$tar_file" ${board_dir}/root)" |
| |
| nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "0" "0" |
| |
| local ubidev="$( nand_find_ubi "$CI_UBIPART" )" |
| |
| local root_ubivol="$(nand_find_volume $ubidev $CI_ROOTPART)" |
| tar xf $tar_file ${board_dir}/root -O | \ |
| ubiupdatevol /dev/$root_ubivol -s $rootfs_length - |
| |
| nand_do_upgrade_success |
| } |
| |
| platform_do_upgrade() { |
| case "$(board_name)" in |
| comtrend,vg-8050|\ |
| comtrend,vr-3032u|\ |
| huawei,hg253s-v2|\ |
| netgear,dgnd3700-v2) |
| REQUIRE_IMAGE_METADATA=1 |
| cfe_jffs2_upgrade_tar "$1" |
| ;; |
| sercomm,ad1018|\ |
| sercomm,h500-s-lowi|\ |
| sercomm,h500-s-vfes) |
| REQUIRE_IMAGE_METADATA=1 |
| nand_do_upgrade "$1" |
| ;; |
| *) |
| default_do_upgrade "$1" |
| ;; |
| esac |
| } |