ath79: add support for TP-Link CPE610 v2
[oweals/openwrt.git] / target / linux / ath79 / generic / base-files / etc / board.d / 02_network
1 #!/bin/sh
2
3 . /lib/functions/system.sh
4 . /lib/functions/uci-defaults.sh
5 . /lib/functions/k2t.sh
6
7 ath79_setup_interfaces()
8 {
9         local board="$1"
10
11         case "$board" in
12         adtran,bsap1800-v2|\
13         adtran,bsap1840|\
14         alfa-network,ap121f|\
15         aruba,ap-105|\
16         avm,fritz1750e|\
17         avm,fritz300e|\
18         comfast,cf-wr752ac-v1|\
19         comfast,cf-e130n-v2|\
20         devolo,dvl1200i|\
21         devolo,dvl1750c|\
22         devolo,dvl1750i|\
23         devolo,dvl1750x|\
24         dlink,dir-505|\
25         engenius,ecb1750|\
26         enterasys,ws-ap3705i|\
27         glinet,gl-ar300m-lite|\
28         netgear,ex6400|\
29         netgear,ex7300|\
30         ocedo,koala|\
31         ocedo,raccoon|\
32         pcs,cap324|\
33         pisen,ts-d084|\
34         pisen,wmb001n|\
35         pisen,wmm003n|\
36         siemens,ws-ap3610|\
37         tplink,cpe210-v2|\
38         tplink,cpe210-v3|\
39         tplink,cpe510-v2|\
40         tplink,cpe510-v3|\
41         tplink,cpe610-v1|\
42         tplink,cpe610-v2|\
43         tplink,re350k-v1|\
44         tplink,re355-v1|\
45         tplink,re450-v1|\
46         tplink,re450-v2|\
47         tplink,re450-v3|\
48         tplink,tl-wr902ac-v1|\
49         ubnt,bullet-m-ar7240|\
50         ubnt,bullet-m-ar7241|\
51         ubnt,bullet-m-xw|\
52         ubnt,lap-120|\
53         ubnt,litebeam-ac-gen2|\
54         ubnt,nanobeam-ac|\
55         ubnt,nanobridge-m|\
56         ubnt,nanostation-ac-loco|\
57         ubnt,nanostation-loco-m|\
58         ubnt,nanostation-loco-m-xw|\
59         ubnt,picostation-m|\
60         ubnt,powerbeam-5ac-500|\
61         ubnt,powerbeam-5ac-gen2|\
62         ubnt,rocket-m|\
63         ubnt,unifiac-lite|\
64         ubnt,unifiac-lr|\
65         ubnt,unifiac-mesh|\
66         ubnt,unifi|\
67         wd,mynet-wifi-rangeextender|\
68         winchannel,wb2000)
69                 ucidef_set_interface_lan "eth0"
70                 ;;
71         avm,fritz4020|\
72         pcs,cr3000|\
73         tplink,archer-c58-v1|\
74         tplink,archer-c59-v1|\
75         tplink,archer-c59-v2)
76                 ucidef_set_interface_wan "eth1"
77                 ucidef_add_switch "switch0" \
78                         "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
79                 ;;
80         buffalo,bhr-4grv|\
81         buffalo,wzr-hp-g450h)
82                 ucidef_add_switch "switch0" \
83                         "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
84                 ;;
85         buffalo,bhr-4grv2|\
86         trendnet,tew-823dru)
87                 ucidef_add_switch "switch0" \
88                         "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
89                 ;;
90         buffalo,wzr-hp-ag300h|\
91         tplink,archer-c25-v1|\
92         tplink,archer-c60-v1|\
93         tplink,archer-c60-v2|\
94         tplink,archer-c60-v3|\
95         tplink,tl-wdr3500-v1|\
96         tplink,tl-wr842n-v1|\
97         tplink,tl-wr842n-v3|\
98         ubnt,airrouter)
99                 ucidef_set_interface_wan "eth1"
100                 ucidef_add_switch "switch0" \
101                         "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
102                 ;;
103         buffalo,wzr-hp-g302h-a1a0)
104                 ucidef_add_switch "switch0" \
105                         "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
106                 ;;
107         comfast,cf-e110n-v2|\
108         comfast,cf-e120a-v3|\
109         comfast,cf-e314n-v2|\
110         tplink,cpe210-v1|\
111         tplink,cpe220-v2|\
112         tplink,cpe220-v3|\
113         tplink,cpe510-v1|\
114         tplink,wbs210-v1|\
115         tplink,wbs210-v2|\
116         tplink,wbs510-v1|\
117         tplink,wbs510-v2|\
118         ubnt,nanostation-m|\
119         ubnt,routerstation)
120                 ucidef_set_interfaces_lan_wan "eth1" "eth0"
121                 ;;
122         comfast,cf-e560ac)
123                 ucidef_set_interface_wan "eth1"
124                 ucidef_add_switch "switch0" \
125                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
126                 ;;
127         comfast,cf-wr650ac-v1|\
128         comfast,cf-wr650ac-v2)
129                 ucidef_add_switch "switch0" \
130                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
131                 ;;
132         devolo,dvl1200e|\
133         devolo,dvl1750e|\
134         ocedo,ursus)
135                 ucidef_set_interface_lan "eth0 eth1"
136                 ;;
137         devolo,magic-2-wifi)
138                 ucidef_add_switch "switch0" \
139                         "0@eth0" "2:wan" "3:lan" "4:lan"
140                 ;;
141         dlink,dap-2695-a1)
142                 ucidef_add_switch "switch0" "0@eth0" "2:lan" "3:wan" "6@eth1"
143                 ;;
144         dlink,dir-825-b1)
145                 ucidef_set_interface_wan "eth1"
146                 ucidef_add_switch "switch0" \
147                         "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
148                 ;;
149         dlink,dir-825-c1|\
150         dlink,dir-835-a1|\
151         dlink,dir-842-c1|\
152         dlink,dir-842-c2|\
153         dlink,dir-842-c3|\
154         dlink,dir-859-a1|\
155         engenius,epg5000|\
156         tplink,archer-c2-v3|\
157         tplink,tl-wr1043nd-v4|\
158         tplink,tl-wr1043n-v5)
159                 ucidef_add_switch "switch0" \
160                         "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
161                 ;;
162         elecom,wrc-1750ghbk2-i|\
163         elecom,wrc-300ghbk2-i|\
164         sitecom,wlr-8100)
165                 ucidef_add_switch "switch0" \
166                         "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
167                 ;;
168         embeddedwireless,dorin)
169                 ucidef_add_switch "switch0" \
170                         "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
171                 ;;
172         engenius,ews511ap)
173                 ucidef_set_interface_lan "eth0 eth1" "dhcp"
174                 ;;
175         etactica,eg200)
176                 ucidef_set_interface_lan "eth0" "dhcp"
177                 ;;
178         glinet,gl-ar750)
179                 ucidef_set_interface_wan "eth1"
180                 ucidef_add_switch "switch0" \
181                         "0@eth0" "1:lan" "2:lan"
182                 ;;
183         iodata,etg3-r|\
184         iodata,wn-ac1167dgr|\
185         iodata,wn-ac1600dgr|\
186         iodata,wn-ac1600dgr2|\
187         iodata,wn-ag300dgr|\
188         pcs,cr5000|\
189         sitecom,wlr-7100|\
190         wd,mynet-n750)
191                 ucidef_add_switch "switch0" \
192                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
193                 ;;
194         librerouter,librerouter-v1)
195                 ucidef_add_switch "switch0" \
196                         "0@eth0" "5:wan" "6@eth1" "4:lan"
197                 ;;
198         nec,wg1200cr|\
199         ubnt,nanostation-ac|\
200         yuncore,a782|\
201         yuncore,xd4200)
202                 ucidef_add_switch "switch0" \
203                         "0@eth0" "2:lan" "3:wan"
204                 ;;
205         nec,wg800hp)
206                 ucidef_add_switch "switch0" \
207                         "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
208                 ;;
209         netgear,wndr3700|\
210         netgear,wndr3700-v2|\
211         netgear,wndr3800|\
212         netgear,wndr3800ch|\
213         netgear,wndrmac-v1|\
214         netgear,wndrmac-v2)
215                 ucidef_set_interface_wan "eth1"
216                 ucidef_add_switch "switch0" \
217                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
218                 ucidef_add_switch_attr "switch0" "blinkrate" 2
219                 ucidef_add_switch_port_attr "switch0" 1 led 6
220                 ucidef_add_switch_port_attr "switch0" 2 led 9
221                 ucidef_add_switch_port_attr "switch0" 5 led 2
222                 ;;
223         netgear,wnr2200-8m|\
224         netgear,wnr2200-16m)
225                 ucidef_set_interface_wan "eth0"
226                 ucidef_add_switch "switch0" \
227                         "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
228                 ;;
229         phicomm,k2t)
230                 ucidef_add_switch "switch0" \
231                         "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
232                 ;;
233         qihoo,c301)
234                 ucidef_set_interface_wan "eth1"
235                 ucidef_add_switch "switch0" \
236                         "0@eth0" "2:lan" "3:lan"
237                 ;;
238         rosinson,wr818)
239                 ucidef_add_switch "switch0" \
240                         "0@eth0" "1:lan" "2:lan" "3:wan"
241                 ;;
242         teltonika,rut955|\
243         teltonika,rut955-h7v3c0)
244                 ucidef_set_interface_wan "eth1"
245                 ucidef_add_switch "switch0" \
246                         "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
247                 ;;
248         tplink,archer-a7-v5|\
249         tplink,archer-c6-v2|\
250         tplink,archer-c6-v2-us|\
251         tplink,archer-c7-v4|\
252         tplink,archer-c7-v5|\
253         tplink,tl-wdr3600-v1|\
254         tplink,tl-wdr4300-v1|\
255         tplink,tl-wdr4300-v1-il|\
256         tplink,tl-wdr4310-v1)
257                 ucidef_add_switch "switch0" \
258                         "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
259                 ;;
260         tplink,archer-c5-v1|\
261         tplink,archer-c7-v1|\
262         tplink,archer-c7-v2|\
263         tplink,tl-wdr4900-v2)
264                 ucidef_add_switch "switch0" \
265                         "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
266                 ;;
267         tplink,archer-d50-v1)
268                 ucidef_add_switch "switch0" \
269                         "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
270                 ;;
271         tplink,archer-d7-v1|\
272         tplink,archer-d7b-v1)
273                 ucidef_add_switch "switch0" \
274                         "0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
275                 ;;
276         tplink,tl-mr6400-v1)
277                 ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
278                 ucidef_add_switch "switch0" \
279                         "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
280                 ;;
281         tplink,tl-wr842n-v2)
282                 ucidef_set_interface_wan "eth1"
283                 ucidef_add_switch "switch0" \
284                         "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
285                 ;;
286         tplink,tl-wr1043nd-v1)
287                 ucidef_add_switch "switch0" \
288                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
289                 ;;
290         tplink,tl-wr1043nd-v2|\
291         tplink,tl-wr1043nd-v3|\
292         tplink,tl-wr1045nd-v2)
293                 ucidef_add_switch "switch0" \
294                         "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
295                 ;;
296         tplink,tl-wr2543-v1)
297                 ucidef_add_switch "switch0" \
298                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
299                 ;;
300         ubnt,acb-isp)
301                 ucidef_set_interface_wan "eth1"
302                 ucidef_add_switch "switch0" \
303                         "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
304                 ;;
305         ubnt,edgeswitch-5xp)
306                 ucidef_set_interface_wan "eth1"
307                 ucidef_add_switch "switch0" \
308                         "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
309                 ;;
310         ubnt,edgeswitch-8xp)
311                 ucidef_set_interface_wan "eth1"
312                 ucidef_add_switch "switch0" \
313                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:lan:5" "5:lan:6" "6:lan:7" "7:lan:8"  "8@eth0"
314                 ;;
315         ubnt,routerstation-pro)
316                 ucidef_set_interface_wan "eth0"
317                 ucidef_add_switch "switch0" \
318                         "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
319                 ;;
320         ubnt,nanostation-m-xw)
321                 ucidef_add_switch "switch0" \
322                         "0@eth0" "5:lan" "1:wan"
323                 ;;
324         ubnt,unifiac-mesh-pro|\
325         ubnt,unifiac-pro)
326                 ucidef_add_switch "switch0" \
327                         "0@eth0" "2:lan:1" "3:lan:2"
328                 ;;
329         zbtlink,zbt-wd323|\
330         xiaomi,mi-router-4q)
331                 ucidef_set_interface_wan "eth1"
332                 ucidef_add_switch "switch0" \
333                         "0@eth0" "3:lan:1" "4:lan:2"
334                 ;;
335         *)
336                 ucidef_set_interfaces_lan_wan "eth0" "eth1"
337                 ;;
338         esac
339 }
340
341 ath79_setup_macs()
342 {
343         local board="$1"
344
345         case "$board" in
346         adtran,bsap1800-v2|\
347         adtran,bsap1840)
348                 lan_mac=$(mtd_get_mac_binary "Board data" 2)
349                 label_mac=$lan_mac
350                 ;;
351         alfa-network,ap121f)
352                 label_mac=$(mtd_get_mac_binary art 0x1002)
353                 ;;
354         avm,fritz1750e|\
355         avm,fritz450e)
356                 label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
357                 ;;
358         avm,fritz300e)
359                 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
360                 label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
361                 ;;
362         avm,fritz4020)
363                 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
364                 wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
365                 ;;
366         devolo,magic-2-wifi)
367                 label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
368                 ;;
369         dlink,dap-2695-a1)
370                 label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
371                 ;;
372         dlink,dir-825-b1)
373                 lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
374                 wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
375                 ;;
376         dlink,dir-505)
377                 lan_mac=$(mtd_get_mac_text "mac" 0x4)
378                 ;;
379         dlink,dir-825-c1|\
380         dlink,dir-835-a1)
381                 lan_mac=$(mtd_get_mac_text "mac" 0x4)
382                 wan_mac=$(mtd_get_mac_text "mac" 0x18)
383                 ;;
384         dlink,dir-842-c1|\
385         dlink,dir-842-c2|\
386         dlink,dir-842-c3|\
387         nec,wg1200cr)
388                 lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
389                 wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
390                 label_mac=$lan_mac
391                 ;;
392         dlink,dir-859-a1|\
393         qihoo,c301|\
394         wd,mynet-n750)
395                 lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
396                 wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
397                 ;;
398         elecom,wrc-1750ghbk2-i|\
399         elecom,wrc-300ghbk2-i)
400                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" -2)
401                 ;;
402         engenius,ecb1750)
403                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
404                 label_mac=$(mtd_get_mac_ascii u-boot-env athaddr)
405                 ;;
406         engenius,epg5000)
407                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
408                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
409                 ;;
410         engenius,ews511ap)
411                 lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
412                 eth1_mac=$(macaddr_add "$lan_mac" 1)
413                 ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
414                 ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
415                 ;;
416         enterasys,ws-ap3705i)
417                 label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
418                 ;;
419         iodata,etg3-r)
420                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
421                 wan_mac=$(macaddr_add "$lan_mac" -1)
422                 label_mac=$wan_mac
423                 ;;
424         iodata,wn-ac1167dgr|\
425         iodata,wn-ac1600dgr|\
426         iodata,wn-ac1600dgr2|\
427         iodata,wn-ag300dgr)
428                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
429                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
430                 label_mac=$wan_mac
431                 ;;
432         jjplus,ja76pf2)
433                 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
434                 lan_mac=$(macaddr_add "$wan_mac" 1)
435                 ;;
436         nec,wg800hp)
437                 lan_mac=$(mtd_get_mac_text board_data 0x280)
438                 wan_mac=$(mtd_get_mac_text board_data 0x480)
439                 label_mac=$wan_mac
440                 ;;
441         netgear,wndr3700|\
442         netgear,wndr3700-v2|\
443         netgear,wndr3800|\
444         netgear,wndrmac-v1|\
445         netgear,wndrmac-v2)
446                 lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
447                 ;;
448         phicomm,k2t)
449                 lan_mac=$(k2t_get_mac "lan_mac")
450                 wan_mac=$(k2t_get_mac "wan_mac")
451                 ;;
452         rosinson,wr818)
453                 wan_mac=$(mtd_get_mac_binary factory 0x0)
454                 lan_mac=$(macaddr_setbit_la "$wan_mac")
455                 ;;
456         sitecom,wlr-7100|\
457         sitecom,wlr-8100)
458                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
459                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
460                 label_mac=$lan_mac
461                 ;;
462         tplink,archer-a7-v5|\
463         tplink,archer-c7-v4|\
464         tplink,archer-c7-v5|\
465         tplink,tl-wr1043nd-v4|\
466         tplink,tl-wr1043n-v5)
467                 base_mac=$(mtd_get_mac_binary info 0x8)
468                 wan_mac=$(macaddr_add "$base_mac" 1)
469                 ;;
470         tplink,tl-wdr3600-v1|\
471         tplink,tl-wdr4300-v1|\
472         tplink,tl-wdr4300-v1-il)
473                 base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
474                 wan_mac=$(macaddr_add "$base_mac" 1)
475                 ;;
476         trendnet,tew-823dru)
477                 lan_mac=$(mtd_get_mac_text mac 0x4)
478                 wan_mac=$(mtd_get_mac_text mac 0x18)
479                 label_mac=$wan_mac
480                 ;;
481         ubnt,airrouter|\
482         ubnt,bullet-m-ar7240|\
483         ubnt,bullet-m-ar7241|\
484         ubnt,nanobridge-m|\
485         ubnt,nanostation-loco-m|\
486         ubnt,nanostation-m|\
487         ubnt,picostation-m|\
488         ubnt,rocket-m|\
489         ubnt,unifi)
490                 label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
491                 ;;
492         ubnt,litebeam-ac-gen2|\
493         ubnt,powerbeam-5ac-500|\
494         ubnt,powerbeam-5ac-gen2)
495                 label_mac=$(mtd_get_mac_binary art 0x5006)
496                 ;;
497         ubnt,routerstation|\
498         ubnt,routerstation-pro)
499                 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
500                 lan_mac=$(macaddr_add "$wan_mac" 1)
501                 ;;
502         wd,mynet-wifi-rangeextender)
503                 lan_mac=$(nvram get et0macaddr)
504                 ;;
505         esac
506
507         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
508         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
509         [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
510 }
511
512 board_config_update
513 board=$(board_name)
514 ath79_setup_interfaces $board
515 ath79_setup_macs $board
516 board_config_flush
517
518 exit 0