ramips: explicitly disable built-in switch for lan-only devices
[openwrt/staging/rmilecki.git] / target / linux / ramips / rt305x / 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 accton,wr6202|\
35 alfa-network,w502u|\
36 netcore,nw718|\
37 petatel,psr-680w|\
38 skyline,sl-r7205|\
39 upvel,ur-336un)
40 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
41 ;;
42 allnet,all0256n-4m|\
43 allnet,all0256n-8m|\
44 allnet,all5002|\
45 allnet,all5003|\
46 dlink,dcs-930l-b1|\
47 dlink,dcs-930|\
48 hame,mpr-a2|\
49 hauppauge,broadway|\
50 hootoo,ht-tm02|\
51 huawei,d105|\
52 intenso,memory2move|\
53 netgear,wnce2001|\
54 tenda,3g150b|\
55 tenda,3g300m|\
56 tenda,w150m|\
57 unbranded,a5-v11|\
58 wansview,ncs601w|\
59 zorlik,zl5900v2)
60 ucidef_add_switch "switch0"
61 ucidef_add_switch_attr "switch0" "enable" "false"
62 ucidef_set_interface_lan "eth0"
63 ;;
64 alphanetworks,asl26555-8m|\
65 alphanetworks,asl26555-16m)
66 ucidef_add_switch "switch0" \
67 "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
68 ;;
69 argus,atp-52b|\
70 asiarf,awm002-evb-4m|\
71 asiarf,awm002-evb-8m|\
72 jcg,jhr-n805r|\
73 jcg,jhr-n825r|\
74 jcg,jhr-n926r|\
75 planex,mzk-wdpr|\
76 upvel,ur-326n4g)
77 ucidef_add_switch "switch0" \
78 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
79 ;;
80 asiarf,awapn2403)
81 ucidef_add_switch "switch0" \
82 "0:lan" "1:wan" "6@eth0"
83 ;;
84 asus,wl-330n|\
85 easyacc,wizard-8800)
86 ucidef_set_interface_lan "eth0.1"
87 ;;
88 aximcom,mr-102n)
89 ucidef_set_interface_lan "eth0.2"
90 ;;
91 belkin,f5d8235-v2|\
92 trendnet,tew-714tru)
93 ucidef_add_switch "switch0" \
94 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
95 ;;
96 buffalo,whr-g300n|\
97 dlink,dir-300-b7|\
98 dlink,dir-320-b1|\
99 dlink,dir-610-a1|\
100 edimax,3g-6200n|\
101 hilink,hlk-rm04|\
102 nixcore,x1-16m|\
103 nixcore,x1-8m|\
104 planex,mzk-w300nh2|\
105 zyxel,keenetic)
106 ucidef_add_switch "switch0" \
107 "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
108 ;;
109 dlink,dir-615-h1)
110 ucidef_add_switch "switch0" \
111 "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
112 ;;
113 huawei,hg255d)
114 ucidef_add_switch "switch0" \
115 "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
116 ;;
117 nexx,wt1520-4m|\
118 nexx,wt1520-8m)
119 ucidef_add_switch "switch0" \
120 "0:lan" "4:wan" "6@eth0"
121 ;;
122 planex,mzk-dp150n|\
123 vocore,vocore-8m|\
124 vocore,vocore-16m)
125 ucidef_add_switch "switch0" \
126 "0:lan" "4:lan" "6t@eth0"
127 ;;
128 sitecom,wl-351)
129 ucidef_add_switch "switch0" \
130 "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0"
131 ;;
132 sparklan,wcr-150gn)
133 ucidef_add_switch "switch0" \
134 "0:lan" "6t@eth0"
135 ;;
136 trendnet,tew-638apb-v2)
137 ucidef_add_switch "switch0" \
138 "4:lan" "6@eth0"
139 ;;
140 wiznet,wizfi630a)
141 ucidef_add_switch "switch0" \
142 "0:lan" "1:lan" "2:wan" "6@eth0"
143 ;;
144 zyxel,keenetic-start)
145 ucidef_add_switch "switch0" \
146 "0:lan:3" "1:lan:2" "2:lan:1" "3:lan:0" "4:wan" "6@eth0"
147 ;;
148 *)
149 RT3X5X=$(grep -E "(RT3.5|RT5350)" /proc/cpuinfo)
150 if [ -n "${RT3X5X}" ]; then
151 ramips_setup_rt3x5x_vlans
152 else
153 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
154 fi
155 ;;
156 esac
157 }
158
159 ramips_setup_macs()
160 {
161 local board="$1"
162 local lan_mac=""
163 local wan_mac=""
164 local label_mac=""
165
166 case $board in
167 7links,px-4885-4m|\
168 7links,px-4885-8m)
169 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devconf 0x28)" 1)
170 ;;
171 8devices,carambola|\
172 alfa-network,w502u|\
173 arcwireless,freestation5|\
174 netgear,wnce2001)
175 wan_mac=$(mtd_get_mac_binary factory 0x2e)
176 ;;
177 accton,wr6202|\
178 asiarf,awm002-evb-4m|\
179 asiarf,awm002-evb-8m|\
180 asus,rt-n13u|\
181 aztech,hw550-3g|\
182 fon,fonera-20n|\
183 huawei,hg255d|\
184 omnima,miniembwifi|\
185 planex,mzk-wdpr|\
186 poray,ip2202|\
187 teltonika,rut5xx|\
188 unbranded,xdx-rn502j|\
189 zyxel,keenetic|\
190 zyxel,nbg-419n|\
191 zyxel,nbg-419n-v2)
192 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
193 ;;
194 airlive,air3gii|\
195 argus,atp-52b|\
196 asus,wl-330n3g|\
197 dlink,dir-620-d1|\
198 edimax,3g-6200n|\
199 edimax,3g-6200nl|\
200 netcore,nw718|\
201 nexx,wt1520-4m|\
202 nexx,wt1520-8m|\
203 nixcore,x1-16m|\
204 nixcore,x1-8m|\
205 olimex,rt5350f-olinuxino|\
206 olimex,rt5350f-olinuxino-evb|\
207 omnima,miniembplug|\
208 planex,mzk-w300nh2|\
209 sitecom,wl-351|\
210 trendnet,tew-714tru)
211 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
212 ;;
213 asus,rt-g32-b1|\
214 asus,rt-n10-plus)
215 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devconf 0x4)" 1)
216 ;;
217 belkin,f5d8235-v2)
218 wan_mac=$(macaddr_add "$(mtd_get_mac_binary uboot 0x40004)" 1)
219 ;;
220 dlink,dir-300-b7|\
221 dlink,dir-320-b1|\
222 dlink,dir-620-a1|\
223 engenius,esr-9753|\
224 hame,mpr-a1|\
225 hauppauge,broadway|\
226 huawei,d105|\
227 hilink,hlk-rm04|\
228 nexaira,bc2|\
229 petatel,psr-680w|\
230 skyline,sl-r7205)
231 lan_mac=$(macaddr_setbit_la "$(cat /sys/class/net/eth0/address)")
232 wan_mac=$(macaddr_add "$lan_mac" 1)
233 ;;
234 dlink,dap-1350)
235 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devdata 0x2e)" 1)
236 ;;
237 dlink,dir-300-b1|\
238 dlink,dir-600-b1|\
239 dlink,dir-610-a1)
240 wan_mac=$(macaddr_add "$(mtd_get_mac_binary devdata 0x4004)" 1)
241 ;;
242 dlink,dir-615-d)
243 label_mac=$(mtd_get_mac_binary devdata 0x4004)
244 ;;
245 dlink,dir-615-h1)
246 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
247 label_mac=$(mtd_get_mac_binary factory 0x4)
248 ;;
249 dlink,dwr-512-b)
250 wan_mac=$(macaddr_add "$(mtd_get_mac_binary config 0xe07e)" 1)
251 ;;
252 jcg,jhr-n805r|\
253 jcg,jhr-n825r|\
254 jcg,jhr-n926r)
255 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x2e)" 1)
256 ;;
257 poray,m3|\
258 poray,m4-4m|\
259 poray,m4-8m|\
260 poray,x5|\
261 poray,x8)
262 lan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -2)
263 ;;
264 sparklan,wcr-150gn|\
265 wiznet,wizfi630a)
266 wan_mac=$(mtd_get_mac_binary factory 0x28)
267 ;;
268 tenda,w306r-v2)
269 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 5)
270 ;;
271 upvel,ur-326n4g|\
272 upvel,ur-336un)
273 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4004)" 1)
274 ;;
275 esac
276
277 [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
278 [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
279 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
280 }
281
282 board_config_update
283 board=$(board_name)
284 ramips_setup_interfaces $board
285 ramips_setup_macs $board
286 board_config_flush
287
288 exit 0