ramips: add support for TP-Link Archer C20 v1
[openwrt/openwrt.git] / target / linux / ramips / base-files / lib / ramips.sh
1 #!/bin/sh
2 #
3 # Copyright (C) 2010-2013 OpenWrt.org
4 #
5
6 RAMIPS_BOARD_NAME=
7 RAMIPS_MODEL=
8
9 ramips_board_detect() {
10 local machine
11 local name
12
13 machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
14
15 case "$machine" in
16 *"11AC NAS Router")
17 name="11acnas"
18 ;;
19 *"3G150B")
20 name="3g150b"
21 ;;
22 *"3G300M")
23 name="3g300m"
24 ;;
25 *"3g-6200n")
26 name="3g-6200n"
27 ;;
28 *"3g-6200nl")
29 name="3g-6200nl"
30 ;;
31 *"A5-V11")
32 name="a5-v11"
33 ;;
34 *"Ai-BR100")
35 name="ai-br100"
36 ;;
37 *"Air3GII")
38 name="air3gii"
39 ;;
40 *"ALL0239-3G")
41 name="all0239-3g"
42 ;;
43 *"ALL0256N (4M)")
44 name="all0256n-4M"
45 ;;
46 *"ALL0256N (8M)")
47 name="all0256n-8M"
48 ;;
49 *"ALL5002")
50 name="all5002"
51 ;;
52 *"ALL5003")
53 name="all5003"
54 ;;
55 *"AR670W")
56 name="ar670w"
57 ;;
58 *"AR725W")
59 name="ar725w"
60 ;;
61 *"ASL26555 (8M)")
62 name="asl26555-8M"
63 ;;
64 *"ASL26555 (16M)")
65 name="asl26555-16M"
66 ;;
67 *"ATP-52B")
68 name="atp-52b"
69 ;;
70 *"AWAPN2403")
71 name="awapn2403"
72 ;;
73 *"AWM002 EVB (4M)")
74 name="awm002-evb-4M"
75 ;;
76 *"AWM002 EVB (8M)")
77 name="awm002-evb-8M"
78 ;;
79 *"BC2")
80 name="bc2"
81 ;;
82 *"BR-6475nD")
83 name="br-6475nd"
84 ;;
85 *"Broadway")
86 name="broadway"
87 ;;
88 *"C108")
89 name="c108"
90 ;;
91 *"C20")
92 name="c20"
93 ;;
94 *"C20i")
95 name="c20i"
96 ;;
97 *"C50")
98 name="c50"
99 ;;
100 *"Carambola")
101 name="carambola"
102 ;;
103 *"CF-WR800N")
104 name="cf-wr800n"
105 ;;
106 *"CS-QR10")
107 name="cs-qr10"
108 ;;
109 *"CY-SWR1100")
110 name="cy-swr1100"
111 ;;
112 *"D105")
113 name="d105"
114 ;;
115 *"D240")
116 name="d240"
117 ;;
118 *"DAP-1350")
119 name="dap-1350"
120 ;;
121 *"DB-WRT01")
122 name="db-wrt01"
123 ;;
124 *"DCH-M225")
125 name="dch-m225"
126 ;;
127 *"DCS-930")
128 name="dcs-930"
129 ;;
130 *"DCS-930L B1")
131 name="dcs-930l-b1"
132 ;;
133 *"DIR-300 B1")
134 name="dir-300-b1"
135 ;;
136 *"DIR-300 B7")
137 name="dir-300-b7"
138 ;;
139 *"DIR-320 B1")
140 name="dir-320-b1"
141 ;;
142 *"DIR-600 B1")
143 name="dir-600-b1"
144 ;;
145 *"DIR-610 A1")
146 name="dir-610-a1"
147 ;;
148 *"DIR-615 D")
149 name="dir-615-d"
150 ;;
151 *"DIR-615 H1")
152 name="dir-615-h1"
153 ;;
154 *"DIR-620 A1")
155 name="dir-620-a1"
156 ;;
157 *"DIR-620 D1")
158 name="dir-620-d1"
159 ;;
160 *"DIR-645")
161 name="dir-645"
162 ;;
163 *"DIR-810L")
164 name="dir-810l"
165 ;;
166 *"DIR-860L B1")
167 name="dir-860l-b1"
168 ;;
169 *"Dovado Tiny AC")
170 name="tiny-ac"
171 ;;
172 *"DuZun DM06")
173 name="duzun-dm06"
174 ;;
175 *"DWR-512 B")
176 name="dwr-512-b"
177 ;;
178 *"E1700")
179 name="e1700"
180 ;;
181 *"ESR-9753")
182 name="esr-9753"
183 ;;
184 *"EW1200")
185 name="ew1200"
186 ;;
187 *"EX2700")
188 name="ex2700";
189 ;;
190 *"EX3700/EX3800")
191 name="ex3700"
192 ;;
193 *"F5D8235 v1")
194 name="f5d8235-v1"
195 ;;
196 *"F5D8235 v2")
197 name="f5d8235-v2"
198 ;;
199 *"F7C027")
200 name="f7c027"
201 ;;
202 *"FireWRT")
203 name="firewrt"
204 ;;
205 *"Fonera 2.0N")
206 name="fonera20n"
207 ;;
208 *"FreeStation5")
209 name="freestation5"
210 ;;
211 *"GB-PC1")
212 name="gb-pc1"
213 ;;
214 *"GL-MT300A")
215 name="gl-mt300a"
216 ;;
217 *"GL-MT300N")
218 name="gl-mt300n"
219 ;;
220 *"GL-MT750")
221 name="gl-mt750"
222 ;;
223 *"GL-MT300N-V2")
224 name="gl-mt300n-v2"
225 ;;
226 *"HC5661")
227 name="hc5661"
228 ;;
229 *"HC5661A")
230 name="hc5661a"
231 ;;
232 *"HC5761")
233 name="hc5761"
234 ;;
235 *"HC5861")
236 name="hc5861"
237 ;;
238 *"HC5962")
239 name="hc5962"
240 ;;
241 *"HG255D")
242 name="hg255d"
243 ;;
244 *"HLK-RM04")
245 name="hlk-rm04"
246 ;;
247 *"HPM")
248 name="hpm"
249 ;;
250 *"HT-TM02")
251 name="ht-tm02"
252 ;;
253 *"HW550-3G")
254 name="hw550-3g"
255 ;;
256 *"IP2202")
257 name="ip2202"
258 ;;
259 *"JHR-N805R")
260 name="jhr-n805r"
261 ;;
262 *"JHR-N825R")
263 name="jhr-n825r"
264 ;;
265 *"JHR-N926R")
266 name="jhr-n926r"
267 ;;
268 *"K2P")
269 name="k2p"
270 ;;
271 *"M3")
272 name="m3"
273 ;;
274 *"M4 (4M)")
275 name="m4-4M"
276 ;;
277 *"M4 (8M)")
278 name="m4-8M"
279 ;;
280 *"MediaTek LinkIt Smart 7688")
281 linkit="$(dd bs=1 skip=1024 count=12 if=/dev/mtd2 2> /dev/null)"
282 if [ "${linkit}" = "LINKITS7688D" ]; then
283 name="linkits7688d"
284 RAMIPS_MODEL="${machine} DUO"
285 else
286 name="linkits7688"
287 fi
288 ;;
289 *"Memory 2 Move")
290 name="m2m"
291 ;;
292 *"Mercury MAC1200R v2")
293 name="mac1200rv2"
294 ;;
295 *"Mi Router 3G")
296 name="mir3g"
297 ;;
298 *"MicroWRT")
299 name="microwrt"
300 ;;
301 *"MiniEMBPlug")
302 name="miniembplug"
303 ;;
304 *"MiniEMBWiFi")
305 name="miniembwifi"
306 ;;
307 *"MiWiFi Mini")
308 name="miwifi-mini"
309 ;;
310 *"MiWiFi Nano")
311 name="miwifi-nano"
312 ;;
313 *"MLW221")
314 name="mlw221"
315 ;;
316 *"MLWG2")
317 name="mlwg2"
318 ;;
319 *"MOFI3500-3GN")
320 name="mofi3500-3gn"
321 ;;
322 *"MPR-A1")
323 name="mpr-a1"
324 ;;
325 *"MPR-A2")
326 name="mpr-a2"
327 ;;
328 *"MR-102N")
329 name="mr-102n"
330 ;;
331 *"MR200")
332 name="mr200"
333 ;;
334 *"MT7620a + MT7530 evaluation"*)
335 name="mt7620a_mt7530"
336 ;;
337 *"MT7620a V22SG"*)
338 name="mt7620a_v22sg"
339 ;;
340 *"MT7621 evaluation"*)
341 name="mt7621"
342 ;;
343 *"MT7628AN evaluation"*)
344 name="mt7628"
345 ;;
346 *"MT7688 evaluation"*)
347 name="mt7688"
348 ;;
349 *"MZK-750DHP")
350 name="mzk-750dhp"
351 ;;
352 *"MZK-DP150N")
353 name="mzk-dp150n"
354 ;;
355 *"MZK-EX300NP")
356 name="mzk-ex300np"
357 ;;
358 *"MZK-EX750NP")
359 name="mzk-ex750np"
360 ;;
361 *"MZK-W300NH2"*)
362 name="mzk-w300nh2"
363 ;;
364 *"MZK-WDPR"*)
365 name="mzk-wdpr"
366 ;;
367 *"NA930")
368 name="na930"
369 ;;
370 *"NBG-419N")
371 name="nbg-419n"
372 ;;
373 *"NBG-419N v2")
374 name="nbg-419n2"
375 ;;
376 *"Newifi-D1")
377 name="newifi-d1"
378 ;;
379 *"NCS601W")
380 name="ncs601w"
381 ;;
382 *"NixcoreX1 (8M)")
383 name="nixcore-x1-8M"
384 ;;
385 *"NixcoreX1 (16M)")
386 name="nixcore-x1-16M"
387 ;;
388 *"NW718")
389 name="nw718"
390 ;;
391 *"Onion Omega2")
392 name="omega2"
393 ;;
394 *"Onion Omega2+")
395 name="omega2p"
396 ;;
397 *"OY-0001")
398 name="oy-0001"
399 ;;
400 *"PBR-D1")
401 name="pbr-d1"
402 ;;
403 *"PBR-M1")
404 name="pbr-m1"
405 ;;
406 *"PSG1208")
407 name="psg1208"
408 ;;
409 *"PSG1218 rev.A")
410 name="psg1218a"
411 ;;
412 *"PSG1218 rev.B")
413 name="psg1218b"
414 ;;
415 *"PSR-680W"*)
416 name="psr-680w"
417 ;;
418 *"PWH2004")
419 name="pwh2004"
420 ;;
421 *"PX-4885 (4M)")
422 name="px-4885-4M"
423 ;;
424 *"PX-4885 (8M)")
425 name="px-4885-8M"
426 ;;
427 *"Q7")
428 name="zte-q7"
429 ;;
430 *"R6220")
431 name="r6220"
432 ;;
433 *"RB750Gr3")
434 name="rb750gr3"
435 ;;
436 *"RE350 v1")
437 name="re350-v1"
438 ;;
439 *"RE6500")
440 name="re6500"
441 ;;
442 *"RN502J")
443 name="xdxrn502j"
444 ;;
445 *"RP-N53")
446 name="rp-n53"
447 ;;
448 *"RT5350F-OLinuXino")
449 name="rt5350f-olinuxino"
450 ;;
451 *"RT5350F-OLinuXino-EVB")
452 name="rt5350f-olinuxino-evb"
453 ;;
454 *"RT-AC51U")
455 name="rt-ac51u"
456 ;;
457 *"RT-G32 B1")
458 name="rt-g32-b1"
459 ;;
460 *"RT-N10+")
461 name="rt-n10-plus"
462 ;;
463 *"RT-N13U")
464 name="rt-n13u"
465 ;;
466 *"RT-N14U")
467 name="rt-n14u"
468 ;;
469 *"RT-N15")
470 name="rt-n15"
471 ;;
472 *"RT-N56U")
473 name="rt-n56u"
474 ;;
475 *"RUT5XX")
476 name="rut5xx"
477 ;;
478 *"SamKnows Whitebox 8")
479 name="sk-wb8"
480 ;;
481 *"SAP-G3200U3")
482 name="sap-g3200u3"
483 ;;
484 *"SL-R7205"*)
485 name="sl-r7205"
486 ;;
487 *"TEW-638APB v2")
488 name="tew-638apb-v2"
489 ;;
490 *"TEW-691GR")
491 name="tew-691gr"
492 ;;
493 *"TEW-692GR")
494 name="tew-692gr"
495 ;;
496 *"TEW-714TRU")
497 name="tew-714tru"
498 ;;
499 *"Timecloud")
500 name="timecloud"
501 ;;
502 *"TL-WR840N v4")
503 name="tl-wr840n-v4"
504 ;;
505 *"TL-WR841N v13")
506 name="tl-wr841n-v13"
507 ;;
508 *"UBNT-ERX")
509 name="ubnt-erx"
510 ;;
511 *"UBNT-ERX-SFP")
512 name="ubnt-erx-sfp"
513 ;;
514 *"UR-326N4G")
515 name="ur-326n4g"
516 ;;
517 *"UR-336UN")
518 name="ur-336un"
519 ;;
520 *"V11ST-FE")
521 name="v11st-fe"
522 ;;
523 *"V22RW-2X2")
524 name="v22rw-2x2"
525 ;;
526 *"VoCore (8M)")
527 name="vocore-8M"
528 ;;
529 *"VoCore (16M)")
530 name="vocore-16M"
531 ;;
532 *"VoCore2")
533 name="vocore2"
534 ;;
535 *"VoCore2-Lite")
536 name="vocore2lite"
537 ;;
538 *"VR500")
539 name="vr500"
540 ;;
541 *"W150M")
542 name="w150m"
543 ;;
544 *"W2914NS v2")
545 name="w2914nsv2"
546 ;;
547 *"W306R V2.0")
548 name="w306r-v20"
549 ;;
550 *"W502U")
551 name="w502u"
552 ;;
553 *"WCR-1166DS")
554 name="wcr-1166ds"
555 ;;
556 *"WCR-150GN")
557 name="wcr-150gn"
558 ;;
559 *"WE1026-5G (16M)")
560 name="we1026-5g-16m"
561 ;;
562 *"WF-2881")
563 name="wf-2881"
564 ;;
565 *"WHR-1166D")
566 name="whr-1166d"
567 ;;
568 *"WHR-300HP2")
569 name="whr-300hp2"
570 ;;
571 *"WHR-600D")
572 name="whr-600d"
573 ;;
574 *"WHR-G300N")
575 name="whr-g300n"
576 ;;
577 *"Widora-NEO")
578 name="widora-neo"
579 ;;
580 *"WiTi")
581 name="witi"
582 ;;
583 *"WIZARD 8800")
584 name="wizard8800"
585 ;;
586 *"WizFi630A")
587 name="wizfi630a"
588 ;;
589 *"WL-330N")
590 name="wl-330n"
591 ;;
592 *"WL-330N3G")
593 name="wl-330n3g"
594 ;;
595 *"WL-341 v3")
596 name="wl-341v3"
597 ;;
598 *"WL-351 v1 002")
599 name="wl-351"
600 ;;
601 *"WL-WN575A3")
602 name="wl-wn575a3"
603 ;;
604 *"WLI-TX4-AG300N")
605 name="wli-tx4-ag300n"
606 ;;
607 *"WLR-6000")
608 name="wlr-6000"
609 ;;
610 *"WMDR-143N")
611 name="wmdr-143n"
612 ;;
613 *"WMR-300")
614 name="wmr-300"
615 ;;
616 *"WN3000RPv3")
617 name="wn3000rpv3"
618 ;;
619 *"WNCE2001")
620 name="wnce2001"
621 ;;
622 *"WNDR3700v5")
623 name="wndr3700v5"
624 ;;
625 *"WR512-3GN (4M)")
626 name="wr512-3gn-4M"
627 ;;
628 *"WR512-3GN (8M)")
629 name="wr512-3gn-8M"
630 ;;
631 *"WR6202")
632 name="wr6202"
633 ;;
634 *"WRH-300CR")
635 name="wrh-300cr"
636 ;;
637 *"WRTNODE")
638 name="wrtnode"
639 ;;
640 *"WRTnode2R")
641 name="wrtnode2r"
642 ;;
643 *"WRTnode2P")
644 name="wrtnode2p"
645 ;;
646 *"WSR-1166DHP")
647 name="wsr-1166"
648 ;;
649 *"WSR-600DHP")
650 name="wsr-600"
651 ;;
652 *"WT1520 (4M)")
653 name="wt1520-4M"
654 ;;
655 *"WT1520 (8M)")
656 name="wt1520-8M"
657 ;;
658 *"WT3020 (4M)")
659 name="wt3020-4M"
660 ;;
661 *"WT3020 (8M)")
662 name="wt3020-8M"
663 ;;
664 *"WZR-AGL300NH")
665 name="wzr-agl300nh"
666 ;;
667 *"X5")
668 name="x5"
669 ;;
670 *"X8")
671 name="x8"
672 ;;
673 *"Y1")
674 name="y1"
675 ;;
676 *"Y1S")
677 name="y1s"
678 ;;
679 *"ZBT-APE522II")
680 name="zbt-ape522ii"
681 ;;
682 *"ZBT-CPE102")
683 name="zbt-cpe102"
684 ;;
685 *"ZBT-WA05")
686 name="zbt-wa05"
687 ;;
688 *"ZBT-WE1326")
689 name="zbt-we1326"
690 ;;
691 *"ZBT-WE2026")
692 name="zbt-we2026"
693 ;;
694 *"ZBT-WE826 (16M)")
695 name="zbt-we826-16M"
696 ;;
697 *"ZBT-WE826 (32M)")
698 name="zbt-we826-32M"
699 ;;
700 *"ZBT-WG2626")
701 name="zbt-wg2626"
702 ;;
703 *"ZBT-WG3526 (16M)")
704 name="zbt-wg3526-16M"
705 ;;
706 *"ZBT-WG3526 (32M)")
707 name="zbt-wg3526-32M"
708 ;;
709 *"ZBT-WR8305RT")
710 name="zbt-wr8305rt"
711 ;;
712 *"ZyXEL Keenetic")
713 name="kn"
714 ;;
715 *"ZyXEL Keenetic Omni")
716 name="kn_rc"
717 ;;
718 *"ZyXEL Keenetic Omni II")
719 name="kn_rf"
720 ;;
721 *"ZyXEL Keenetic Viva")
722 name="kng_rc"
723 ;;
724 *"YK1")
725 name="youku-yk1"
726 ;;
727 *)
728 name="generic"
729 ;;
730 esac
731
732 [ -z "$RAMIPS_BOARD_NAME" ] && RAMIPS_BOARD_NAME="$name"
733 [ -z "$RAMIPS_MODEL" ] && RAMIPS_MODEL="$machine"
734
735 [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
736
737 echo "$RAMIPS_BOARD_NAME" > /tmp/sysinfo/board_name
738 echo "$RAMIPS_MODEL" > /tmp/sysinfo/model
739 }