1#!/bin/sh
2#
3# Copyright (C) 2010-2013 OpenWrt.org
4#
5
6RAMIPS_BOARD_NAME=
7RAMIPS_MODEL=
8
9ramips_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	*"3G150B")
17		name="3g150b"
18		;;
19	*"3G300M")
20		name="3g300m"
21		;;
22	*"3g-6200n")
23		name="3g-6200n"
24		;;
25	*"3g-6200nl")
26		name="3g-6200nl"
27		;;
28	*"A5-V11")
29		name="a5-v11"
30		;;
31	*"Ai-BR100")
32		name="ai-br100"
33		;;
34	*"Air3GII")
35		name="air3gii"
36		;;
37	*"ALL0239-3G")
38		name="all0239-3g"
39		;;
40	*"ALL0256N")
41		name="all0256n"
42		;;
43	*"ALL5002")
44		name="all5002"
45		;;
46	*"ALL5003")
47		name="all5003"
48		;;
49	*"AR670W")
50		name="ar670w"
51		;;
52	*"AR725W")
53		name="ar725w"
54		;;
55	*"ASL26555")
56		name="asl26555"
57		;;
58	*"ATP-52B")
59		name="atp-52b"
60		;;
61	*"AWAPN2403")
62		name="awapn2403"
63		;;
64	*"AWM002 EVB")
65		name="awm002-evb"
66		;;
67	*"AWM003 EVB")
68		name="awm003-evb"
69		;;
70	*"BC2")
71		name="bc2"
72		;;
73	*"BR-6425")
74		name="br-6425"
75		;;
76	*"BR-6475nD")
77		name="br-6475nd"
78		;;
79	*"Broadway")
80		name="broadway"
81		;;
82	*"C20i")
83		name="c20i"
84		;;
85	*"C50")
86		name="c50"
87		;;
88	*"Carambola")
89		name="carambola"
90		;;
91	*"CF-WR800N")
92		name="cf-wr800n"
93		;;
94	*"CS-QR10")
95		name="cs-qr10"
96		;;
97	*"CY-SWR1100")
98		name="cy-swr1100"
99		;;
100	*"D105")
101		name="d105"
102		;;
103	*"DAP-1350")
104		name="dap-1350"
105		;;
106	*"DB-WRT01")
107		name="db-wrt01"
108		;;
109	*"DCS-930")
110		name="dcs-930"
111		;;
112	*"DCS-930L B1")
113		name="dcs-930l-b1"
114		;;
115	*"DIR-300 B1")
116		name="dir-300-b1"
117		;;
118	*"DIR-300 B7")
119		name="dir-300-b7"
120		;;
121	*"DIR-320 B1")
122		name="dir-320-b1"
123		;;
124	*"DIR-600 B1")
125		name="dir-600-b1"
126		;;
127	*"DIR-600 B2")
128		name="dir-600-b2"
129		;;
130	*"DIR-610 A1")
131		name="dir-610-a1"
132		;;
133	*"DIR-615 D")
134		name="dir-615-d"
135		;;
136	*"DIR-615 H1")
137		name="dir-615-h1"
138		;;
139	*"DIR-620 A1")
140		name="dir-620-a1"
141		;;
142	*"DIR-620 D1")
143		name="dir-620-d1"
144		;;
145	*"DIR-645")
146		name="dir-645"
147		;;
148	*"DIR-810L")
149		name="dir-810l"
150		;;
151	*"DIR-860L B1")
152		name="dir-860l-b1"
153		;;
154	*"Dovado Tiny AC")
155		name="tiny-ac"
156		;;
157	*"DuZun DM06")
158		name="duzun-dm06"
159		;;
160	*"E1700")
161		name="e1700"
162		;;
163	*"ESR-9753")
164		name="esr-9753"
165		;;
166	*"EX2700")
167		name="ex2700";
168		;;
169	*"F5D8235 v1")
170		name="f5d8235-v1"
171		;;
172	*"F5D8235 v2")
173		name="f5d8235-v2"
174		;;
175	*"F7C027")
176		name="f7c027"
177		;;
178	*"FireWRT")
179		name="firewrt"
180		;;
181	*"Fonera 2.0N")
182		name="fonera20n"
183		;;
184	*"FreeStation5")
185		name="freestation5"
186		;;
187	*"GL-MT300A")
188		name="gl-mt300a"
189		;;
190	*"GL-MT300N")
191		name="gl-mt300n"
192		;;
193	*"GL-MT750")
194		name="gl-mt750"
195		;;
196	*"HC5661")
197		name="hc5661"
198		;;
199	*"HC5761")
200		name="hc5761"
201		;;
202	*"HC5861")
203		name="hc5861"
204		;;
205	*"HG255D")
206		name="hg255d"
207		;;
208	*"HLK-RM04")
209		name="hlk-rm04"
210		;;
211	*"HPM")
212		name="hpm"
213		;;
214	*"HT-TM02")
215		name="ht-tm02"
216		;;
217	*"HW550-3G")
218		name="hw550-3g"
219		;;
220	*"IP2202")
221		name="ip2202"
222		;;
223	*"JHR-N805R")
224		name="jhr-n805r"
225		;;
226	*"JHR-N825R")
227		name="jhr-n825r"
228		;;
229	*"JHR-N926R")
230		name="jhr-n926r"
231		;;
232	*"M3")
233		name="m3"
234		;;
235	*"M4")
236		name="m4"
237		;;
238	*"MediaTek LinkIt Smart 7688")
239		linkit="$(dd bs=1 skip=1024 count=12 if=/dev/mtd2 2> /dev/null)"
240		if [ "${linkit}" = "LINKITS7688D" ]; then
241			name="linkits7688d"
242			RAMIPS_MODEL="${machine} DUO"
243		else
244			name="linkits7688"
245		fi
246		;;
247	*"Memory 2 Move")
248		name="m2m"
249		;;
250	*"MicroWRT")
251		name="microwrt"
252		;;
253	*"MiniEMBPlug")
254		name="miniembplug"
255		;;
256	*"MiniEMBWiFi")
257		name="miniembwifi"
258		;;
259	*"MiWiFi Mini")
260		name="miwifi-mini"
261		;;
262	*"MiWiFi Nano")
263		name="miwifi-nano"
264		;;
265	*"MLW221")
266		name="mlw221"
267		;;
268	*"MLWG2")
269		name="mlwg2"
270		;;
271	*"MOFI3500-3GN")
272		name="mofi3500-3gn"
273		;;
274	*"MPR-A1")
275		name="mpr-a1"
276		;;
277	*"MPR-A2")
278		name="mpr-a2"
279		;;
280	*"MR-102N")
281		name="mr-102n"
282		;;
283	*"MT7620a + MT7530 evaluation"*)
284		name="mt7620a_mt7530"
285		;;
286	*"MT7620a V22SG"*)
287		name="mt7620a_v22sg"
288		;;
289	*"MT7621 evaluation"*)
290		name="mt7621"
291		;;
292	*"MT7628AN evaluation"*)
293		name="mt7628"
294		;;
295	*"MT7688 evaluation"*)
296		name="mt7688"
297		;;
298	*"MZK-750DHP")
299		name="mzk-750dhp"
300		;;
301	*"MZK-DP150N")
302		name="mzk-dp150n"
303		;;
304	*"MZK-EX300NP")
305		name="mzk-ex300np"
306		;;
307	*"MZK-EX750NP")
308		name="mzk-ex750np"
309		;;
310	*"MZK-W300NH2"*)
311		name="mzk-w300nh2"
312		;;
313	*"MZK-WDPR"*)
314		name="mzk-wdpr"
315		;;
316	*"NA930")
317		name="na930"
318		;;
319	*"NBG-419N")
320		name="nbg-419n"
321		;;
322	*"NCS601W")
323		name="ncs601w"
324		;;
325	*"NW718")
326		name="nw718"
327		;;
328	*"OY-0001")
329		name="oy-0001"
330		;;
331	*"PBR-M1")
332		name="pbr-m1"
333		;;
334	*"PSG1208")
335		name="psg1208"
336		;;
337	*"PSG1218")
338		name="psg1218"
339		;;
340	*"PSR-680W"*)
341		name="psr-680w"
342		;;
343	*"PWH2004")
344		name="pwh2004"
345		;;
346	*"PX-4885")
347		name="px-4885"
348		;;
349	*"Q7")
350		name="zte-q7"
351		;;
352	*"RE6500")
353		name="re6500"
354		;;
355	*"RN502J")
356		name="xdxrn502j"
357		;;
358	*"RP-N53")
359		name="rp-n53"
360		;;
361	*"RT5350F-OLinuXino")
362		name="rt5350f-olinuxino"
363		;;
364	*"RT5350F-OLinuXino-EVB")
365		name="rt5350f-olinuxino-evb"
366		;;
367	*"RT-G32 B1")
368		name="rt-g32-b1"
369		;;
370	*"RT-N10+")
371		name="rt-n10-plus"
372		;;
373	*"RT-N13U")
374		name="rt-n13u"
375		;;
376	*"RT-N14U")
377		name="rt-n14u"
378		;;
379	*"RT-N15")
380		name="rt-n15"
381		;;
382	*"RT-N56U")
383		name="rt-n56u"
384		;;
385	*"RUT5XX")
386		name="rut5xx"
387		;;
388	*"SamKnows Whitebox 8")
389		name="sk-wb8"
390		;;
391	*"SAP-G3200U3")
392		name="sap-g3200u3"
393		;;
394	*"SL-R7205"*)
395		name="sl-r7205"
396		;;
397	*"TEW-691GR")
398		name="tew-691gr"
399		;;
400	*"TEW-692GR")
401		name="tew-692gr"
402		;;
403	*"UBNT-ERX")
404		name="ubnt-erx"
405		;;
406	*"UR-326N4G")
407		name="ur-326n4g"
408		;;
409	*"UR-336UN")
410		name="ur-336un"
411		;;
412	*"V11ST-FE")
413		name="v11st-fe"
414		;;
415	*"V22RW-2X2")
416		name="v22rw-2x2"
417		;;
418	*"VoCore")
419		name="vocore"
420		;;
421	*"W150M")
422		name="w150m"
423		;;
424	*"W306R V2.0")
425		name="w306r-v20"
426		;;
427	*"W502U")
428		name="w502u"
429		;;
430	*"WCR-150GN")
431		name="wcr-150gn"
432		;;
433	*"WF-2881")
434		name="wf-2881"
435		;;
436	*"WHR-1166D")
437		name="whr-1166d"
438		;;
439	*"WHR-300HP2")
440		name="whr-300hp2"
441		;;
442	*"WHR-600D")
443		name="whr-600d"
444		;;
445	*"WHR-G300N")
446		name="whr-g300n"
447		;;
448	*"Widora-NEO")
449		name="widora-neo"
450		;;
451	*"WiTi")
452                name="witi"
453		;;
454	*"WIZARD 8800")
455		name="wizard8800"
456		;;
457	*"WizFi630A")
458		name="wizfi630a"
459		;;
460	*"WL-330N")
461		name="wl-330n"
462		;;
463	*"WL-330N3G")
464		name="wl-330n3g"
465		;;
466	*"WL-341 v3")
467		name="wl-341v3"
468		;;
469	*"WL-351 v1 002")
470		name="wl-351"
471		;;
472	*"WLI-TX4-AG300N")
473		name="wli-tx4-ag300n"
474		;;
475	*"WMR-300")
476		name="wmr-300"
477		;;
478	*"WNCE2001")
479		name="wnce2001"
480		;;
481	*"WNDR3700v5")
482		name="wndr3700v5"
483		;;
484	*"WR512-3GN-like"*)
485		name="wr512-3gn"
486		;;
487	*"WR6202")
488		name="wr6202"
489		;;
490	*"WRH-300CR")
491		name="wrh-300cr"
492		;;
493	*"WRTNODE")
494		name="wrtnode"
495		;;
496	*"WRTnode2R")
497		name="wrtnode2r"
498		;;
499	*"WRTnode2P")
500		name="wrtnode2p"
501		;;
502	*"WSR-1166DHP")
503		name="wsr-1166"
504		;;
505	*"WSR-600DHP")
506		name="wsr-600"
507		;;
508	*"WT1520")
509		name="wt1520"
510		;;
511	*"WT3020")
512		name="wt3020"
513		;;
514	*"WZR-AGL300NH")
515		name="wzr-agl300nh"
516		;;
517	*"X5")
518		name="x5"
519		;;
520	*"X8")
521		name="x8"
522		;;
523	*"Y1")
524		name="y1"
525		;;
526	*"Y1S")
527		name="y1s"
528		;;
529	*"ZBT-APE522II")
530		name="zbt-ape522ii"
531		;;
532	*"ZBT-WA05")
533		name="zbt-wa05"
534		;;
535	*"ZBT-WE826")
536		name="zbt-we826"
537		;;
538	*"ZBT-WG2626")
539		name="zbt-wg2626"
540		;;
541	*"ZBT-WG3526")
542		name="zbt-wg3526"
543		;;
544	*"ZBT-WR8305RT")
545		name="zbt-wr8305rt"
546		;;
547	*"YK1")
548		name="youku-yk1"
549		;;
550	*)
551		name="generic"
552		;;
553	esac
554
555	[ -z "$RAMIPS_BOARD_NAME" ] && RAMIPS_BOARD_NAME="$name"
556	[ -z "$RAMIPS_MODEL" ] && RAMIPS_MODEL="$machine"
557
558	[ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
559
560	echo "$RAMIPS_BOARD_NAME" > /tmp/sysinfo/board_name
561	echo "$RAMIPS_MODEL" > /tmp/sysinfo/model
562}
563
564ramips_board_name() {
565	local name
566
567	[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
568	[ -z "$name" ] && name="unknown"
569
570	echo "$name"
571}
572