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