ath79: add support for Araknis AN-500-AP-I-AC
[openwrt/staging/wigyori.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" = "4349" ]; then
18 local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
19
20 [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
21 dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
22 mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
23
24 elif [ "$magic" = "7379" ]; then
25 local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
26 local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
27
28 [ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
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
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 engenius,eap1200h|\
54 engenius,eap300-v2|\
55 engenius,eap600|\
56 engenius,ecb600|\
57 engenius,ens202ext-v1|\
58 engenius,enstationac-v1)
59 IMAGE_LIST="tar tzf $1"
60 IMAGE_CMD="tar xzOf $1"
61 KERNEL_PART="loader"
62 ROOTFS_PART="fwconcat0"
63 KERNEL_FILE="uImage-lzma.bin"
64 ROOTFS_FILE="root.squashfs"
65 platform_do_upgrade_failsafe_datachk "$1"
66 ;;
67 jjplus,ja76pf2)
68 redboot_fis_do_upgrade "$1" linux
69 ;;
70 openmesh,a40|\
71 openmesh,a60|\
72 openmesh,mr600-v1|\
73 openmesh,mr600-v2|\
74 openmesh,mr900-v1|\
75 openmesh,mr900-v2|\
76 openmesh,mr1750-v1|\
77 openmesh,mr1750-v2|\
78 openmesh,om2p-v1|\
79 openmesh,om2p-v2|\
80 openmesh,om2p-v4|\
81 openmesh,om2p-hs-v1|\
82 openmesh,om2p-hs-v2|\
83 openmesh,om2p-hs-v3|\
84 openmesh,om2p-hs-v4|\
85 openmesh,om2p-lc|\
86 openmesh,om5p|\
87 openmesh,om5p-ac-v1|\
88 openmesh,om5p-ac-v2|\
89 openmesh,om5p-an)
90 PART_NAME="inactive"
91 platform_do_upgrade_openmesh "$1"
92 ;;
93 plasmacloud,pa300|\
94 plasmacloud,pa300e)
95 PART_NAME="inactive"
96 platform_do_upgrade_dualboot_datachk "$1"
97 ;;
98 ubnt,routerstation|\
99 ubnt,routerstation-pro)
100 redboot_fis_do_upgrade "$1" kernel
101 ;;
102 *)
103 default_do_upgrade "$1"
104 ;;
105 esac
106 }