ath79: Add support for OpenMesh MR1750 v1
[openwrt/openwrt.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 jjplus,ja76pf2)
51 redboot_fis_do_upgrade "$1" linux
52 ;;
53 openmesh,mr600-v1|\
54 openmesh,mr600-v2|\
55 openmesh,mr900-v1|\
56 openmesh,mr900-v2|\
57 openmesh,mr1750-v1|\
58 openmesh,om2p-v2|\
59 openmesh,om2p-v4|\
60 openmesh,om2p-hs-v1|\
61 openmesh,om2p-hs-v2|\
62 openmesh,om2p-hs-v3|\
63 openmesh,om2p-hs-v4|\
64 openmesh,om2p-lc|\
65 openmesh,om5p)
66 PART_NAME="inactive"
67 platform_do_upgrade_openmesh "$1"
68 ;;
69 plasmacloud,pa300|\
70 plasmacloud,pa300e)
71 PART_NAME="inactive"
72 platform_do_upgrade_dualboot_datachk "$1"
73 ;;
74 ubnt,routerstation|\
75 ubnt,routerstation-pro)
76 redboot_fis_do_upgrade "$1" kernel
77 ;;
78 *)
79 default_do_upgrade "$1"
80 ;;
81 esac
82 }