8c7b8182211b6ae1ba72824d3705d96dbac1ece5
[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         alfa-network,ac1200rm|\
20         alfa-network,awusfree1|\
21         all0239-3g|\
22         all0256n-4M|\
23         all0256n-8M|\
24         all5002|\
25         all5003|\
26         mediatek,ap-mt7621a-v60|\
27         ar725w|\
28         asl26555-8M|\
29         asl26555-16M|\
30         awapn2403|\
31         awm002-evb-4M|\
32         awm002-evb-8M|\
33         bc2|\
34         bdcom,wap2100-sk|\
35         bocco|\
36         broadway|\
37         c108|\
38         carambola|\
39         cf-wr800n|\
40         cs-qr10|\
41         d105|\
42         d240|\
43         dap-1350|\
44         db-wrt01|\
45         dcs-930|\
46         dcs-930l-b1|\
47         dir-300-b1|\
48         dir-300-b7|\
49         dir-320-b1|\
50         dir-600-b1|\
51         dir-615-d|\
52         dir-615-h1|\
53         dir-620-a1|\
54         dir-620-d1|\
55         dir-810l|\
56         duzun-dm06|\
57         e1700|\
58         elecom,wrc-1167ghbk2-s|\
59         elecom,wrc-2533gst|\
60         elecom,wrc-1900gst|\
61         esr-9753|\
62         ew1200|\
63         ex2700|\
64         ex3700|\
65         f7c027|\
66         firewrt|\
67         fonera20n|\
68         freestation5|\
69         gnubee,gb-pc1|\
70         gnubee,gb-pc2|\
71         gl-mt300a|\
72         gl-mt300n|\
73         gl-mt750|\
74         gl-mt300n-v2|\
75         hc5*61|\
76         hc5661a|\
77         hg255d|\
78         hiwifi,hc5861b|\
79         hlk-rm04|\
80         hpm|\
81         ht-tm02|\
82         hw550-3g|\
83         iodata,wn-ax1167gr|\
84         iodata,wn-gx300gr|\
85         ip2202|\
86         jhr-n805r|\
87         jhr-n825r|\
88         jhr-n926r|\
89         k2p|\
90         kimax,u35wf|\
91         kn|\
92         kn_rc|\
93         kn_rf|\
94         kng_rc|\
95         linkits7688|\
96         m2m|\
97         m3|\
98         m4-4M|\
99         m4-8M|\
100         mac1200rv2|\
101         microwrt|\
102         miniembplug|\
103         miniembwifi|\
104         miwifi-mini|\
105         miwifi-nano|\
106         mlw221|\
107         mlwg2|\
108         mofi3500-3gn|\
109         mpr-a1|\
110         mpr-a2|\
111         mr-102n|\
112         mt7628|\
113         mtc,wr1201|\
114         mzk-750dhp|\
115         mzk-dp150n|\
116         mzk-ex300np|\
117         mzk-ex750np|\
118         mzk-w300nh2|\
119         mzk-wdpr|\
120         nbg-419n|\
121         nbg-419n2|\
122         newifi-d1|\
123         d-team,newifi-d2|\
124         nixcore-x1-8M|\
125         nixcore-x1-16M|\
126         nw718|\
127         omega2|\
128         omega2p|\
129         oy-0001|\
130         pbr-d1|\
131         pbr-m1|\
132         phicomm,k2g|\
133         psg1208|\
134         psg1218a|\
135         psg1218b|\
136         psr-680w|\
137         px-4885-4M|\
138         px-4885-8M|\
139         netgear,r6120|\
140         rb750gr3|\
141         re6500|\
142         rp-n53|\
143         rt5350f-olinuxino|\
144         rt5350f-olinuxino-evb|\
145         rt-ac51u|\
146         rt-g32-b1|\
147         rt-n10-plus|\
148         rt-n12p|\
149         rt-n13u|\
150         rt-n14u|\
151         rt-n15|\
152         rt-n56u|\
153         rut5xx|\
154         sap-g3200u3|\
155         sk-wb8|\
156         skylab,skw92a|\
157         sl-r7205|\
158         tama,w06|\
159         tew-638apb-v2|\
160         tew-691gr|\
161         tew-692gr|\
162         tew-714tru|\
163         timecloud|\
164         tiny-ac|\
165         u25awf-h1|\
166         unielec,u7621-06-256m-16m|\
167         unielec,u7621-06-512m-64m|\
168         u7628-01-128M-16M|\
169         ur-326n4g|\
170         ur-336un|\
171         v22rw-2x2|\
172         vonets,var11n-300|\
173         vocore-8M|\
174         vocore-16M|\
175         vocore2|\
176         vocore2lite|\
177         vr500|\
178         w150m|\
179         w2914nsv2|\
180         w306r-v20|\
181         w502u|\
182         ravpower,wd03|\
183         wavlink,wl-wn570ha1|\
184         wf-2881|\
185         whr-1166d|\
186         whr-300hp2|\
187         whr-600d|\
188         whr-g300n|\
189         widora,neo-16m|\
190         widora,neo-32m|\
191         mqmaker,witi-256m|\
192         mqmaker,witi-512m|\
193         we1026-5g-16m|\
194         wizfi630a|\
195         wl-330n|\
196         wl-330n3g|\
197         wl-341v3|\
198         wl-351|\
199         wl-wn575a3|\
200         wli-tx4-ag300n|\
201         wlr-6000|\
202         wmdr-143n|\
203         wmr-300|\
204         wn3000rpv3|\
205         wnce2001|\
206         wndr3700v5|\
207         wr512-3gn-4M|\
208         wr512-3gn-8M|\
209         wr6202|\
210         wrh-300cr|\
211         wrtnode|\
212         wrtnode2r |\
213         wrtnode2p |\
214         wsr-600|\
215         wt1520-4M|\
216         wt1520-8M|\
217         wt3020-4M|\
218         wt3020-8M|\
219         wzr-agl300nh|\
220         x5|\
221         x8|\
222         y1|\
223         y1s|\
224         youhua,wr1200js|\
225         zbt-ape522ii|\
226         zbt-cpe102|\
227         zbt-wa05|\
228         zbtlink,zbt-we1226|\
229         zbt-we1326|\
230         zbt-we2026|\
231         zbtlink,zbt-we3526|\
232         zbt-we826-16M|\
233         zbt-we826-32M|\
234         zbt-wg2626|\
235         zbt-wg3526-16M|\
236         zbt-wg3526-32M|\
237         zbt-wr8305rt|\
238         zorlik,zl5900v2|\
239         zte-q7|\
240         zyxel,keenetic-extra-ii|\
241         youku-yk1)
242                 [ "$magic" != "27051956" ] && {
243                         echo "Invalid image type."
244                         return 1
245                 }
246                 return 0
247                 ;;
248         3g-6200n|\
249         3g-6200nl|\
250         br-6475nd|\
251         edimax,br-6478ac-v2)
252                 [ "$magic" != "43535953" ] && {
253                         echo "Invalid image type."
254                         return 1
255                 }
256                 return 0
257                 ;;
258
259         ar670w)
260                 [ "$magic" != "6d000080" ] && {
261                         echo "Invalid image type."
262                         return 1
263                 }
264                 return 0
265                 ;;
266         c20i|\
267         c50|\
268         mr200|\
269         tplink,c2-v1|\
270         tplink,c20-v1|\
271         tplink,c20-v4|\
272         tplink,c50-v3|\
273         tplink,tl-mr3020-v3|\
274         tplink,tl-mr3420-v5|\
275         tplink,tl-wa801nd-v5|\
276         tplink,tl-wr842n-v5|\
277         tplink,tl-wr902ac-v3|\
278         tl-wr840n-v4|\
279         tl-wr840n-v5|\
280         tl-wr841n-v13)
281                 [ "$magic" != "03000000" ] && {
282                         echo "Invalid image type."
283                         return 1
284                 }
285                 return 0
286                 ;;
287         cy-swr1100|\
288         dch-m225|\
289         dir-610-a1|\
290         dir-645|\
291         dir-860l-b1)
292                 [ "$magic" != "5ea3a417" ] && {
293                         echo "Invalid image type."
294                         return 1
295                 }
296                 return 0
297                 ;;
298         dlink,dwr-116-a1|\
299         dlink,dwr-118-a1|\
300         dlink,dwr-118-a2|\
301         dlink,dwr-921-c1|\
302         dwr-512-b|\
303         lava,lr-25g001)
304                 [ "$magic" != "0404242b" ] && {
305                         echo "Invalid image type."
306                         return 1
307                 }
308                 return 0
309                 ;;
310         hc5962|\
311         mir3g|\
312         r6220|\
313         ubnt-erx|\
314         ubnt-erx-sfp)
315                 nand_do_platform_check "$board" "$1"
316                 return $?;
317                 ;;
318         mikrotik,rbm11g|\
319         mikrotik,rbm33g|\
320         re350-v1)
321                 [ "$magic" != "01000000" ] && {
322                         echo "Invalid image type."
323                         return 1
324                 }
325                 return 0
326                 ;;
327         wcr-1166ds|\
328         wsr-1166)
329                 [ "$magic" != "48445230" ] && {
330                         echo "Invalid image type."
331                         return 1
332                 }
333                 return 0
334                 ;;
335         esac
336
337         echo "Sysupgrade is not yet supported on $board."
338         return 1
339 }
340
341 platform_pre_upgrade() {
342         local board=$(board_name)
343
344         case "$board" in
345         mikrotik,rbm11g|\
346         mikrotik,rbm33g)
347                 [ -z "$(rootfs_type)" ] && mtd erase firmware
348                 ;;
349         esac
350 }
351
352 platform_nand_pre_upgrade() {
353         local board=$(board_name)
354
355         case "$board" in
356         ubnt-erx|\
357         ubnt-erx-sfp)
358                 platform_upgrade_ubnt_erx "$ARGV"
359                 ;;
360         esac
361 }
362
363 platform_do_upgrade() {
364         local board=$(board_name)
365
366         case "$board" in
367         hc5962|\
368         mir3g|\
369         r6220|\
370         ubnt-erx|\
371         ubnt-erx-sfp)
372                 nand_do_upgrade "$ARGV"
373                 ;;
374         *)
375                 default_do_upgrade "$ARGV"
376                 ;;
377         esac
378 }