brcm63xx: set status leds from within diag.sh
[openwrt/svn-archive/archive.git] / target / linux / brcm63xx / base-files / lib / brcm63xx.sh
1 #!/bin/sh
2 #
3 # Copyright (C) 2007 OpenWrt.org
4 #
5 #
6
7 board_id=""
8 sys_mtd_part=""
9 brcm63xx_has_reset_button=""
10 ifname=""
11
12 brcm63xx_dt_detect() {
13 local board_name
14
15 case "$1" in
16 "ADB P.DG A4001N")
17 board_name="a4001n"
18 ;;
19 "ADB P.DG A4001N1")
20 board_name="a4001n1"
21 ;;
22 "Alcatel RG100A")
23 board_name="rg100a"
24 ;;
25 "ASMAX AR 1004g")
26 board_name="ar100g"
27 ;;
28 "Belkin F5D7633")
29 board_name="f5d7633"
30 ;;
31 "Broadcom 96348R reference board")
32 board_name="bcm96348r"
33 ;;
34 "Broadcom bcm963281TAN reference board")
35 board_name="bcm963281tan"
36 ;;
37 "Broadcom BCM96328avng reference board")
38 board_name="bcm6328avng"
39 ;;
40 "Broadcom BCM96345GW2 reference board")
41 board_name="bcm96345gw2"
42 ;;
43 "Broadcom BCM96348GW-10 reference board")
44 board_name="bcm96348gw-10"
45 ;;
46 "Broadcom BCM96348GW-11 reference board")
47 board_name="bcm96348gw-11"
48 ;;
49 "Broadcom BCM96348GW reference board")
50 board_name="bcm96358gw"
51 ;;
52 "Broadcom BCM96358VW reference board")
53 board_name="bcm96358vw"
54 ;;
55 "Broadcom BCM96358VW2 reference board")
56 board_name="bcm96358vw2"
57 ;;
58 "Broadcom BCM96368MVNgr reference board")
59 board_name="bcm96368mvngr"
60 ;;
61 "Broadcom BCM96368MVWG reference board")
62 board_name="bcm96368mvwg"
63 ;;
64 "BT Voyager V2500V")
65 board_name="v2500v"
66 ;;
67 "Comtrend AR-5381u")
68 board_name="ar-5381u"
69 ;;
70 "Comtrend AR-5387un")
71 board_name="ar-5387un"
72 ;;
73 "Comtrend CT-5365")
74 board_name="ct-5365"
75 ;;
76 "Comtrend CT-536+/CT-5621T")
77 board_name="ct-536p_5621t"
78 ;;
79 "Comtrend CT-6373")
80 board_name="ct-6373"
81 ;;
82 "Comtrend VR-3025u")
83 board_name="vr-3025u"
84 ;;
85 "Comtrend VR-3025un")
86 board_name="vr-3025un"
87 ;;
88 "Comtrend WAP-5813n")
89 board_name="wap-5813n"
90 ;;
91 "Davolink DV-201AMR")
92 board_name="dv-201amr"
93 ;;
94 "D-Link DSL-2640B rev B2")
95 board_name="dsl-2640b-b"
96 ;;
97 "D-Link DSL-2650U")
98 board_name="dsl-2650u"
99 ;;
100 "D-Link DSL-2740B/DSL-2741B rev C2/3")
101 board_name="dsl-274xb-c"
102 ;;
103 "D-Link DSL-2740B/DSL-2741B rev F1")
104 board_name="dsl-274xb-f"
105 ;;
106 "D-Link DVA-G3810BN/TL")
107 board_name="dva-g3810bn"
108 ;;
109 "Dynalink RTA1025W")
110 board_name="rta1025w"
111 ;;
112 "Dynalink RTA1320")
113 board_name="rta1320"
114 ;;
115 "Huawei EchoLife HG520v")
116 board_name="hg520v"
117 ;;
118 "Huawei EchoLife HG553")
119 board_name="hg553"
120 ;;
121 "Huawei EchoLife HG556a (version A)")
122 board_name="hg556a_a"
123 ;;
124 "Huawei EchoLife HG556a (version B)")
125 board_name="hg556a_b"
126 ;;
127 "Huawei EchoLife HG556a (version C)")
128 board_name="hg556a_c"
129 ;;
130 "Inventel Livebox 1")
131 board_name="livebox1"
132 ;;
133 "Netgear CVG834G")
134 board_name="cvg834g"
135 ;;
136 "Netgear DG834GT/PN")
137 board_name="dg834gt"
138 ;;
139 "Netgear DGND3700v1/DGND3800B")
140 board_name="dgnd3700v1_dgnd3800b"
141 ;;
142 "Pirelli A226G")
143 board_name="a226g"
144 ;;
145 "Pirelli A226M")
146 board_name="a226m"
147 ;;
148 "Pirelli A226M-FWB")
149 board_name="a226m-fwb"
150 ;;
151 "Pirelli Alice Gate AGPF-S0")
152 board_name="agpf-s0"
153 ;;
154 "Sagem F@ST2404")
155 board_name="fast2404"
156 ;;
157 "Sagem F@ST2504n")
158 board_name="fast2504n"
159 ;;
160 "Sagem F@ST2604")
161 board_name="fast2604"
162 ;;
163 "Sagem F@ST2704V2")
164 board_name="fast2704v2"
165 ;;
166 "SFR Neuf Box 4"*)
167 board_name="neufbox4"
168 ;;
169 "SFR neufbox 6 (Sercomm)")
170 board_name="neufbox6"
171 ;;
172 "T-Com Speedport W303 V")
173 board_name="spw303v"
174 ;;
175 "T-Com Speedport W500 V")
176 board_name="spw500v"
177 ;;
178 "TECOM GW6000")
179 board_name="g6000"
180 ;;
181 "TECOM GW6200")
182 board_name="g6200"
183 ;;
184 "Telsey CPVA642-type (CPA-ZNTE60T)")
185 board_name="cpva642"
186 ;;
187 "TP-Link TD-W8900GB")
188 board_name="td-w8900gb"
189 ;;
190 "USRobotics 9108")
191 board_name="usr9108"
192 ;;
193 "Zyxel P870HW-51a v2")
194 board_name="p870hw-51a_v2"
195 ;;
196 *)
197 board_name="unknown"
198 ;;
199 esac
200
201 echo "$board_name"
202 }
203
204 brcm63xx_legacy_detect() {
205 local board_name
206
207 case "$1" in
208 963268BU_P300)
209 board_name="bcm963268bu_p300"
210 ;;
211 96338W2_E7T)
212 board_name="dsl-2640u"
213 ;;
214 96348W3)
215 board_name="dg834g_v4"
216 ;;
217 CPVA502+)
218 board_name="cpva502p"
219 ;;
220 MAGIC)
221 board_name="magic"
222 ;;
223 RTA770BW)
224 board_name="rta770bw"
225 ;;
226 RTA770W)
227 board_name="rta770w"
228 ;;
229 V2110)
230 board_name="v2110"
231 ;;
232 V2500V_BB)
233 board_name="v2500v_bb"
234 ;;
235 VW6339GU)
236 board_namge="vg50"
237 ;;
238 *)
239 board_name="unknown"
240 ;;
241 esac
242
243 echo "$board_name"
244 }
245
246 brcm63xx_detect() {
247 local board_name model
248
249 board_id=$(awk 'BEGIN{FS="[ \t:/]+"} /system type/ {print $4}' /proc/cpuinfo)
250
251 if [ -e /proc/device-tree ]; then
252 model=$(cat /proc/device-tree/model)
253 board_name=$(brcm63xx_dt_detect "$model")
254 else
255 model="Unknown bcm63xx board"
256 board_name=$(brcm63xx_legacy_detect "$board_id")
257 fi
258
259 case "$board_name" in
260 bcm963281tan)
261 ifname=eth0
262 ;;
263 a4001n1)
264 brcm63xx_has_reset_button="true"
265 ifname=eth0
266 ;;
267 bcm96328avng)
268 ifname=eth0
269 ;;
270 a4001n)
271 brcm63xx_has_reset_button="true"
272 ifname="eth0"
273 ;;
274 ar-5381u)
275 brcm63xx_has_reset_button="true"
276 ifname=eth0
277 ;;
278 ar-5387un)
279 brcm63xx_has_reset_button="true"
280 ifname=eth0
281 ;;
282 bcm96348gw)
283 brcm63xx_has_reset_button="true"
284 ifname=eth1
285 ;;
286 bcm96348gw-11)
287 brcm63xx_has_reset_button="true"
288 ifname=eth1
289 ;;
290 spw303v)
291 brcm63xx_has_reset_button="true"
292 ifname=eth0
293 ;;
294 vr-3025un)
295 brcm63xx_has_reset_button="true"
296 ifname="eth0"
297 ;;
298 vr-3025u)
299 brcm63xx_has_reset_button="true"
300 ifname="eth0"
301 ;;
302 wap-5813n)
303 brcm63xx_has_reset_button="true"
304 ifname="eth0"
305 ;;
306 ar1004g)
307 brcm63xx_has_reset_button="true"
308 ;;
309 dsl-274xb-c)
310 brcm63xx_has_reset_button="true"
311 ifname=eth0
312 ;;
313 dsl-275xb-d)
314 brcm63xx_has_reset_button="true"
315 ifname=eth0
316 ;;
317 cpva642)
318 brcm63xx_has_reset_button="true"
319 ifname=eth0
320 ;;
321 ct536_ct5621)
322 brcm63xx_has_reset_button="true"
323 ifname=eth0
324 ;;
325 cvg834g)
326 ifname=eth0
327 ;;
328 dsl-2640b-b)
329 brcm63xx_has_reset_button="true"
330 ifname=eth0
331 ;;
332 dgnd3700v1_dgnd3800b)
333 brcm63xx_has_reset_button="true"
334 ifname="eth0"
335 ;;
336 fast2504n)
337 brcm63xx_has_reset_button="true"
338 ifname=eth0
339 ;;
340 fast2704v2)
341 brcm63xx_has_reset_button="true"
342 ifname=eth0
343 ;;
344 gw6000)
345 brcm63xx_has_reset_button="true"
346 ifname=eth1
347 ;;
348 gw6200)
349 brcm63xx_has_reset_button="true"
350 ifname=eth1
351 ;;
352 hg553)
353 brcm63xx_has_reset_button="true"
354 ifname=eth0
355 ;;
356 hg556a_*)
357 brcm63xx_has_reset_button="true"
358 ifname=eth0
359 ;;
360 hg520)
361 brcm63xx_has_reset_button="true"
362 ifname="eth0"
363 ;;
364 neufbox6)
365 brcm63xx_has_reset_button="true"
366 ifname=eth0
367 ;;
368 p870hw-51a_v2)
369 brcm63xx_has_reset_button="true"
370 ifname="eth0"
371 ;;
372 rta770bw)
373 brcm63xx_has_reset_button="true"
374 ifname=eth0
375 ;;
376 rta770w)
377 brcm63xx_has_reset_button="true"
378 ifname=eth0
379 ;;
380 spw500v)
381 brcm63xx_has_reset_button="true"
382 ifname=eth0
383 ;;
384 v2110)
385 brcm63xx_has_reset_button="true"
386 ifname=eth0
387 ;;
388 esac
389
390 [ -e "/tmp/sysinfo" ] || mkdir -p "/tmp/sysinfo"
391
392 echo "$board_name" > /tmp/sysinfo/board_name
393 echo "$model" > /tmp/sysinfo/model
394 }
395
396 brcm63xx_board_name() {
397 local name
398
399 [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
400 [ -n "$name" ] || name="unknown"
401
402 echo $name
403 }
404
405 brcm63xx_detect