medaitek: convert the NAND target to UBI
[openwrt/openwrt.git] / target / linux / mediatek / base-files / lib / upgrade / platform.sh
1 #
2 # Copyright (C) 2016 OpenWrt.org
3 #
4
5 platform_do_upgrade() {
6 local tar_file="$1"
7 local board="$(cat /tmp/sysinfo/board_name)"
8
9 echo "flashing kernel"
10 tar xf $tar_file sysupgrade-$board/kernel -O | mtd write - kernel
11
12 echo "flashing rootfs"
13 tar xf $tar_file sysupgrade-$board/root -O | mtd write - rootfs
14
15 return 0
16 }
17
18 platform_check_image() {
19 local tar_file="$1"
20 local board=$(cat /tmp/sysinfo/board_name)
21
22 case "$board" in
23 NAND)
24 nand_do_platform_check $board $1
25 return $?
26 ;;
27 eMMC)
28 local kernel_length=`(tar xf $tar_file sysupgrade-$board/kernel -O | wc -c) 2> /dev/null`
29 local rootfs_length=`(tar xf $tar_file sysupgrade-$board/root -O | wc -c) 2> /dev/null`
30 ;;
31
32 *)
33 echo "Sysupgrade is not supported on your board yet."
34 return 1
35 ;;
36 esac
37
38 [ "$kernel_length" = 0 -o "$rootfs_length" = 0 ] && {
39 echo "The upgarde image is corrupt."
40 return 1
41 }
42
43 return 0
44 }
45
46 platform_pre_upgrade() {
47 local board=$(cat /tmp/sysinfo/board_name)
48 case "$board" in
49 NAND)
50 nand_do_upgrade $1
51 ;;
52 esac
53 }