ipq806x/nbg6817: add sysupgrade support
[lede-git/.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