7d5f28853611d5a8ec44abcf811e833163079594
[openwrt/staging/lynxis.git] / target / linux / ath79 / 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,fritz300e|\
17 devolo,dvl1200i|\
18 devolo,dvl1750c|\
19 devolo,dvl1750i|\
20 devolo,dvl1750x|\
21 engenius,ecb1750|\
22 glinet,ar300m-lite|\
23 netgear,ex6400|\
24 netgear,ex7300|\
25 ocedo,koala|\
26 ocedo,raccoon|\
27 pcs,cap324|\
28 pisen,ts-d084|\
29 pisen,wmb001n|\
30 pisen,wmm003n|\
31 pqi,air-pen|\
32 tplink,cpe210-v2|\
33 tplink,cpe210-v3|\
34 tplink,cpe510-v2|\
35 tplink,cpe510-v3|\
36 tplink,cpe610-v1|\
37 tplink,re350k-v1|\
38 tplink,re355-v1|\
39 tplink,re450-v1|\
40 tplink,re450-v2|\
41 tplink,tl-mr10u|\
42 tplink,tl-mr3020-v1|\
43 tplink,tl-mr3040-v2|\
44 tplink,tl-wa901nd-v2|\
45 tplink,tl-wr703n|\
46 ubnt,bullet-m|\
47 ubnt,bullet-m-xw|\
48 ubnt,lap-120|\
49 ubnt,nanobeam-ac|\
50 ubnt,nanostation-ac-loco|\
51 ubnt,rocket-m|\
52 ubnt,unifiac-lite|\
53 ubnt,unifiac-mesh|\
54 ubnt,unifi|\
55 wd,mynet-wifi-rangeextender|\
56 winchannel,wb2000)
57 ucidef_set_interface_lan "eth0"
58 ;;
59 avm,fritz4020|\
60 pcs,cr3000|\
61 tplink,archer-c58-v1|\
62 tplink,archer-c59-v1)
63 ucidef_set_interface_wan "eth1"
64 ucidef_add_switch "switch0" \
65 "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
66 ;;
67 buffalo,bhr-4grv|\
68 buffalo,wzr-hp-g450h)
69 ucidef_add_switch "switch0" \
70 "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
71 ;;
72 buffalo,bhr-4grv2|\
73 trendnet,tew-823dru)
74 ucidef_add_switch "switch0" \
75 "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
76 ;;
77 buffalo,whr-g301n)
78 ucidef_set_interface_wan "eth0"
79 ucidef_add_switch "switch0" \
80 "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
81 ;;
82 buffalo,wzr-hp-ag300h|\
83 tplink,archer-c25-v1|\
84 tplink,tl-mr3220-v1|\
85 tplink,tl-mr3420-v1|\
86 tplink,tl-wdr3500-v1|\
87 tplink,tl-wr841-v7|\
88 tplink,tl-wr841-v9|\
89 tplink,tl-wr841-v10|\
90 tplink,tl-wr841-v11|\
91 tplink,tl-wr841-v12|\
92 tplink,tl-wr842n-v1|\
93 tplink,tl-wr842n-v3|\
94 tplink,tl-wr940n-v3|\
95 tplink,tl-wr940n-v4|\
96 tplink,tl-wr941nd-v6|\
97 ubnt,airrouter)
98 ucidef_set_interface_wan "eth1"
99 ucidef_add_switch "switch0" \
100 "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
101 ;;
102 buffalo,wzr-hp-g302h-a1a0)
103 ucidef_add_switch "switch0" \
104 "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
105 ;;
106 comfast,cf-e110n-v2|\
107 comfast,cf-e120a-v3|\
108 comfast,cf-e314n-v2|\
109 tplink,cpe210-v1|\
110 tplink,cpe220-v2|\
111 tplink,cpe510-v1|\
112 ubnt,nanostation-m|\
113 ubnt,routerstation)
114 ucidef_set_interfaces_lan_wan "eth1" "eth0"
115 ;;
116 comfast,cf-wr650ac-v1|\
117 comfast,cf-wr650ac-v2)
118 ucidef_set_interfaces_lan_wan "eth0" "eth1"
119 ucidef_add_switch "switch0" \
120 "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
121 ;;
122 devolo,dvl1200e|\
123 devolo,dvl1750e|\
124 ocedo,ursus)
125 ucidef_set_interface_lan "eth0 eth1"
126 ;;
127 dlink,dir-825-b1)
128 ucidef_set_interface_wan "eth1"
129 ucidef_add_switch "switch0" \
130 "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
131 ;;
132 dlink,dir-825-c1|\
133 dlink,dir-835-a1|\
134 dlink,dir-842-c1|\
135 dlink,dir-842-c2|\
136 dlink,dir-842-c3|\
137 dlink,dir-859-a1|\
138 engenius,epg5000|\
139 tplink,archer-c2-v3|\
140 tplink,tl-wr1043nd-v4|\
141 tplink,tl-wr1043n-v5)
142 ucidef_add_switch "switch0" \
143 "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
144 ;;
145 elecom,wrc-1750ghbk2-i|\
146 elecom,wrc-300ghbk2-i)
147 ucidef_add_switch "switch0" \
148 "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
149 ;;
150 embeddedwireless,dorin)
151 ucidef_add_switch "switch0" \
152 "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
153 ;;
154 engenius,ews511ap)
155 ucidef_set_interface_lan "eth0 eth1" "dhcp"
156 ;;
157 etactica,eg200)
158 ucidef_set_interface_lan "eth0" "dhcp"
159 ;;
160 glinet,gl-ar750)
161 ucidef_set_interface_wan "eth1"
162 ucidef_add_switch "switch0" \
163 "0@eth0" "1:lan" "2:lan"
164 ;;
165 glinet,gl-ar750s)
166 ucidef_add_switch "switch0" \
167 "0@eth0" "2:lan:2" "3:lan:1" "1:wan"
168 ;;
169 iodata,etg3-r|\
170 iodata,wn-ac1167dgr|\
171 iodata,wn-ac1600dgr|\
172 iodata,wn-ac1600dgr2|\
173 iodata,wn-ag300dgr|\
174 pcs,cr5000|\
175 wd,mynet-n750)
176 ucidef_add_switch "switch0" \
177 "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
178 ;;
179 librerouter,librerouter-v1)
180 ucidef_add_switch "switch0" \
181 "0@eth0" "5:wan" "6@eth1" "4:lan"
182 ;;
183 nec,wg1200cr|\
184 ubnt,nanostation-ac|\
185 ubnt,unifiac-mesh-pro|\
186 ubnt,unifiac-pro)
187 ucidef_add_switch "switch0" \
188 "0@eth0" "2:lan" "3:wan"
189 ;;
190 nec,wg800hp)
191 ucidef_add_switch "switch0" \
192 "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
193 ;;
194 netgear,wndr3700|\
195 netgear,wndr3700v2|\
196 netgear,wndr3800)
197 ucidef_set_interfaces_lan_wan "eth0" "eth1"
198 ucidef_add_switch "switch0" \
199 "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
200 ucidef_add_switch_attr "switch0" "blinkrate" 2
201 ucidef_add_switch_port_attr "switch0" 1 led 6
202 ucidef_add_switch_port_attr "switch0" 2 led 9
203 ucidef_add_switch_port_attr "switch0" 5 led 2
204 ;;
205 netgear,wnr612-v2|\
206 on,n150r|\
207 tplink,tl-wr740n-v1|\
208 tplink,tl-wr740n-v3|\
209 tplink,tl-wr741-v1|\
210 tplink,tl-wr743nd-v1|\
211 tplink,tl-wr841-v5|\
212 tplink,tl-wr941-v4)
213 ucidef_set_interface_wan "eth0"
214 ucidef_add_switch "switch0" \
215 "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
216 ;;
217 phicomm,k2t)
218 ucidef_add_switch "switch0" \
219 "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
220 ;;
221 qihoo,c301)
222 ucidef_set_interface_wan "eth1"
223 ucidef_add_switch "switch0" \
224 "0@eth0" "2:lan" "3:lan"
225 ;;
226 rosinson,wr818)
227 ucidef_add_switch "switch0" \
228 "0@eth0" "1:lan" "2:lan" "3:wan"
229 ;;
230 tplink,archer-a7-v5|\
231 tplink,archer-c6-v2|\
232 tplink,archer-c7-v4|\
233 tplink,archer-c7-v5|\
234 tplink,tl-wdr3600-v1|\
235 tplink,tl-wdr4300-v1|\
236 tplink,tl-wr941n-v7-cn)
237 ucidef_add_switch "switch0" \
238 "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
239 ;;
240 tplink,archer-c5-v1|\
241 tplink,archer-c7-v1|\
242 tplink,archer-c7-v2|\
243 tplink,tl-wdr4900-v2)
244 ucidef_add_switch "switch0" \
245 "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
246 ;;
247 tplink,archer-c60-v1|\
248 tplink,archer-c60-v2)
249 ucidef_set_interface_wan "eth1"
250 ucidef_add_switch "switch0" \
251 "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
252 ;;
253 tplink,archer-d50-v1)
254 ucidef_add_switch "switch0" \
255 "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
256 ;;
257 tplink,tl-mr3420-v2|\
258 tplink,tl-wr740n-v4|\
259 tplink,tl-wr741nd-v4|\
260 tplink,tl-wr841-v8|\
261 tplink,tl-wr842n-v2)
262 ucidef_set_interface_wan "eth1"
263 ucidef_add_switch "switch0" \
264 "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
265 ;;
266 tplink,tl-wr1043nd-v1)
267 ucidef_add_switch "switch0" \
268 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
269 ;;
270 tplink,tl-wr1043nd-v2|\
271 tplink,tl-wr1043nd-v3)
272 ucidef_add_switch "switch0" \
273 "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
274 ;;
275 tplink,tl-wr2543-v1)
276 ucidef_add_switch "switch0" \
277 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
278 ;;
279 tplink,tl-wr941-v2)
280 ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
281 ;;
282 ubnt,acb-isp)
283 ucidef_set_interface_wan "eth1"
284 ucidef_add_switch "switch0" \
285 "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
286 ;;
287 ubnt,routerstation-pro)
288 ucidef_set_interface_wan "eth0"
289 ucidef_add_switch "switch0" \
290 "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
291 ;;
292 ubnt,nanostation-m-xw)
293 ucidef_add_switch "switch0" \
294 "0@eth0" "5:lan" "1:wan"
295 ;;
296 zbtlink,zbt-wd323|\
297 xiaomi,mi-router-4q)
298 ucidef_set_interface_wan "eth1"
299 ucidef_add_switch "switch0" \
300 "0@eth0" "3:lan:1" "4:lan:2"
301 ;;
302 *)
303 ucidef_set_interfaces_lan_wan "eth0" "eth1"
304 ;;
305 esac
306 }
307
308 ath79_setup_macs()
309 {
310 local board="$1"
311
312 case "$board" in
313 adtran,bsap1800-v2|\
314 adtran,bsap1840)
315 lan_mac=$(mtd_get_mac_binary "Board data" 2)
316 ;;
317 avm,fritz300e)
318 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
319 ;;
320 avm,fritz4020)
321 lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
322 wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
323 ;;
324 dlink,dir-825-b1)
325 lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
326 wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
327 ;;
328 dlink,dir-825-c1|\
329 dlink,dir-835-a1)
330 lan_mac=$(mtd_get_mac_text "mac" 0x4)
331 wan_mac=$(mtd_get_mac_text "mac" 0x18)
332 ;;
333 dlink,dir-842-c1|\
334 dlink,dir-842-c2|\
335 dlink,dir-842-c3|\
336 dlink,dir-859-a1|\
337 nec,wg1200cr|\
338 wd,mynet-n750)
339 lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
340 wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
341 ;;
342 elecom,wrc-1750ghbk2-i|\
343 elecom,wrc-300ghbk2-i)
344 wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" -2)
345 ;;
346 engenius,ecb1750)
347 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
348 ;;
349 engenius,epg5000|\
350 iodata,wn-ac1167dgr|\
351 iodata,wn-ac1600dgr|\
352 iodata,wn-ac1600dgr2|\
353 iodata,wn-ag300dgr)
354 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
355 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
356 ;;
357 engenius,ews511ap)
358 lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
359 eth1_mac=$(macaddr_add "$lan_mac" 1)
360 ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
361 ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
362 ;;
363 iodata,etg3-r)
364 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
365 wan_mac=$(macaddr_add "$lan_mac" -1)
366 ;;
367 jjplus,ja76pf2)
368 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
369 lan_mac=$(macaddr_add "$wan_mac" 1)
370 ;;
371 nec,wg800hp)
372 lan_mac=$(mtd_get_mac_text board_data 0x280)
373 wan_mac=$(mtd_get_mac_text board_data 0x480)
374 ;;
375 netgear,wndr3700|\
376 netgear,wndr3700v2|\
377 netgear,wndr3800)
378 lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
379 ;;
380 phicomm,k2t)
381 lan_mac=$(k2t_get_mac "lan_mac")
382 wan_mac=$(k2t_get_mac "wan_mac")
383 ;;
384 qihoo,c301)
385 lan_mac=$(mtd_get_mac_ascii devdata lanmac)
386 wan_mac=$(mtd_get_mac_ascii devdata wanmac)
387 ;;
388 rosinson,wr818)
389 wan_mac=$(mtd_get_mac_binary factory 0x0)
390 lan_mac=$(macaddr_setbit_la "$wan_mac")
391 ;;
392 tplink,archer-a7-v5|\
393 tplink,archer-c7-v4|\
394 tplink,archer-c7-v5|\
395 tplink,tl-wr1043nd-v4|\
396 tplink,tl-wr1043n-v5)
397 base_mac=$(mtd_get_mac_binary info 0x8)
398 wan_mac=$(macaddr_add "$base_mac" 1)
399 ;;
400 tplink,tl-wr941-v2|\
401 tplink,tl-wr941n-v7-cn)
402 base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
403 wan_mac=$(macaddr_add "$base_mac" 1)
404 ;;
405 trendnet,tew-823dru)
406 lan_mac=$(mtd_get_mac_text mac 0x4)
407 wan_mac=$(mtd_get_mac_text mac 0x18)
408 ;;
409 ubnt,routerstation|\
410 ubnt,routerstation-pro)
411 wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
412 lan_mac=$(macaddr_add "$wan_mac" 1)
413 ;;
414 wd,mynet-wifi-rangeextender)
415 lan_mac=$(nvram get et0macaddr)
416 ;;
417 esac
418
419 [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
420 [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
421 }
422
423 board_config_update
424 board=$(board_name)
425 ath79_setup_interfaces $board
426 ath79_setup_macs $board
427 board_config_flush
428
429 exit 0