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