642a9891ff2984bcf30e3987d5e5d3a73bd24c66
[openwrt/staging/dedeckeh.git] / target / linux / ath79 / generic / base-files / lib / upgrade / platform.sh
1 #
2 # Copyright (C) 2011 OpenWrt.org
3 #
4
5 PART_NAME=firmware
6 REQUIRE_IMAGE_METADATA=1
7
8 RAMFS_COPY_BIN='fw_printenv fw_setenv'
9 RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
10
11 redboot_fis_do_upgrade() {
12 local append
13 local sysup_file="$1"
14 local kern_part="$2"
15 local magic=$(get_magic_word "$sysup_file")
16
17 if [ "$magic" = "7379" ]; then
18 local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
19
20 [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
21
22 if grep -q "mtd1.*loader" /proc/mtd; then
23 tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
24 mtd -r $append write - loader:firmware
25
26 else
27 local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
28
29 tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
30 mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
31 fi
32 else
33 echo "Unknown image, aborting!"
34 return 1
35 fi
36 }
37
38 platform_check_image() {
39 return 0
40 }
41
42 platform_do_upgrade() {
43 local board=$(board_name)
44
45 case "$board" in
46 adtran,bsap1800-v2|\
47 adtran,bsap1840)
48 redboot_fis_do_upgrade "$1" vmlinux_2
49 ;;
50 allnet,all-wap02860ac|\
51 araknis,an-300-ap-i-n|\
52 araknis,an-500-ap-i-ac|\
53 araknis,an-700-ap-i-ac|\
54 engenius,eap1200h|\
55 engenius,eap300-v2|\
56 engenius,eap600|\
57 engenius,ecb600|\
58 engenius,ens202ext-v1|\
59 engenius,enstationac-v1)
60 IMAGE_LIST="tar tzf $1"
61 IMAGE_CMD="tar xzOf $1"
62 KERNEL_PART="loader"
63 ROOTFS_PART="fwconcat0"
64 KERNEL_FILE="uImage-lzma.bin"
65 ROOTFS_FILE="root.squashfs"
66 platform_do_upgrade_failsafe_datachk "$1"
67 ;;
68 jjplus,ja76pf2)
69 redboot_fis_do_upgrade "$1" linux
70 ;;
71 openmesh,a40|\
72 openmesh,a60|\
73 openmesh,mr600-v1|\
74 openmesh,mr600-v2|\
75 openmesh,mr900-v1|\
76 openmesh,mr900-v2|\
77 openmesh,mr1750-v1|\
78 openmesh,mr1750-v2|\
79 openmesh,om2p-v1|\
80 openmesh,om2p-v2|\
81 openmesh,om2p-v4|\
82 openmesh,om2p-hs-v1|\
83 openmesh,om2p-hs-v2|\
84 openmesh,om2p-hs-v3|\
85 openmesh,om2p-hs-v4|\
86 openmesh,om2p-lc|\
87 openmesh,om5p|\
88 openmesh,om5p-ac-v1|\
89 openmesh,om5p-ac-v2|\
90 openmesh,om5p-an)
91 PART_NAME="inactive"
92 platform_do_upgrade_openmesh "$1"
93 ;;
94 plasmacloud,pa300|\
95 plasmacloud,pa300e)
96 PART_NAME="inactive"
97 platform_do_upgrade_dualboot_datachk "$1"
98 ;;
99 ubnt,routerstation|\
100 ubnt,routerstation-pro)
101 redboot_fis_do_upgrade "$1" kernel
102 ;;
103 *)
104 default_do_upgrade "$1"
105 ;;
106 esac
107 }