treewide: use the generic board_name function
[oweals/openwrt.git] / target / linux / ramips / base-files / lib / upgrade / platform.sh
1 #
2 # Copyright (C) 2010 OpenWrt.org
3 #
4
5 PART_NAME=firmware
6
7 platform_check_image() {
8         local board=$(board_name)
9         local magic="$(get_magic_long "$1")"
10
11         [ "$#" -gt 1 ] && return 1
12
13         case "$board" in
14         3g150b|\
15         3g300m|\
16         a5-v11|\
17         ai-br100|\
18         air3gii|\
19         all0239-3g|\
20         all0256n-4M|\
21         all0256n-8M|\
22         all5002|\
23         all5003|\
24         ar725w|\
25         asl26555-8M|\
26         asl26555-16M|\
27         awapn2403|\
28         awm002-evb-4M|\
29         awm002-evb-8M|\
30         awm003-evb|\
31         bc2|\
32         broadway|\
33         carambola|\
34         cf-wr800n|\
35         cs-qr10|\
36         d105|\
37         d240|\
38         dap-1350|\
39         db-wrt01|\
40         dcs-930|\
41         dcs-930l-b1|\
42         dir-300-b1|\
43         dir-300-b7|\
44         dir-320-b1|\
45         dir-600-b1|\
46         dir-615-d|\
47         dir-615-h1|\
48         dir-620-a1|\
49         dir-620-d1|\
50         dir-810l|\
51         duzun-dm06|\
52         dwr-512-b|\
53         e1700|\
54         esr-9753|\
55         ew1200|\
56         ex2700|\
57         ex3700|\
58         f7c027|\
59         firewrt|\
60         fonera20n|\
61         freestation5|\
62         gl-mt300a|\
63         gl-mt300n|\
64         gl-mt750|\
65         gl-mt300n-v2|\
66         hc5*61|\
67         hc5661a|\
68         hg255d|\
69         hlk-rm04|\
70         hpm|\
71         ht-tm02|\
72         hw550-3g|\
73         ip2202|\
74         jhr-n805r|\
75         jhr-n825r|\
76         jhr-n926r|\
77         kn|\
78         kn_rc|\
79         kn_rf|\
80         kng_rc|\
81         linkits7688|\
82         linkits7688d|\
83         m2m|\
84         m3|\
85         m4-4M|\
86         m4-8M|\
87         mac1200rv2|\
88         microwrt|\
89         miniembplug|\
90         miniembwifi|\
91         miwifi-mini|\
92         miwifi-nano|\
93         mlw221|\
94         mlwg2|\
95         mofi3500-3gn|\
96         mpr-a1|\
97         mpr-a2|\
98         mr-102n|\
99         mt7628|\
100         mzk-750dhp|\
101         mzk-dp150n|\
102         mzk-ex300np|\
103         mzk-ex750np|\
104         mzk-w300nh2|\
105         mzk-wdpr|\
106         nbg-419n|\
107         nbg-419n2|\
108         newifi-d1|\
109         nixcore-x1-8M|\
110         nixcore-x1-16M|\
111         nw718|\
112         omega2|\
113         omega2p|\
114         oy-0001|\
115         pbr-d1|\
116         pbr-m1|\
117         psg1208|\
118         psg1218a|\
119         psg1218b|\
120         psr-680w|\
121         px-4885-4M|\
122         px-4885-8M|\
123         rb750gr3|\
124         re6500|\
125         rp-n53|\
126         rt5350f-olinuxino|\
127         rt5350f-olinuxino-evb|\
128         rt-ac51u|\
129         rt-g32-b1|\
130         rt-n10-plus|\
131         rt-n13u|\
132         rt-n14u|\
133         rt-n15|\
134         rt-n56u|\
135         rut5xx|\
136         sap-g3200u3|\
137         sk-wb8|\
138         sl-r7205|\
139         tew-638apb-v2|\
140         tew-691gr|\
141         tew-692gr|\
142         tew-714tru|\
143         timecloud|\
144         tiny-ac|\
145         ur-326n4g|\
146         ur-336un|\
147         v22rw-2x2|\
148         vocore-8M|\
149         vocore-16M|\
150         vocore2|\
151         vr500|\
152         w150m|\
153         w2914nsv2|\
154         w306r-v20|\
155         w502u|\
156         wf-2881|\
157         whr-1166d|\
158         whr-300hp2|\
159         whr-600d|\
160         whr-g300n|\
161         widora-neo|\
162         witi|\
163         wizfi630a|\
164         wl-330n|\
165         wl-330n3g|\
166         wl-341v3|\
167         wl-351|\
168         wl-wn575a3|\
169         wli-tx4-ag300n|\
170         wlr-6000|\
171         wmr-300|\
172         wn3000rpv3|\
173         wnce2001|\
174         wndr3700v5|\
175         wr512-3gn-4M|\
176         wr512-3gn-8M|\
177         wr6202|\
178         wrh-300cr|\
179         wrtnode|\
180         wrtnode2r |\
181         wrtnode2p |\
182         wsr-600|\
183         wt1520-4M|\
184         wt1520-8M|\
185         wt3020-4M|\
186         wt3020-8M|\
187         wzr-agl300nh|\
188         x5|\
189         x8|\
190         y1|\
191         y1s|\
192         zbt-ape522ii|\
193         zbt-cpe102|\
194         zbt-wa05|\
195         zbt-we1326|\
196         zbt-we2026|\
197         zbt-we826-16M|\
198         zbt-we826-32M|\
199         zbt-wg2626|\
200         zbt-wg3526-16M|\
201         zbt-wg3526-32M|\
202         zbt-wr8305rt|\
203         zte-q7|\
204         youku-yk1)
205                 [ "$magic" != "27051956" ] && {
206                         echo "Invalid image type."
207                         return 1
208                 }
209                 return 0
210                 ;;
211         3g-6200n|\
212         3g-6200nl|\
213         br-6475nd)
214                 [ "$magic" != "43535953" ] && {
215                         echo "Invalid image type."
216                         return 1
217                 }
218                 return 0
219                 ;;
220
221         ar670w)
222                 [ "$magic" != "6d000080" ] && {
223                         echo "Invalid image type."
224                         return 1
225                 }
226                 return 0
227                 ;;
228         c20i|\
229         c50|\
230         mr200|\
231         tl-wr840n-v4|\
232         tl-wr841n-v13)
233                 [ "$magic" != "03000000" ] && {
234                         echo "Invalid image type."
235                         return 1
236                 }
237                 return 0
238                 ;;
239         cy-swr1100|\
240         dch-m225|\
241         dir-610-a1|\
242         dir-645|\
243         dir-860l-b1)
244                 [ "$magic" != "5ea3a417" ] && {
245                         echo "Invalid image type."
246                         return 1
247                 }
248                 return 0
249                 ;;
250         hc5962|\
251         r6220)
252                 # these boards use metadata images
253                 return 0
254                 ;;
255         ubnt-erx|\
256         ubnt-erx-sfp)
257                 nand_do_platform_check "$board" "$1"
258                 return $?;
259                 ;;
260         wcr-1166ds|\
261         wsr-1166)
262                 [ "$magic" != "48445230" ] && {
263                         echo "Invalid image type."
264                         return 1
265                 }
266                 return 0
267                 ;;
268         esac
269
270         echo "Sysupgrade is not yet supported on $board."
271         return 1
272 }
273
274 platform_nand_pre_upgrade() {
275         local board=$(board_name)
276
277         case "$board" in
278         ubnt-erx|\
279         ubnt-erx-sfp)
280                 platform_upgrade_ubnt_erx "$ARGV"
281                 ;;
282         esac
283 }
284
285 platform_do_upgrade() {
286         local board=$(board_name)
287
288         case "$board" in
289         hc5962|\
290         r6220|\
291         ubnt-erx|\
292         ubnt-erx-sfp)
293                 nand_do_upgrade "$ARGV"
294                 ;;
295         *)
296                 default_do_upgrade "$ARGV"
297                 ;;
298         esac
299 }
300
301 disable_watchdog() {
302         killall watchdog
303         ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
304                 echo 'Could not disable watchdog'
305                 return 1
306         }
307 }
308
309 blink_led() {
310         . /etc/diag.sh; set_state upgrade
311 }
312
313 append sysupgrade_pre_upgrade disable_watchdog
314 append sysupgrade_pre_upgrade blink_led