ipq806x/nbg6817: add sysupgrade support
[openwrt/openwrt.git] / target / linux / ipq806x / base-files / lib / upgrade / platform.sh
1 . /lib/ipq806x.sh
2
3 PART_NAME=firmware
4
5 platform_check_image() {
6 local board=$(ipq806x_board_name)
7
8 case "$board" in
9 ap148 |\
10 d7800 |\
11 ea8500 |\
12 nbg6817 |\
13 r7500 |\
14 r7500v2 |\
15 r7800)
16 nand_do_platform_check $board $1
17 return $?;
18 ;;
19 c2600)
20 local magic_long="$(get_magic_long "$1")"
21 [ "$magic_long" != "27051956" ] && {
22 echo "Invalid image, bad magic: $magic_long"
23 return 1
24 }
25 return 0;
26 ;;
27 *)
28 return 1;
29 esac
30 }
31
32 platform_pre_upgrade() {
33 local board=$(ipq806x_board_name)
34
35 case "$board" in
36 ap148 |\
37 d7800 |\
38 nbg6817 |\
39 r7500 |\
40 r7500v2 |\
41 r7800)
42 nand_do_upgrade "$1"
43 ;;
44 ea8500)
45 linksys_preupgrade "$1"
46 ;;
47 esac
48 }
49
50 platform_do_upgrade() {
51 local board=$(ipq806x_board_name)
52
53 case "$board" in
54 c2600)
55 PART_NAME="os-image:rootfs"
56 MTD_CONFIG_ARGS="-s 0x200000"
57 default_do_upgrade "$ARGV"
58 ;;
59 ea8500)
60 platform_do_upgrade_linksys "$ARGV"
61 ;;
62 esac
63 }
64
65 platform_nand_pre_upgrade() {
66 local board=$(ipq806x_board_name)
67
68 case "$board" in
69 nbg6817)
70 zyxel_do_upgrade "$1"
71 ;;
72 esac
73 }
74
75 blink_led() {
76 . /etc/diag.sh; set_state upgrade
77 }
78
79 append sysupgrade_pre_upgrade blink_led