mediatek: improve reliability of Fidelix/Dosilicon SPI-NAND
[openwrt/openwrt.git] / target / linux / ramips / mt7621 / base-files / etc / hotplug.d / ieee80211 / 10_fix_wifi_mac
1 [ "$ACTION" == "add" ] || exit 0
2
3 PHYNBR=${DEVPATH##*/phy}
4
5 [ -n $PHYNBR ] || exit 0
6
7 . /lib/functions.sh
8 . /lib/functions/system.sh
9
10 board=$(board_name)
11
12 case "$board" in
13 arcadyan,we420223-99)
14 if [ "$PHYNBR" = "0" ]; then
15 mac24=$(macaddr_add "$(get_mac_label)" "0xf00001")
16 echo -n "$mac24" > /sys${DEVPATH}/macaddress
17 elif [ "$PHYNBR" = "1" ]; then
18 mac5=$(macaddr_add "$(get_mac_label)" 1)
19 echo -n "$mac5" > /sys${DEVPATH}/macaddress
20 fi
21 ;;
22 beeline,smartbox-flash)
23 hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
24 [ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
25 hw_mac_addr=$(macaddr_setbit $hw_mac_addr 26)
26 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 27)
27 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
28 [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
29 ;;
30 buffalo,wsr-2533dhpls)
31 lan_mac_addr=$(mtd_get_mac_ascii board_data "mac")
32 [ "$PHYNBR" = "0" ] && \
33 macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
34 [ "$PHYNBR" = "1" ] && \
35 macaddr_add $lan_mac_addr 8 > /sys${DEVPATH}/macaddress
36 ;;
37 comfast,cf-e390ax)
38 [ "$PHYNBR" = "0" ] && echo -n "$(mtd_get_mac_binary factory 0x0004)" > /sys${DEVPATH}/macaddress
39 [ "$PHYNBR" = "1" ] && echo -n "$(mtd_get_mac_binary factory 0x8004)" > /sys${DEVPATH}/macaddress
40 ;;
41 cudy,x6-v1|\
42 cudy,x6-v2)
43 hw_mac_addr="$(mtd_get_mac_binary bdinfo 0xde00)"
44 [ "$PHYNBR" = "1" ] && \
45 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
46 ;;
47 dlink,dap-1620-b1|\
48 dlink,dir-853-a1|\
49 dlink,dra-1360-a1)
50 lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
51 [ "$PHYNBR" = "0" ] && \
52 macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
53 [ "$PHYNBR" = "1" ] && \
54 macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
55 ;;
56 dlink,covr-x1860-a1)
57 label_mac=$(mtd_get_mac_ascii config2 factory_mac)
58 [ "$PHYNBR" = "0" ] && \
59 macaddr_add $label_mac 1 > /sys${DEVPATH}/macaddress
60 [ "$PHYNBR" = "1" ] && \
61 macaddr_add $label_mac 2 > /sys${DEVPATH}/macaddress
62 ;;
63 dlink,dap-x1860-a1)
64 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
65 [ "$PHYNBR" = "0" ] && \
66 macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
67 [ "$PHYNBR" = "1" ] && \
68 macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
69 ;;
70 dlink,dir-3040-a1)
71 lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
72 [ "$PHYNBR" = "0" ] && \
73 macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
74 ;;
75 dlink,dir-853-a3)
76 [ "$PHYNBR" = "0" ] && \
77 macaddr_setbit_la "$(mtd_get_mac_binary factory 0xe000)" \
78 > /sys${DEVPATH}/macaddress
79 ;;
80 dlink,dir-853-r1|\
81 phicomm,k2p)
82 if [ "$PHYNBR" = "0" ]; then
83 base_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -1)
84 macaddr_setbit_la "$base_mac" > /sys${DEVPATH}/macaddress
85 fi
86 ;;
87 glinet,gl-mt1300|\
88 z-router,zr-2660)
89 [ "$PHYNBR" = "1" ] && \
90 macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1 > /sys${DEVPATH}/macaddress
91 ;;
92 h3c,tx1800-plus|\
93 h3c,tx1801-plus|\
94 h3c,tx1806)
95 addr=$(macaddr_setbit $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 7)
96 [ "$PHYNBR" = "0" ] && echo -n ${addr:0:9}'1'${addr:10:7} > /sys${DEVPATH}/macaddress
97 [ "$PHYNBR" = "1" ] && echo -n ${addr:0:9}'7'${addr:10:7} > /sys${DEVPATH}/macaddress
98 ;;
99 haier,har-20s2u1|\
100 jcg,y2|\
101 sim,simax1800t)
102 [ "$PHYNBR" = "1" ] && \
103 macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
104 ;;
105 hiwifi,hc5962)
106 label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
107 [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
108 echo -n "$label_mac" > /sys${DEVPATH}/macaddress
109 [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
110 macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
111 ;;
112 iptime,a3002mesh|\
113 iptime,a3004t)
114 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
115 [ "$PHYNBR" = "0" ] && \
116 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
117 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
118 ;;
119 iptime,ax2004m)
120 if [ "$PHYNBR" = "1" ]; then
121 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
122 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
123 fi
124 ;;
125 jcg,q20)
126 [ "$PHYNBR" = "1" ] && \
127 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress
128 ;;
129 linksys,e5600|\
130 linksys,ea6350-v4|\
131 linksys,ea7300-v1|\
132 linksys,ea7300-v2|\
133 linksys,ea7500-v2|\
134 linksys,ea8100-v1|\
135 linksys,ea8100-v2)
136 hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
137 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
138 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
139 ;;
140 belkin,rt1800|\
141 linksys,e7350)
142 hw_mac_addr=$(mtd_get_mac_ascii Config wan_hwaddr)
143 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
144 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
145 ;;
146 netgear,eax12)
147 hw_mac_addr=$(mtd_get_mac_ascii Config mac)
148 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
149 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
150 ;;
151 netgear,wax202)
152 hw_mac_addr=$(mtd_get_mac_ascii Config mac)
153 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
154 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
155 ;;
156 mercusys,mr70x-v1|\
157 tplink,archer-ax23-v1)
158 hw_mac_addr="$(mtd_get_mac_binary config 0x8)"
159 [ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" -1 > "/sys${DEVPATH}/macaddress"
160 ;;
161 mts,wg430223)
162 hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
163 [ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
164 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 26)
165 hw_mac_addr=$(macaddr_setbit $hw_mac_addr 27)
166 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
167 [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
168 ;;
169 oraybox,x3a)
170 if [ "$PHYNBR" = "1" ]; then
171 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
172 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
173 fi
174 ;;
175 raisecom,msg1500-x-00)
176 [ "$PHYNBR" = "0" ] && \
177 macaddr_setbit_la "$(get_mac_label)" > /sys${DEVPATH}/macaddress
178 ;;
179 snr,snr-cpe-me2-sfp)
180 hw_mac_addr="$(mtd_get_mac_binary factory 0x8004)"
181 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
182 ;;
183 tenbay,t-mb5eu-v01)
184 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
185 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr "0x100000" > /sys${DEVPATH}/macaddress
186 ;;
187 totolink,x5000r)
188 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
189 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
190 ;;
191 tplink,eap613-v1|\
192 tplink,eap615-wall-v1)
193 hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
194 macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
195 ;;
196 tplink,ex220-v1)
197 hw_mac_addr="$(mtd_get_mac_binary rom_file 0xf100)"
198 [ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" 2 > "/sys${DEVPATH}/macaddress"
199 ;;
200 yuncore,ax820|\
201 yuncore,g720)
202 [ "$PHYNBR" = "1" ] && \
203 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress
204 ;;
205 yuncore,fap640|\
206 yuncore,fap690)
207 hw_mac_addr="$(mtd_get_mac_binary Factory 0x4)"
208 [ "$PHYNBR" = "0" ] && macaddr_setbit_la "$hw_mac_addr" > /sys${DEVPATH}/macaddress
209 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
210 ;;
211 zyxel,nwa50ax|\
212 zyxel,nwa55axe)
213 hw_mac_addr="$(mtd_get_mac_binary mrd 0x1fff8)"
214 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
215 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
216 ;;
217 zyxel,wsm20)
218 hw_mac_addr="$(mtd_get_mac_binary Factory 0x1fdfa)"
219 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
220 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
221 ;;
222 esac