ipq40xx: add support for ASUS RT-ACRH17/RT-AC42U
[openwrt/staging/jow.git] / target / linux / ipq40xx / base-files / etc / hotplug.d / firmware / 11-ath10k-caldata
1 #!/bin/sh
2
3 [ -e /lib/firmware/$FIRMWARE ] && exit 0
4
5 . /lib/functions/caldata.sh
6
7 board=$(board_name)
8
9 case "$FIRMWARE" in
10 "ath10k/cal-pci-0000:01:00.0.bin")
11 case "$board" in
12 glinet,gl-b2200)
13 caldata_extract "ART" 0x9000 0x2f20
14 ;;
15 meraki,mr33)
16 caldata_extract_ubi "ART" 0x9000 0x844
17 caldata_valid "4408" || caldata_extract "ART" 0x9000 0x844
18 ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 1)
19 ;;
20 esac
21 ;;
22 "ath10k/pre-cal-pci-0000:01:00.0.bin")
23 case "$board" in
24 asus,map-ac2200)
25 caldata_extract_ubi "Factory" 0x9000 0x2f20
26 ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
27 /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
28 ;;
29 asus,rt-ac42u)
30 caldata_extract_ubi "Factory" 0x9000 0x2f20
31 ;;
32 avm,fritzrepeater-3000)
33 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
34 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
35 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
36 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
37 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
38 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
39 ;;
40 buffalo,wtr-m2133hp)
41 caldata_extract "ART" 0x9000 0x2f20
42 ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32)
43 ;;
44 engenius,eap2200 |\
45 openmesh,a62 |\
46 plasmacloud,pa2200)
47 caldata_extract "0:ART" 0x9000 0x2f20
48 ;;
49 linksys,ea8300 |\
50 linksys,mr8300)
51 caldata_extract "ART" 0x9000 0x2f20
52 # OEM assigns 4 sequential MACs
53 ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4))
54 ;;
55 netgear,rbr50|\
56 netgear,rbs50|\
57 netgear,srr60|\
58 netgear,srs60)
59 caldata_extract_mmc "0:ART" 0x9000 0x2f20
60 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0x12)
61 ;;
62 esac
63 ;;
64 "ath10k/pre-cal-ahb-a000000.wifi.bin")
65 case "$board" in
66 8dev,habanero-dvk |\
67 8dev,jalapeno |\
68 alfa-network,ap120c-ac |\
69 cilab,meshpoint-one |\
70 glinet,gl-ap1300 |\
71 glinet,gl-b1300 |\
72 glinet,gl-b2200 |\
73 glinet,gl-s1300 |\
74 linksys,ea6350v3 |\
75 mobipromo,cm520-79f |\
76 p2w,r619ac-64m |\
77 p2w,r619ac-128m |\
78 qcom,ap-dk01.1-c1)
79 caldata_extract "ART" 0x1000 0x2f20
80 ;;
81 aruba,ap-303 |\
82 aruba,ap-303h |\
83 aruba,ap-365)
84 caldata_extract "ART" 0x1000 0x2f20
85 ath10k_patch_mac $(mtd_get_mac_binary mfginfo 0x1D)
86 ;;
87 asus,map-ac2200 |\
88 asus,rt-ac42u |\
89 asus,rt-ac58u)
90 caldata_extract_ubi "Factory" 0x1000 0x2f20
91 ;;
92 avm,fritzbox-4040)
93 /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
94 ;;
95 avm,fritzbox-7530 |\
96 avm,fritzrepeater-1200 |\
97 avm,fritzrepeater-3000)
98 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
99 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
100 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
101 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
102 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
103 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
104 ;;
105 buffalo,wtr-m2133hp)
106 caldata_extract "ART" 0x1000 0x2f20
107 ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x26)
108 ;;
109 cellc,rtl30vw |\
110 compex,wpj419 |\
111 compex,wpj428 |\
112 edgecore,ecw5211 |\
113 edgecore,oap100 |\
114 engenius,eap1300 |\
115 engenius,eap2200 |\
116 luma,wrtq-329acn|\
117 openmesh,a42 |\
118 openmesh,a62 |\
119 plasmacloud,pa1200 |\
120 plasmacloud,pa2200 |\
121 qxwlan,e2600ac-c1 |\
122 qxwlan,e2600ac-c2 |\
123 unielec,u4019-32m)
124 caldata_extract "0:ART" 0x1000 0x2f20
125 ;;
126 devolo,magic-2-wifi-next)
127 caldata_extract "ART" 0x1000 0x2f20
128 ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0)
129 ;;
130 dlink,dap-2610)
131 caldata_extract "ART" 0x1000 0x2f20
132 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac)
133 ;;
134 engenius,emd1)
135 caldata_extract "0:ART" 0x1000 0x2f20
136 ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr)
137 ;;
138 engenius,emr3500)
139 caldata_extract "0:ART" 0x1000 0x2f20
140 ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
141 ;;
142 engenius,ens620ext)
143 caldata_extract "ART" 0x1000 0x2f20
144 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2)
145 ;;
146 linksys,ea8300 |\
147 linksys,mr8300)
148 caldata_extract "ART" 0x1000 0x2f20
149 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2)
150 ;;
151 meraki,mr33)
152 caldata_extract_ubi "ART" 0x1000 0x2f20
153 caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20
154 ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 2)
155 ;;
156 mikrotik,hap-ac2 |\
157 mikrotik,hap-ac3)
158 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
159 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x0 0x2f20 ) || \
160 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x0 0x2f20 )
161 ;;
162 netgear,rbr50|\
163 netgear,rbs50|\
164 netgear,srr60|\
165 netgear,srs60)
166 caldata_extract_mmc "0:ART" 0x1000 0x2f20
167 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0x0)
168 ;;
169 netgear,wac510)
170 caldata_extract "0:ART" 0x1000 0x2f20
171 ath10k_patch_mac $(mtd_get_mac_binary "0:MANUDATA" 0x6)
172 ;;
173 teltonika,rutx10)
174 caldata_extract "0:ART" 0x1000 0x2f20
175 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 2)
176 ;;
177 zyxel,nbg6617 |\
178 zyxel,wre6606)
179 caldata_extract "ART" 0x1000 0x2f20
180 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
181 ;;
182 esac
183 ;;
184 "ath10k/pre-cal-ahb-a800000.wifi.bin")
185 case "$board" in
186 8dev,habanero-dvk |\
187 8dev,jalapeno |\
188 alfa-network,ap120c-ac |\
189 cilab,meshpoint-one |\
190 glinet,gl-ap1300 |\
191 glinet,gl-b1300 |\
192 glinet,gl-b2200 |\
193 glinet,gl-s1300 |\
194 linksys,ea6350v3 |\
195 mobipromo,cm520-79f |\
196 p2w,r619ac-64m |\
197 p2w,r619ac-128m |\
198 qcom,ap-dk01.1-c1)
199 caldata_extract "ART" 0x5000 0x2f20
200 ;;
201 aruba,ap-303 |\
202 aruba,ap-303h |\
203 aruba,ap-365)
204 caldata_extract "ART" 0x5000 0x2f20
205 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mfginfo 0x1D) 1)
206 ;;
207 asus,map-ac2200 |\
208 asus,rt-ac58u)
209 caldata_extract_ubi "Factory" 0x5000 0x2f20
210 ;;
211 avm,fritzbox-4040)
212 /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
213 ;;
214 avm,fritzbox-7530 |\
215 avm,fritzrepeater-1200 |\
216 avm,fritzrepeater-3000)
217 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
218 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
219 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
220 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
221 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
222 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
223 ;;
224 buffalo,wtr-m2133hp)
225 caldata_extract "ART" 0x5000 0x2f20
226 ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x2c)
227 ;;
228 cellc,rtl30vw |\
229 compex,wpj419 |\
230 compex,wpj428 |\
231 edgecore,ecw5211 |\
232 edgecore,oap100 |\
233 engenius,eap1300 |\
234 engenius,eap2200 |\
235 luma,wrtq-329acn|\
236 openmesh,a42 |\
237 openmesh,a62 |\
238 plasmacloud,pa1200 |\
239 plasmacloud,pa2200 |\
240 qxwlan,e2600ac-c1 |\
241 qxwlan,e2600ac-c2 |\
242 unielec,u4019-32m)
243 caldata_extract "0:ART" 0x5000 0x2f20
244 ;;
245 devolo,magic-2-wifi-next)
246 caldata_extract "ART" 0x5000 0x2f20
247 ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1)
248 ;;
249 dlink,dap-2610)
250 caldata_extract "ART" 0x5000 0x2f20
251 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
252 ;;
253 engenius,emd1)
254 caldata_extract "0:ART" 0x5000 0x2f20
255 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) 1)
256 ;;
257 engenius,emr3500)
258 caldata_extract "0:ART" 0x5000 0x2f20
259 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) 1)
260 ;;
261 engenius,ens620ext)
262 caldata_extract "ART" 0x5000 0x2f20
263 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 3)
264 ;;
265 linksys,ea8300 |\
266 linksys,mr8300)
267 caldata_extract "ART" 0x5000 0x2f20
268 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
269 ;;
270 meraki,mr33)
271 caldata_extract_ubi "ART" 0x5000 0x2f20
272 caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
273 ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 3)
274 ;;
275 mikrotik,hap-ac2 |\
276 mikrotik,hap-ac3 |\
277 mikrotik,sxtsq-5-ac)
278 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
279 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x8000 0x2f20 ) || \
280 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x0 0x2f20 )
281 ;;
282 netgear,rbr50|\
283 netgear,rbs50|\
284 netgear,srr60|\
285 netgear,srs60)
286 caldata_extract_mmc "0:ART" 0x5000 0x2f20
287 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0xc)
288 ;;
289 netgear,wac510)
290 caldata_extract "0:ART" 0x5000 0x2f20
291 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:MANUDATA" 0x6) 16)
292 ;;
293 teltonika,rutx10)
294 caldata_extract "0:ART" 0x5000 0x2f20
295 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 3)
296 ;;
297 zyxel,nbg6617 |\
298 zyxel,wre6606)
299 caldata_extract "ART" 0x5000 0x2f20
300 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
301 ;;
302 esac
303 ;;
304 *)
305 exit 1
306 ;;
307 esac