44a9db6ece6877eef2e5f7b7248bf857ef2c4c12
[oweals/openwrt.git] / target / linux / ramips / mt7620 / 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_interfaces()
8 {
9         local board="$1"
10
11         case $board in
12         aigale,ai-br100|\
13         alfa-network,ac1200rm|\
14         asus,rt-n12p|\
15         dlink,dir-810l|\
16         dlink,dwr-116-a1|\
17         dlink,dwr-921-c1|\
18         dlink,dwr-922-e2|\
19         ohyeah,oy-0001|\
20         phicomm,psg1208|\
21         phicomm,psg1218a|\
22         planex,db-wrt01|\
23         planex,mzk-750dhp|\
24         sanlinking,d240|\
25         youku,yk1|\
26         zbtlink,zbt-ape522ii|\
27         zbtlink,zbt-we826-16m|\
28         zbtlink,zbt-we826-32m|\
29         zbtlink,zbt-we826-e|\
30         zbtlink,zbt-wr8305rt|\
31         zyxel,keenetic-omni)
32                 ucidef_add_switch "switch0" \
33                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
34                 ;;
35         alfa-network,r36m-e4g|\
36         zbtlink,zbt-we1026-h-32m)
37                 ucidef_add_switch "switch0" \
38                         "3:lan" "4:wan" "6@eth0"
39                 ;;
40         alfa-network,tube-e4g|\
41         buffalo,wmr-300|\
42         dlink,dch-m225|\
43         edimax,ew-7476rpc|\
44         edimax,ew-7478ac|\
45         elecom,wrh-300cr|\
46         kimax,u25awf-h1|\
47         kimax,u35wf|\
48         kingston,mlw221|\
49         kingston,mlwg2|\
50         microduino,microwrt|\
51         netgear,ex2700|\
52         netgear,ex3700|\
53         netgear,ex6130|\
54         netgear,wn3000rp-v3|\
55         planex,cs-qr10|\
56         planex,mzk-ex300np|\
57         planex,mzk-ex750np|\
58         ravpower,wd03|\
59         sercomm,na930|\
60         tplink,re200-v1|\
61         tplink,re210-v1|\
62         yukai,bocco|\
63         zbtlink,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         asus,rp-n53)
70                 ucidef_add_switch "switch0" \
71                         "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
72                 ;;
73         asus,rt-ac51u)
74                 ucidef_add_switch "switch0" \
75                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
76                 ;;
77         asus,rt-n14u|\
78         bdcom,wap2100-sk|\
79         glinet,gl-mt300a|\
80         glinet,gl-mt300n|\
81         glinet,gl-mt750|\
82         hiwifi,hc5661|\
83         wrtnode,wrtnode|\
84         zbtlink,zbt-wa05)
85                 ucidef_add_switch "switch0" \
86                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
87                 ;;
88         buffalo,whr-300hp2|\
89         buffalo,whr-600d)
90                 ucidef_add_switch "switch0" \
91                         "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
92                 ;;
93         buffalo,whr-1166d)
94                 ucidef_add_switch "switch0" \
95                         "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0"
96                 ;;
97         comfast,cf-wr800n|\
98         hnet,c108)
99                 ucidef_add_switch "switch0" \
100                         "4:lan" "6@eth0"
101                 ;;
102         dlink,dir-510l)
103                 ucidef_add_switch "switch0" \
104                         "0:lan" "6@eth0"
105                 ;;
106         dlink,dwr-118-a1)
107                 ucidef_add_switch "switch0" \
108                         "1:lan:2" "2:lan:3" "3:lan:1" "4:lan:0" "5:wan" "6@eth0"
109                 ;;
110         dlink,dwr-118-a2)
111                 ucidef_add_switch "switch0" \
112                         "1:lan:2" "2:lan:1" "3:lan:3" "4:lan" "0:wan" "6@eth0"
113                 ;;
114         dlink,dwr-960)
115                 ucidef_add_switch "switch0" \
116                         "1:lan" "2:lan" "3:lan" "5:lan" "0:wan" "6@eth0"
117                 ;;
118         edimax,br-6478ac-v2|\
119         tplink,archer-c2-v1)
120                 ucidef_add_switch "switch0"
121                 ucidef_add_switch_attr "switch0" "enable" "false"
122                 ucidef_add_switch "switch1" \
123                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
124                 ;;
125         engenius,esr600)
126                 ucidef_add_switch "switch0" \
127                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "0@eth0"
128                 ;;
129         fon,fon2601)
130                 ucidef_add_switch "switch0" \
131                         "0:lan" "4:wan" "6@eth0"
132                 ;;
133         head-weblink,hdrm200)
134                 ucidef_add_switch "switch0" \
135                         "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
136                 ;;
137         hiwifi,hc5761)
138                 ucidef_add_switch "switch0" \
139                         "1:lan" "4:lan" "0:wan" "6@eth0"
140                 ;;
141         hiwifi,hc5861)
142                 ucidef_add_switch "switch0" \
143                         "0:lan" "1:lan" "5:wan" "6@eth0"
144                 ;;
145         iodata,wn-ac1167gr|\
146         iodata,wn-ac733gr3)
147                 ucidef_add_switch "switch0"
148                 ucidef_add_switch_attr "switch0" "enable" "false"
149                 ucidef_add_switch "switch1" \
150                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
151                 ;;
152         iptime,a104ns)
153                 ucidef_add_switch "switch0" \
154                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
155                 ;;
156         lava,lr-25g001)
157                 ucidef_add_switch "switch0" \
158                         "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
159                 ;;
160         lenovo,newifi-y1|\
161         xiaomi,miwifi-mini)
162                 ucidef_add_switch "switch0" \
163                         "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
164                 ;;
165         lenovo,newifi-y1s)
166                 ucidef_add_switch "switch0" \
167                         "1:lan:4" "2:lan:3" "4:lan:2" "5:lan:1" "0:wan" "6@eth0"
168                 ;;
169         linksys,e1700|\
170         ralink,mt7620a-mt7530-evb)
171                 ucidef_add_switch "switch0"
172                 ucidef_add_switch_attr "switch0" "enable" "false"
173                 ucidef_add_switch "switch1" \
174                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
175                 ;;
176         nexx,wt3020-4m|\
177         nexx,wt3020-8m)
178                 ucidef_add_switch "switch0" \
179                         "4:lan" "0:wan" "6@eth0"
180                 ;;
181         phicomm,k2g)
182                 ucidef_add_switch "switch0" \
183                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5:wan" "6@eth0"
184                 ;;
185         phicomm,psg1218b)
186                 ucidef_add_switch "switch0" \
187                         "0:lan:3" "1:lan:2" "2:lan:1" "3:wan" "6@eth0"
188                 ;;
189         tplink,archer-c20i|\
190         tplink,archer-c20-v1|\
191         tplink,archer-c50-v1)
192                 ucidef_add_switch "switch0" \
193                         "1:lan:3" "2:lan:4" "3:lan:1" "4:lan:2" "0:wan" "6@eth0"
194                 ;;
195         tplink,archer-mr200)
196                 ucidef_add_switch "switch0" \
197                         "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0"
198                 ucidef_set_interface_wan "usb0"
199                 ;;
200         vonets,var11n-300)
201                 ucidef_add_switch "switch0" \
202                         "0:lan" "4:wan" "6@eth0"
203                 ;;
204         zbtlink,zbt-we1026-5g-16m)
205                 ucidef_add_switch "switch0" \
206                         "0:lan" "6t@eth0"
207                 ;;
208         zbtlink,zbt-we2026)
209                 ucidef_add_switch "switch0" \
210                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
211                 ;;
212         zyxel,keenetic-omni-ii)
213                 ucidef_add_switch "switch0" \
214                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6@eth0"
215                 ;;
216         zyxel,keenetic-viva)
217                 ucidef_add_switch "switch1" \
218                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
219                 ;;
220         *)
221                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
222                 ;;
223         esac
224 }
225
226 ramips_setup_macs()
227 {
228         local board="$1"
229         local lan_mac=""
230         local wan_mac=""
231         local label_mac=""
232
233         case $board in
234         aigale,ai-br100|\
235         asus,rt-ac51u|\
236         asus,rt-n12p|\
237         asus,rt-n14u|\
238         bdcom,wap2100-sk|\
239         edimax,ew-7478apc|\
240         fon,fon2601|\
241         head-weblink,hdrm200|\
242         nexx,wt3020-4m|\
243         nexx,wt3020-8m|\
244         phicomm,psg1208|\
245         planex,db-wrt01|\
246         planex,mzk-750dhp|\
247         sanlinking,d240|\
248         vonets,var11n-300|\
249         wrtnode,wrtnode|\
250         youku,yk1|\
251         zbtlink,zbt-ape522ii|\
252         zbtlink,zbt-wa05|\
253         zbtlink,zbt-we2026|\
254         zbtlink,zbt-we826-16m|\
255         zbtlink,zbt-we826-32m|\
256         zbtlink,zbt-we826-e|\
257         zbtlink,zbt-wr8305rt)
258                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
259                 ;;
260         alfa-network,ac1200rm|\
261         dlink,dir-810l|\
262         phicomm,psg1218a|\
263         phicomm,psg1218b)
264                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
265                 ;;
266         alfa-network,r36m-e4g|\
267         zbtlink,zbt-we1026-h-32m)
268                 wan_mac=$(mtd_get_mac_binary factory 0x2e)
269                 label_mac=$(mtd_get_mac_binary factory 0x4)
270                 ;;
271         dlink,dch-m225)
272                 lan_mac=$(mtd_get_mac_ascii factory lanmac)
273                 ;;
274         dlink,dir-510l|\
275         dlink,dwr-116-a1|\
276         dlink,dwr-118-a1|\
277         dlink,dwr-118-a2|\
278         dlink,dwr-921-c1|\
279         dlink,dwr-922-e2|\
280         dlink,dwr-960|\
281         lava,lr-25g001)
282                 wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000)
283                 lan_mac=$(macaddr_add "$wan_mac" 1)
284                 label_mac=$wan_mac
285                 ;;
286         dovado,tiny-ac)
287                 lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR)
288                 wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR)
289                 ;;
290         edimax,br-6478ac-v2)
291                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 2)
292                 ;;
293         engenius,esr600)
294                 lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
295                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
296                 ;;
297         glinet,gl-mt300a|\
298         glinet,gl-mt300n|\
299         glinet,gl-mt750)
300                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4000)" 1)
301                 label_mac=$(mtd_get_mac_binary factory 0x4)
302                 ;;
303         hiwifi,hc5661|\
304         hiwifi,hc5761|\
305         hiwifi,hc5861)
306                 lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
307                 label_mac=$lan_mac
308                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
309                 wan_mac=$(macaddr_add "$lan_mac" 1)
310                 ;;
311         iodata,wn-ac1167gr|\
312         iodata,wn-ac733gr3)
313                 wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
314                 ;;
315         iptime,a104ns)
316                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary u-boot 0x1fc20)" 2)
317                 ;;
318         lenovo,newifi-y1|\
319         lenovo,newifi-y1s|\
320         ohyeah,oy-0001|\
321         phicomm,k2g)
322                 wan_mac=$(mtd_get_mac_binary factory 0x2e)
323                 ;;
324         linksys,e1700)
325                 wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR)
326                 ;;
327         tplink,archer-c2-v1|\
328         tplink,archer-c20-v1|\
329         tplink,archer-c20i|\
330         tplink,archer-c50-v1|\
331         tplink,archer-mr200)
332                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1)
333                 ;;
334         zbtlink,zbt-we1026-5g-16m)
335                 label_mac=$(mtd_get_mac_binary factory 0x4)
336                 ;;
337         zyxel,keenetic-omni|\
338         zyxel,keenetic-omni-ii|\
339         zyxel,keenetic-viva)
340                 wan_mac=$(mtd_get_mac_binary factory 0x28)
341                 ;;
342         esac
343
344         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
345         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
346         [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
347 }
348
349 board_config_update
350 board=$(board_name)
351 ramips_setup_interfaces $board
352 ramips_setup_macs $board
353 board_config_flush
354
355 exit 0