ramips: fix switch and MAC address for WHR-G300N
[oweals/openwrt.git] / target / linux / ramips / base-files / etc / board.d / 02_network
1 #!/bin/sh
2
3 . /lib/functions.sh
4 . /lib/functions/uci-defaults.sh
5 . /lib/functions/system.sh
6
7 ramips_setup_rt3x5x_vlans()
8 {
9         if [ ! -x /sbin/swconfig ]; then
10                 # legacy default
11                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
12                 return
13         fi
14         local wanports=""
15         local lanports=""
16         for port in 5 4 3 2 1 0; do
17                 if [ `swconfig dev rt305x port $port get disable` = "1" ]; then
18                         continue
19                 fi
20                 if [ `swconfig dev rt305x port $port get lan` = "0" ]; then
21                         wanports="$port:wan $wanports"
22                 else
23                         lanports="$port:lan $lanports"
24                 fi
25         done
26         ucidef_add_switch "rt305x" $lanports $wanports "6t@eth0"
27 }
28
29 ramips_setup_interfaces()
30 {
31         local board="$1"
32
33         case $board in
34         11acnas|\
35         w2914nsv2|\
36         zbt-we2026)
37                 ucidef_add_switch "switch0" \
38                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
39                 ;;
40         3g150b|\
41         3g300m|\
42         a5-v11|\
43         all0256n-4M|\
44         all0256n-8M|\
45         all5002|\
46         all5003|\
47         broadway|\
48         dcs-930|\
49         dcs-930l-b1|\
50         ht-tm02|\
51         linkits7688 | \
52         m2m|\
53         microwrt|\
54         mpr-a2|\
55         ncs601w|\
56         omega2 | \
57         omega2p | \
58         timecloud|\
59         w150m|\
60         widora,neo-16m|\
61         widora,neo-32m|\
62         wnce2001|\
63         zbt-cpe102|\
64         zte-q7)
65                 ucidef_add_switch "switch0"
66                 ucidef_add_switch_attr "switch0" "enable" "false"
67                 ucidef_set_interface_lan "eth0"
68                 ;;
69         mlw221|\
70         mr-102n)
71                 ucidef_set_interface_lan "eth0.2"
72                 ;;
73         3g-6200n|\
74         ai-br100|\
75         alfa-network,ac1200rm|\
76         mediatek,ap-mt7621a-v60|\
77         d240|\
78         db-wrt01|\
79         dir-300-b7|\
80         dir-320-b1|\
81         dir-610-a1|\
82         dir-615-h1|\
83         dlink,dwr-116-a1|\
84         ew1200|\
85         firewrt|\
86         hc5661a|\
87         hc5962|\
88         hlk-rm04|\
89         k2p|\
90         kn|\
91         kn_rc|\
92         mac1200rv2|\
93         miwifi-mini|\
94         miwifi-nano|\
95         mt7621|\
96         mt7628|\
97         mzk-750dhp|\
98         mzk-w300nh2|\
99         d-team,newifi-d2|\
100         nixcore-x1-8M|\
101         nixcore-x1-16M|\
102         oy-0001|\
103         pbr-m1|\
104         psg1208|\
105         psg1218a|\
106         r6220|\
107         rt-n12p|\
108         sap-g3200u3|\
109         sk-wb8|\
110         u7621-06-256M-16M|\
111         vr500|\
112         wf-2881|\
113         whr-g300n|\
114         witi|\
115         wl-wn575a3|\
116         wndr3700v5|\
117         youku-yk1|\
118         zbt-ape522ii|\
119         zbt-we1326|\
120         zbtlink,zbt-we3526|\
121         zbt-we826-16M|\
122         zbt-we826-32M|\
123         zbt-wg2626|\
124         zbt-wg3526-16M|\
125         zbt-wg3526-32M|\
126         zbt-wr8305rt)
127                 ucidef_add_switch "switch0" \
128                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
129                 ;;
130         alfa-network,awusfree1|\
131         cs-qr10|\
132         d105|\
133         dlink,dap-1522-a1|\
134         dch-m225|\
135         ex2700|\
136         ex3700|\
137         hpm|\
138         mzk-ex300np|\
139         mzk-ex750np|\
140         na930|\
141         pbr-d1|\
142         tama,w06|\
143         u25awf-h1|\
144         wli-tx4-ag300n|\
145         wmdr-143n|\
146         wmr-300|\
147         wn3000rpv3|\
148         wrh-300cr)
149                 ucidef_set_interface_lan "eth0"
150                 ;;
151         mir3g)
152                 ucidef_add_switch "switch0" \
153                         "2:lan:2" "3:lan:1" "1:wan" "6t@eth0"
154                 ;;
155         psg1218b)
156                 ucidef_add_switch "switch0" \
157                         "0:lan:3" "1:lan:2" "2:lan:1" "3:wan" "6@eth0"
158                 ;;
159         whr-300hp2|\
160         whr-600d|\
161         wsr-1166|\
162         wsr-600)
163                 ucidef_add_switch "switch0" \
164                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
165                 ;;
166         ar670w|\
167         ar725w|\
168         rt-ac51u)
169                 ucidef_add_switch "switch0" \
170                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
171                 ;;
172         rt-n15|\
173         wl-351)
174                 ucidef_add_switch "switch0" \
175                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
176                 ;;
177         asl26555-8M|\
178         asl26555-16M|\
179         rp-n53)
180                 ucidef_add_switch "switch0" \
181                         "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
182                 ;;
183         atp-52b|\
184         awm002-evb-4M|\
185         awm002-evb-8M|\
186         c20i|\
187         dir-645|\
188         f5d8235-v2|\
189         gl-mt300a|\
190         gl-mt300n|\
191         gl-mt750|\
192         hg255d|\
193         jhr-n805r|\
194         jhr-n825r|\
195         jhr-n926r|\
196         mzk-wdpr|\
197         rb750gr3|\
198         rt-n14u|\
199         tplink,c20-v4|\
200         tplink,c50-v3|\
201         tplink,tl-mr3420-v5|\
202         tl-wr840n-v4|\
203         tl-wr840n-v5|\
204         tl-wr841n-v13|\
205         u7628-01-128M-16M|\
206         ubnt-erx|\
207         ubnt-erx-sfp|\
208         ur-326n4g|\
209         wrtnode|\
210         wrtnode2p | \
211         wrtnode2r | \
212         zbt-wa05)
213                 ucidef_add_switch "switch0" \
214                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
215                 ;;
216         c50|\
217         tplink,c20-v1)
218                 ucidef_add_switch "switch0" \
219                         "1:lan:3" "2:lan:4" "3:lan:1" "4:lan:2" "0:wan" "6@eth0"
220                 ;;
221         dir-860l-b1)
222                 ucidef_add_switch "switch0" \
223                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
224                 ;;
225         gb-pc1|\
226         gnubee,gb-pc2)
227                 ucidef_add_switch "switch0" \
228                         "0:lan" "4:lan" "6@eth0"
229                 ;;
230         gl-mt300n-v2)
231                 ucidef_add_switch "switch0" \
232                         "1:lan" "0:wan" "6@eth0"
233                 ;;
234         awapn2403)
235                 ucidef_add_switch "switch0" \
236                         "0:lan" "1:wan" "6@eth0"
237                 ;;
238         b2c|\
239         nw718|\
240         psr-680w|\
241         sl-r7205|\
242         ur-336un|\
243         w502u|\
244         wr6202)
245                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
246                 ;;
247         br-6475nd)
248                 ucidef_add_switch "switch0" \
249                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
250                 ;;
251         c108|\
252         cf-wr800n)
253                 ucidef_add_switch "switch0" \
254                         "4:lan" "6t@eth0"
255                 ;;
256         cy-swr1100)
257                 ucidef_add_switch "switch0" \
258                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
259                 ;;
260         duzun-dm06)
261                 ucidef_add_switch "switch0" \
262                         "1:lan" "0:wan" "6@eth0"
263                 ;;
264         e1700|\
265         mt7620a_mt7530)
266                 ucidef_add_switch "switch1" \
267                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
268                 ;;
269         hc5*61|\
270         y1s)
271                 ucidef_add_switch "switch0" \
272                         "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
273                 ;;
274         kn_rf)
275                 ucidef_add_switch "switch0" \
276                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6@eth0"
277                 ;;
278         kng_rc)
279                 ucidef_add_switch "switch1" \
280                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
281                 ;;
282         mlwg2|\
283         wizard8800|\
284         wl-330n)
285                 ucidef_set_interface_lan "eth0.1"
286                 ;;
287         mr200)
288                 ucidef_add_switch "switch0" \
289                         "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0"
290                 ucidef_set_interface_wan "usb0"
291                 ;;
292         mzk-dp150n|\
293         vocore-8M|\
294         vocore-16M)
295                 ucidef_add_switch "switch0" \
296                         "0:lan" "4:lan" "6t@eth0"
297                 ;;
298         newifi-d1)
299                 ucidef_add_switch "switch0" \
300                 "1:lan:2" "2:lan:1" "4:wan" "6@eth0"
301                 ;;
302         re350-v1)
303                 ucidef_add_switch "switch0" \
304                         "0:lan" "6@eth0"
305                 ;;
306         re6500)
307                 ucidef_add_switch "switch0" \
308                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "6@eth0"
309                 ;;
310         rt-n56u)
311                 ucidef_add_switch "switch0" \
312                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0"
313                 ;;
314         tew-638apb-v2)
315                 ucidef_add_switch "switch0" \
316                         "4:lan" "6@eth0"
317                 ;;
318         tew-691gr|\
319         tew-692gr|\
320         wlr-6000)
321                 ucidef_add_switch "switch0" \
322                         "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
323                 ;;
324         tplink,tl-wr902ac-v3)
325                 ucidef_add_switch "switch0" \
326                         "4:lan" "6@eth0"
327                 ;;
328         vonets,var11n-300|\
329         wt1520-4M|\
330         wt1520-8M)
331                 ucidef_add_switch "switch0" \
332                         "0:lan" "4:wan" "6@eth0"
333                 ;;
334         vocore2|\
335         vocore2lite)
336                 ucidef_add_switch "switch0" \
337                         "0:lan" "2:lan" "6t@eth0"
338                 ;;
339         f5d8235-v1|\
340         tew-714tru|\
341         v11st-fe|\
342         wzr-agl300nh)
343                 ucidef_add_switch "switch0" \
344                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
345                 ;;
346         wcr-1166ds)
347                 ucidef_add_switch "switch0" \
348                         "3:lan" "4:wan" "6@eth0"
349                 ;;
350         wcr-150gn|\
351         we1026-5g-16m)
352                 ucidef_add_switch "switch0" \
353                         "0:lan" "6t@eth0"
354                 ;;
355         whr-1166d)
356                 ucidef_add_switch "switch0" \
357                         "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
358                 ;;
359         wizfi630a)
360                 ucidef_add_switch "switch0" \
361                         "1:lan" "2:lan" "0:wan" "6@eth0"
362                 ;;
363         wt3020-4M|\
364         wt3020-8M)
365                 ucidef_add_switch "switch0" \
366                         "4:lan" "0:wan" "6@eth0"
367                 ;;
368         zbtlink,zbt-we1226|\
369         y1)
370                 ucidef_add_switch "switch0" \
371                         "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
372                 ;;
373         *)
374                 RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"`
375                 if [ -n "${RT3X5X}" ]; then
376                         ramips_setup_rt3x5x_vlans
377                 else
378                         ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
379                 fi
380                 ;;
381         esac
382 }
383
384 ramips_setup_macs()
385 {
386         local board="$1"
387         local lan_mac=""
388         local wan_mac=""
389
390         case $board in
391         a5-v11|\
392         ht-tm02|\
393         wmdr-143n)
394                 lan_mac=$(cat /sys/class/net/eth0/address)
395                 ;;
396         all0239-3g|\
397         carambola|\
398         freestation5|\
399         w502u|\
400         wnce2001)
401                 wan_mac=$(mtd_get_mac_binary factory 46)
402                 ;;
403         bc2|\
404         broadway|\
405         d105|\
406         dir-300-b7|\
407         dir-320-b1|\
408         dir-620-a1|\
409         esr-9753|\
410         freestation5|\
411         hlk-rm04|\
412         mpr-a1|\
413         psr-680w|\
414         sl-r7205|\
415         y1|\
416         y1s)
417                 lan_mac=$(cat /sys/class/net/eth0/address)
418                 lan_mac=$(macaddr_setbit_la "$lan_mac")
419                 wan_mac=$(macaddr_add "$lan_mac" 1)
420                 ;;
421         br-6475nd)
422                 lan_mac=$(cat /sys/class/net/eth0/address)
423                 wan_mac=$(mtd_get_mac_binary devdata 7)
424                 ;;
425         cy-swr1100|\
426         dch-m225)
427                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
428                 ;;
429         dir-645)
430                 lan_mac=$(mtd_get_mac_ascii nvram lanmac)
431                 wan_mac=$(mtd_get_mac_ascii nvram wanmac)
432                 ;;
433         dir-860l-b1)
434                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
435                 wan_mac=$(mtd_get_mac_ascii factory wanmac)
436                 ;;
437         dlink,dwr-116-a1)
438                 wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
439                 lan_mac=$(macaddr_add "$wan_mac" 1)
440                 ;;
441         e1700)
442                 wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
443                 ;;
444         gl-mt300n-v2|\
445         whr-g300n)
446                 wan_mac=$(mtd_get_mac_binary factory 4)
447                 ;;
448         hc5*61|\
449         hc5661a|\
450         hc5962)
451                 lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "`
452                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
453                 wan_mac=$(macaddr_add "$lan_mac" 1)
454                 ;;
455         kn_rc|\
456         kn_rf|\
457         kng_rc)
458                 wan_mac=$(mtd_get_mac_binary factory 40)
459                 ;;
460         linkits7688)
461                 wan_mac=$(mtd_get_mac_binary factory 4)
462                 lan_mac=$(mtd_get_mac_binary factory 46)
463                 ;;
464         mac1200rv2)
465                 lan_mac=$(mtd_get_mac_binary factory_info 13)
466                 wan_mac=$(macaddr_add "$lan_mac" 1)
467                 ;;
468         mir3g)
469                 lan_mac=$(mtd_get_mac_binary Factory 0xe006)
470                 ;;
471         miwifi-mini)
472                 wan_mac=$(cat /sys/class/net/eth0/address)
473                 lan_mac=$(macaddr_setbit_la "$wan_mac")
474                 ;;
475         m3|\
476         m4-4M|\
477         m4-8M|\
478         x5|\
479         x8)
480                 lan_mac=$(cat /sys/class/net/eth0/address)
481                 lan_mac=$(macaddr_add "$lan_mac" -2)
482                 ;;
483         newifi-d1)
484                 lan_mac=$(cat /sys/class/net/eth0/address)
485                 lan_mac=$(macaddr_add "$lan_mac" 2)
486                 ;;
487         omega2|\
488         omega2p)
489                 wan_mac=$(mtd_get_mac_binary factory 4)
490                 lan_mac=$(mtd_get_mac_binary factory 46)
491                 ;;
492         oy-0001)
493                 lan_mac=$(mtd_get_mac_binary factory 40)
494                 wan_mac=$(mtd_get_mac_binary factory 46)
495                 ;;
496         r6220)
497                 wan_mac=$(mtd_get_mac_binary factory 4)
498                 lan_mac=$(macaddr_add "$wan_mac" 1)
499                 ;;
500         rt-n56u)
501                 lan_mac=$(cat /sys/class/net/eth0/address)
502                 lan_mac=$(macaddr_setbit_la "$lan_mac")
503                 wan_mac=$(mtd_get_mac_binary factory 32772)
504                 ;;
505         sk-wb8)
506                 wan_mac=$(mtd_get_mac_binary factory 57350)
507                 ;;
508         tew-691gr)
509                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 3)
510                 ;;
511         tew-692gr)
512                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 1)
513                 ;;
514         tiny-ac)
515                 lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
516                 wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
517                 ;;
518         vr500)
519                 lan_mac=$(mtd_get_mac_binary factory 57344)
520                 wan_mac=$(mtd_get_mac_binary factory 57350)
521                 ;;
522         w306r-v20)
523                 lan_mac=$(cat /sys/class/net/eth0/address)
524                 wan_mac=$(macaddr_add "$lan_mac" 5)
525                 ;;
526         wcr-1166ds|\
527         wsr-1166)
528                 local index="$(find_mtd_index "board_data")"
529                 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
530                 lan_mac=$wan_mac
531                 ;;
532         wcr-150gn)
533                 wan_mac=$(mtd_get_mac_binary factory 40)
534                 ;;
535         whr-1166d|\
536         whr-300hp2|\
537         whr-600d|\
538         wsr-600)
539                 wan_mac=$(mtd_get_mac_binary factory 4)
540                 lan_mac=$wan_mac
541                 ;;
542         wizfi630a)
543                 lan_mac=$(mtd_get_mac_binary factory 4)
544                 wan_mac=$(mtd_get_mac_binary factory 40)
545                 ;;
546         wlr-6000)
547                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 32772)" 2)
548                 ;;
549         *)
550                 lan_mac=$(cat /sys/class/net/eth0/address)
551                 wan_mac=$(macaddr_add "$lan_mac" 1)
552                 ;;
553         esac
554
555         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
556         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
557 }
558
559 board_config_update
560 board=$(board_name)
561 ramips_setup_interfaces $board
562 ramips_setup_macs $board
563 board_config_flush
564
565 exit 0