ramips: mt7621: add support for ZyXEL WSM20
[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 cudy,x6)
31 hw_mac_addr="$(mtd_get_mac_binary bdinfo 0xde00)"
32 [ "$PHYNBR" = "1" ] && \
33 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
34 ;;
35 dlink,dap-x1860-a1)
36 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
37 [ "$PHYNBR" = "0" ] && \
38 macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
39 [ "$PHYNBR" = "1" ] && \
40 macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
41 ;;
42 dlink,dir-853-a1)
43 lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
44 [ "$PHYNBR" = "0" ] && \
45 macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
46 [ "$PHYNBR" = "1" ] && \
47 macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
48 ;;
49 dlink,dir-853-a3)
50 [ "$PHYNBR" = "0" ] && \
51 macaddr_setbit_la "$(mtd_get_mac_binary factory 0xe000)" \
52 > /sys${DEVPATH}/macaddress
53 ;;
54 dlink,dir-853-r1|\
55 phicomm,k2p)
56 if [ "$PHYNBR" = "0" ]; then
57 base_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -1)
58 macaddr_setbit_la "$base_mac" > /sys${DEVPATH}/macaddress
59 fi
60 ;;
61 glinet,gl-mt1300)
62 [ "$PHYNBR" = "1" ] && \
63 macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1 > /sys${DEVPATH}/macaddress
64 ;;
65 h3c,tx1800-plus|\
66 h3c,tx1801-plus|\
67 h3c,tx1806)
68 addr=$(macaddr_setbit $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 7)
69 [ "$PHYNBR" = "0" ] && echo -n ${addr:0:9}'1'${addr:10:7} > /sys${DEVPATH}/macaddress
70 [ "$PHYNBR" = "1" ] && echo -n ${addr:0:9}'7'${addr:10:7} > /sys${DEVPATH}/macaddress
71 ;;
72 haier,har-20s2u1|\
73 jcg,y2|\
74 sim,simax1800t)
75 [ "$PHYNBR" = "1" ] && \
76 macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
77 ;;
78 hiwifi,hc5962)
79 label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
80 [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
81 echo -n "$label_mac" > /sys${DEVPATH}/macaddress
82 [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
83 macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
84 ;;
85 iptime,a3002mesh|\
86 iptime,a3004t)
87 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
88 [ "$PHYNBR" = "0" ] && \
89 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
90 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
91 ;;
92 iptime,ax2004m)
93 if [ "$PHYNBR" = "1" ]; then
94 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
95 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
96 fi
97 ;;
98 jcg,q20)
99 [ "$PHYNBR" = "1" ] && \
100 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress
101 ;;
102 linksys,e5600|\
103 linksys,ea6350-v4|\
104 linksys,ea7300-v1|\
105 linksys,ea7300-v2|\
106 linksys,ea7500-v2|\
107 linksys,ea8100-v1|\
108 linksys,ea8100-v2)
109 hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
110 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
111 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
112 ;;
113 belkin,rt1800|\
114 linksys,e7350)
115 hw_mac_addr=$(mtd_get_mac_ascii Config wan_hwaddr)
116 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
117 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
118 ;;
119 netgear,wax202)
120 hw_mac_addr=$(mtd_get_mac_ascii Config mac)
121 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
122 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
123 ;;
124 mercusys,mr70x-v1|\
125 tplink,archer-ax23-v1)
126 hw_mac_addr="$(mtd_get_mac_binary config 0x8)"
127 [ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" -1 > "/sys${DEVPATH}/macaddress"
128 ;;
129 mts,wg430223)
130 hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
131 [ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
132 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 26)
133 hw_mac_addr=$(macaddr_setbit $hw_mac_addr 27)
134 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
135 [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
136 ;;
137 oraybox,x3a)
138 if [ "$PHYNBR" = "1" ]; then
139 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
140 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
141 fi
142 ;;
143 raisecom,msg1500-x-00)
144 [ "$PHYNBR" = "0" ] && \
145 macaddr_setbit_la "$(get_mac_label)" > /sys${DEVPATH}/macaddress
146 ;;
147 snr,snr-cpe-me2-sfp)
148 hw_mac_addr="$(mtd_get_mac_binary factory 0x8004)"
149 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
150 ;;
151 tenbay,t-mb5eu-v01)
152 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
153 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr "0x100000" > /sys${DEVPATH}/macaddress
154 ;;
155 totolink,x5000r)
156 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
157 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
158 ;;
159 tplink,eap615-wall-v1)
160 hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
161 macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
162 ;;
163 tplink,ec330-g5u-v1)
164 hw_mac_addr="$(mtd_get_mac_text factory 0x165)"
165 [ "$PHYNBR" = "0" ] && echo -n $hw_mac_addr > /sys${DEVPATH}/macaddress
166 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
167 ;;
168 yuncore,ax820)
169 [ "$PHYNBR" = "1" ] && \
170 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress
171 ;;
172 yuncore,fap640|\
173 yuncore,fap690)
174 hw_mac_addr="$(mtd_get_mac_binary Factory 0x4)"
175 [ "$PHYNBR" = "0" ] && macaddr_setbit_la "$hw_mac_addr" > /sys${DEVPATH}/macaddress
176 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
177 ;;
178 zyxel,nwa50ax|\
179 zyxel,nwa55axe)
180 hw_mac_addr="$(mtd_get_mac_binary mrd 0x1fff8)"
181 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
182 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
183 ;;
184 zyxel,wsm20)
185 hw_mac_addr="$(mtd_get_mac_binary Factory 0x1fdfa)"
186 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
187 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
188 ;;
189 esac