ramips: add support for Xiaomi MiWifi 3C
[openwrt/openwrt.git] / target / linux / ramips / mt76x8 / base-files / etc / board.d / 02_network
1
2 . /lib/functions.sh
3 . /lib/functions/uci-defaults.sh
4 . /lib/functions/system.sh
5
6 ramips_setup_interfaces()
7 {
8 local board="$1"
9
10 case $board in
11 alfa-network,awusfree1|\
12 d-team,pbr-d1|\
13 dlink,dap-1325-a1|\
14 glinet,microuter-n300|\
15 glinet,vixmini|\
16 hak5,wifi-pineapple-mk7|\
17 mediatek,linkit-smart-7688|\
18 minew,g1-c|\
19 onion,omega2p|\
20 onion,omega2|\
21 ravpower,rp-wd009|\
22 tama,w06|\
23 tplink,re200-v2|\
24 tplink,re200-v3|\
25 tplink,re200-v4|\
26 tplink,re220-v2|\
27 tplink,re305-v1|\
28 tplink,re305-v3|\
29 tplink,tl-mr3020-v3|\
30 tplink,tl-wr802n-v4|\
31 tplink,tl-wa801nd-v5|\
32 widora,neo-16m|\
33 widora,neo-32m)
34 ucidef_add_switch "switch0"
35 ucidef_add_switch_attr "switch0" "enable" "false"
36 ucidef_set_interface_lan "eth0"
37 ;;
38 asus,rt-n10p-v3|\
39 asus,rt-n11p-b1|\
40 asus,rt-n12-vp-b1|\
41 hiwifi,hc5661a|\
42 mediatek,mt7628an-eval-board|\
43 mercury,mac1200r-v2|\
44 totolink,lr1200|\
45 wavlink,wl-wn570ha1|\
46 wavlink,wl-wn575a3)
47 ucidef_add_switch "switch0" \
48 "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
49 ;;
50 buffalo,wcr-1166ds|\
51 elecom,wrc-1167fs|\
52 wavlink,wl-wn577a2|\
53 wavlink,wl-wn578a2)
54 ucidef_add_switch "switch0" \
55 "3:lan" "4:wan" "6@eth0"
56 ;;
57 cudy,wr1000)
58 ucidef_add_switch "switch0" \
59 "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
60 ;;
61 duzun,dm06)
62 ucidef_add_switch "switch0" \
63 "1:lan" "0:wan" "6@eth0"
64 ;;
65 glinet,gl-mt300n-v2)
66 ucidef_add_switch "switch0" \
67 "1:lan" "0:wan" "6@eth0"
68 ;;
69 hilink,hlk-7628n|\
70 hilink,hlk-7688a|\
71 hiwifi,hc5861b|\
72 skylab,skw92a|\
73 tplink,archer-c20-v4|\
74 tplink,archer-c20-v5|\
75 tplink,archer-c50-v3|\
76 tplink,archer-c50-v4|\
77 tplink,tl-mr3420-v5|\
78 tplink,tl-wr840n-v4|\
79 tplink,tl-wr840n-v5|\
80 tplink,tl-wr841n-v13|\
81 tplink,tl-wr841n-v14|\
82 tplink,tl-wr842n-v5|\
83 tplink,tl-wr850n-v2|\
84 unielec,u7628-01-16m|\
85 wrtnode,wrtnode2p|\
86 wrtnode,wrtnode2r|\
87 zyxel,keenetic-extra-ii)
88 ucidef_add_switch "switch0" \
89 "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
90 ;;
91 hiwifi,hc5761a)
92 ucidef_add_switch "switch0" \
93 "0:lan" "1:lan" "4:wan" "6@eth0"
94 ;;
95 iptime,a3|\
96 totolink,a3)
97 ucidef_add_switch "switch0" \
98 "2:lan:2" "3:lan:1" "0:wan" "6@eth0"
99 ;;
100 iptime,a604m)
101 ucidef_add_switch "switch0" \
102 "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
103 ;;
104 jotale,js76x8-8m|\
105 jotale,js76x8-16m|\
106 jotale,js76x8-32m)
107 ucidef_add_switch "switch0" \
108 "0:lan" "1:lan" "2:lan" "6@eth0"
109 ;;
110 motorola,mwr03)
111 ucidef_add_switch "switch0" \
112 "1:lan" "2:lan" "3:lan" "0:wan" "6@eth0"
113 ;;
114 netgear,r6020|\
115 netgear,r6080|\
116 netgear,r6120)
117 ucidef_add_switch "switch0" \
118 "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
119 ;;
120 rakwireless,rak633)
121 ucidef_add_switch "switch0" \
122 "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
123 ;;
124 tplink,tl-mr6400-v4)
125 ucidef_add_switch "switch0" \
126 "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
127 ;;
128 tplink,tl-mr6400-v5)
129 ucidef_add_switch "switch0" \
130 "0:lan" "1:lan" "2:lan" "3:wan" "6@eth0"
131 ;;
132 tplink,tl-wr902ac-v3)
133 ucidef_add_switch "switch0" \
134 "4:lan" "6@eth0"
135 ;;
136 vocore,vocore2|\
137 vocore,vocore2-lite)
138 ucidef_add_switch "switch0" \
139 "0:lan" "2:lan" "6t@eth0"
140 ;;
141 wiznet,wizfi630s)
142 ucidef_add_switch "switch0" \
143 "0:wan" "3:lan" "4:lan" "6@eth0"
144 ;;
145 xiaomi,mi-router-4a-100m)
146 ucidef_add_switch "switch0" \
147 "4:lan:1" "2:lan:2" "0:wan" "6@eth0"
148 ;;
149 xiaomi,mi-router-4c)
150 ucidef_add_switch "switch0" \
151 "4:lan:1" "2:lan:2" "1:wan" "6@eth0"
152 ;;
153 xiaomi,miwifi-3c)
154 ucidef_add_switch "switch0" \
155 "0:wan" "2:lan:2" "4:lan:1" "6@eth0"
156 ;;
157 xiaomi,miwifi-nano)
158 ucidef_add_switch "switch0" \
159 "0:lan:2" "2:lan:1" "4:wan" "6@eth0"
160 ;;
161 zbtlink,zbt-we1226)
162 ucidef_add_switch "switch0" \
163 "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
164 ;;
165 esac
166 }
167
168 ramips_setup_macs()
169 {
170 local board="$1"
171 local lan_mac=""
172 local wan_mac=""
173 local label_mac=""
174
175 case $board in
176 buffalo,wcr-1166ds)
177 local index="$(find_mtd_index "board_data")"
178 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
179 lan_mac=$wan_mac
180 ;;
181 cudy,wr1000|\
182 hilink,hlk-7628n|\
183 hilink,hlk-7688a|\
184 wavlink,wl-wn577a2|\
185 wavlink,wl-wn578a2)
186 wan_mac=$(mtd_get_mac_binary factory 0x2e)
187 label_mac=$(mtd_get_mac_binary factory 0x4)
188 ;;
189 duzun,dm06|\
190 netgear,r6020|\
191 netgear,r6080|\
192 netgear,r6120|\
193 wrtnode,wrtnode2p|\
194 wrtnode,wrtnode2r|\
195 zyxel,keenetic-extra-ii)
196 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
197 ;;
198 elecom,wrc-1167fs)
199 wan_mac=$(mtd_get_mac_binary factory 0x22)
200 label_mac=$wan_mac
201 ;;
202 hiwifi,hc5661a|\
203 hiwifi,hc5761a|\
204 hiwifi,hc5861b)
205 lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
206 label_mac=$lan_mac
207 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
208 wan_mac=$(macaddr_add "$lan_mac" 1)
209 ;;
210 iptime,a3|\
211 iptime,a604m|\
212 totolink,a3)
213 wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
214 ;;
215 jotale,js76x8-8m|\
216 jotale,js76x8-16m|\
217 jotale,js76x8-32m|\
218 skylab,skw92a|\
219 totolink,lr1200)
220 wan_mac=$(mtd_get_mac_binary factory 0x2e)
221 ;;
222 mercury,mac1200r-v2)
223 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory_info 0xd)" 1)
224 ;;
225 motorola,mwr03)
226 label_mac=$(mtd_get_mac_binary factory 0x4)
227 wan_mac=$(macaddr_add "$label_mac" 2)
228 ;;
229 onion,omega2|\
230 onion,omega2p|\
231 vocore,vocore2|\
232 vocore,vocore2-lite)
233 label_mac=$(mtd_get_mac_binary factory 0x4)
234 ;;
235 rakwireless,rak633|\
236 unielec,u7628-01-16m|\
237 wavlink,wl-wn575a3)
238 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
239 ;;
240 tplink,archer-c20-v4|\
241 tplink,archer-c50-v3|\
242 tplink,tl-mr3420-v5|\
243 tplink,tl-wr840n-v4|\
244 tplink,tl-wr840n-v5|\
245 tplink,tl-wr841n-v13|\
246 tplink,tl-wr841n-v14|\
247 tplink,tl-wr842n-v5|\
248 tplink,tl-wr850n-v2)
249 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xf100)" 1)
250 ;;
251 tplink,archer-c20-v5|\
252 tplink,archer-c50-v4)
253 wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1)
254 ;;
255 wavlink,wl-wn570ha1|\
256 zbtlink,zbt-we1226)
257 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x2e)" 1)
258 ;;
259 wiznet,wizfi630s)
260 label_mac=$(mtd_get_mac_binary factory 0x4)
261 wan_mac=$(mtd_get_mac_binary factory 0x28)
262 ;;
263 xiaomi,mi-router-4a-100m|\
264 xiaomi,mi-router-4c)
265 wan_mac=$(mtd_get_mac_binary factory 0x4)
266 ;;
267 esac
268
269 [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
270 [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
271 [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
272 }
273
274 board_config_update
275 board=$(board_name)
276 ramips_setup_interfaces $board
277 ramips_setup_macs $board
278 board_config_flush
279
280 exit 0