ramips: split base-files into subtargets
[oweals/openwrt.git] / target / linux / ramips / mt76x8 / 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         alfa-network,awusfree1|\
13         d-team,pbr-d1|\
14         tama,w06|\
15         tplink,tl-mr3020-v3|\
16         tplink,tl-wr802n-v4)
17                 ucidef_set_interface_lan "eth0"
18                 ;;
19         buffalo,wcr-1166ds)
20                 ucidef_add_switch "switch0" \
21                         "3:lan" "4:wan" "6@eth0"
22                 ;;
23         cudy,wr1000)
24                 ucidef_add_switch "switch0" \
25                         "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
26                 ;;
27         duzun,dm06)
28                 ucidef_add_switch "switch0" \
29                         "1:lan" "0:wan" "6@eth0"
30                 ;;
31         glinet,gl-mt300n-v2)
32                 ucidef_add_switch "switch0" \
33                         "1:lan" "0:wan" "6@eth0"
34                 ;;
35         glinet,vixmini)
36                 ucidef_add_switch "switch0" \
37                         "0:lan" "6@eth0"
38                 ;;
39         hilink,hlk-7628n|\
40         hiwifi,hc5861b|\
41         skylab,skw92a|\
42         tplink,archer-c20-v4|\
43         tplink,archer-c50-v3|\
44         tplink,archer-c50-v4|\
45         tplink,tl-mr3420-v5|\
46         tplink,tl-wr840n-v4|\
47         tplink,tl-wr840n-v5|\
48         tplink,tl-wr841n-v13|\
49         tplink,tl-wr841n-v14|\
50         tplink,tl-wr842n-v5|\
51         unielec,u7628-01-16m|\
52         wrtnode,wrtnode2p|\
53         wrtnode,wrtnode2r|\
54         zyxel,keenetic-extra-ii)
55                 ucidef_add_switch "switch0" \
56                         "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
57                 ;;
58         hiwifi,hc5661a|\
59         hiwifi,hc5761a|\
60         mediatek,mt7628an-eval-board|\
61         mercury,mac1200r-v2|\
62         totolink,lr1200|\
63         wavlink,wl-wn570ha1|\
64         wavlink,wl-wn575a3|\
65         xiaomi,miwifi-nano)
66                 ucidef_add_switch "switch0" \
67                         "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
68                 ;;
69         iptime,a3)
70                 ucidef_add_switch "switch0" \
71                         "2:lan:2" "3:lan:1" "0:wan" "6@eth0"
72                 ;;
73         iptime,a604m)
74                 ucidef_add_switch "switch0" \
75                         "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
76                 ;;
77         mediatek,linkit-smart-7688|\
78         onion,omega2p|\
79         onion,omega2|\
80         tplink,tl-wa801nd-v5|\
81         widora,neo-16m|\
82         widora,neo-32m)
83                 ucidef_add_switch "switch0"
84                 ucidef_add_switch_attr "switch0" "enable" "false"
85                 ucidef_set_interface_lan "eth0"
86                 ;;
87         netgear,r6120)
88                 ucidef_add_switch "switch0" \
89                         "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
90                 ;;
91         rakwireless,rak633)
92                 ucidef_add_switch "switch0" \
93                         "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
94                 ;;
95         tplink,tl-wr902ac-v3)
96                 ucidef_add_switch "switch0" \
97                         "4:lan" "6@eth0"
98                 ;;
99         vocore,vocore2|\
100         vocore,vocore2-lite)
101                 ucidef_add_switch "switch0" \
102                         "0:lan" "2:lan" "6t@eth0"
103                 ;;
104         wiznet,wizfi630s)
105                 ucidef_add_switch "switch0" \
106                         "0:wan" "3:lan" "4:lan" "6@eth0"
107                 ;;
108         xiaomi,mir4a-100m)
109                 ucidef_add_switch "switch0" \
110                         "4:lan:1" "2:lan:2" "0:wan" "6@eth0"
111                 ;;
112         zbtlink,zbt-we1226)
113                 ucidef_add_switch "switch0" \
114                         "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
115                 ;;
116         *)
117                 ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
118                 ;;
119         esac
120 }
121
122 ramips_setup_macs()
123 {
124         local board="$1"
125         local lan_mac=""
126         local wan_mac=""
127         local label_mac=""
128
129         case $board in
130         buffalo,wcr-1166ds)
131                 local index="$(find_mtd_index "board_data")"
132                 wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
133                 lan_mac=$wan_mac
134                 ;;
135         cudy,wr1000)
136                 wan_mac=$(mtd_get_mac_binary factory 0x2e)
137                 label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
138                 ;;
139         glinet,gl-mt300n-v2)
140                 # This empty case has to be kept for devices without any MAC address adjustments
141                 ;;
142         hilink,hlk-7628n)
143                 lan_mac=$(macaddr_setbit_la "$(cat /sys/class/net/eth0/address)")
144                 wan_mac=$(macaddr_add "$lan_mac" 1)
145                 ;;
146         hiwifi,hc5661a|\
147         hiwifi,hc5761a|\
148         hiwifi,hc5861b)
149                 lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
150                 label_mac=$lan_mac
151                 [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
152                 wan_mac=$(macaddr_add "$lan_mac" 1)
153                 ;;
154         iptime,a3|\
155         iptime,a604m)
156                 wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
157                 ;;
158         mediatek,linkit-smart-7688|\
159         onion,omega2|\
160         onion,omega2p)
161                 wan_mac=$(mtd_get_mac_binary factory 0x4)
162                 lan_mac=$(mtd_get_mac_binary factory 0x2e)
163                 ;;
164         mercury,mac1200r-v2)
165                 wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory_info 0xd)" 1)
166                 ;;
167         skylab,skw92a|\
168         totolink,lr1200)
169                 wan_mac=$(mtd_get_mac_binary factory 0x2e)
170                 ;;
171         vocore,vocore2|\
172         vocore,vocore2-lite)
173                 label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
174                 ;;
175         *)
176                 wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 1)
177                 ;;
178         esac
179
180         [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
181         [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
182         [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
183 }
184
185 board_config_update
186 board=$(board_name)
187 ramips_setup_interfaces $board
188 ramips_setup_macs $board
189 board_config_flush
190
191 exit 0