ipq40xx: utilize nvmem-cells for plasmacloud,pa1200
[openwrt/openwrt.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 meraki,mr33 |\
13 meraki,mr74)
14 caldata_extract_ubi "ART" 0x9000 0x844
15 caldata_valid "4408" || caldata_extract "ART" 0x9000 0x844
16 ;;
17 esac
18 ;;
19 "ath10k/pre-cal-pci-0000:01:00.0.bin")
20 case "$board" in
21 asus,map-ac2200)
22 caldata_extract_ubi "Factory" 0x9000 0x2f20
23 ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
24 /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
25 ;;
26 asus,rt-ac42u)
27 caldata_extract_ubi "Factory" 0x9000 0x2f20
28 ;;
29 avm,fritzrepeater-3000)
30 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
31 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
32 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
33 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
34 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
35 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
36 ;;
37 plasmacloud,pa2200)
38 caldata_extract "0:ART" 0x9000 0x2f20
39 ;;
40 linksys,ea8300 |\
41 linksys,mr8300)
42 caldata_extract "ART" 0x9000 0x2f20
43 # OEM assigns 4 sequential MACs
44 ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4))
45 ;;
46 netgear,rbr50|\
47 netgear,rbs50|\
48 netgear,srr60|\
49 netgear,srs60)
50 caldata_extract_mmc "0:ART" 0x9000 0x2f20
51 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0x12)
52 ;;
53 esac
54 ;;
55 "ath10k/pre-cal-ahb-a000000.wifi.bin")
56 case "$board" in
57 qcom,ap-dk01.1-c1)
58 caldata_extract "ART" 0x1000 0x2f20
59 ;;
60 asus,map-ac2200|\
61 asus,rt-ac42u|\
62 asus,rt-ac58u)
63 caldata_extract_ubi "Factory" 0x1000 0x2f20
64 ;;
65 avm,fritzbox-4040)
66 /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
67 ;;
68 avm,fritzbox-7530 |\
69 avm,fritzrepeater-1200 |\
70 avm,fritzrepeater-3000)
71 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
72 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
73 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
74 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
75 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
76 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
77 ;;
78 cellc,rtl30vw |\
79 plasmacloud,pa2200)
80 caldata_extract "0:ART" 0x1000 0x2f20
81 ;;
82 devolo,magic-2-wifi-next)
83 caldata_extract "ART" 0x1000 0x2f20
84 ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0)
85 ;;
86 dlink,dap-2610)
87 caldata_extract "ART" 0x1000 0x2f20
88 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac)
89 ;;
90 engenius,emd1)
91 caldata_extract "0:ART" 0x1000 0x2f20
92 ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr)
93 ;;
94 engenius,emr3500)
95 caldata_extract "0:ART" 0x1000 0x2f20
96 ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
97 ;;
98 engenius,ens620ext)
99 caldata_extract "ART" 0x1000 0x2f20
100 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2)
101 ;;
102 extreme-networks,ws-ap3915i)
103 caldata_extract "ART" 0x1000 0x2f20
104 ath10k_patch_mac $(mtd_get_mac_ascii CFG1 RADIOADDR0)
105 ;;
106 linksys,ea8300 |\
107 linksys,mr8300)
108 caldata_extract "ART" 0x1000 0x2f20
109 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2)
110 ;;
111 meraki,mr33 |\
112 meraki,mr74)
113 caldata_extract_ubi "ART" 0x1000 0x2f20
114 caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20
115 ;;
116 mikrotik,cap-ac |\
117 mikrotik,hap-ac2 |\
118 mikrotik,hap-ac3 |\
119 mikrotik,hap-ac3-lte6-kit |\
120 mikrotik,wap-ac)
121 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
122 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x0 0x2f20 ) || \
123 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x0 0x2f20 )
124 ;;
125 netgear,rbr50|\
126 netgear,rbs50|\
127 netgear,srr60|\
128 netgear,srs60)
129 caldata_extract_mmc "0:ART" 0x1000 0x2f20
130 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0x0)
131 ;;
132 pakedge,wr-1)
133 caldata_extract "0:ART" 0x1000 0x2f20
134 ath10k_patch_mac $(macaddr_add $(get_mac_label) 2)
135 ;;
136 teltonika,rutx10)
137 caldata_extract "0:ART" 0x1000 0x2f20
138 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 2)
139 ;;
140 sony,ncp-hg100-cellular)
141 caldata_extract_mmc "0:ART" 0x1000 0x2f20
142 ;;
143 zyxel,nbg6617 |\
144 zyxel,wre6606)
145 caldata_extract "ART" 0x1000 0x2f20
146 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
147 ;;
148 esac
149 ;;
150 "ath10k/pre-cal-ahb-a800000.wifi.bin")
151 case "$board" in
152 qcom,ap-dk01.1-c1)
153 caldata_extract "ART" 0x5000 0x2f20
154 ;;
155 asus,map-ac2200|\
156 asus,rt-ac58u)
157 caldata_extract_ubi "Factory" 0x5000 0x2f20
158 ;;
159 avm,fritzbox-4040)
160 /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
161 ;;
162 avm,fritzbox-7530 |\
163 avm,fritzrepeater-1200 |\
164 avm,fritzrepeater-3000)
165 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
166 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
167 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
168 /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
169 /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
170 /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
171 ;;
172 cellc,rtl30vw |\
173 plasmacloud,pa2200)
174 caldata_extract "0:ART" 0x5000 0x2f20
175 ;;
176 devolo,magic-2-wifi-next)
177 caldata_extract "ART" 0x5000 0x2f20
178 ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1)
179 ;;
180 dlink,dap-2610)
181 caldata_extract "ART" 0x5000 0x2f20
182 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
183 ;;
184 engenius,emd1)
185 caldata_extract "0:ART" 0x5000 0x2f20
186 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) 1)
187 ;;
188 engenius,emr3500)
189 caldata_extract "0:ART" 0x5000 0x2f20
190 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) 1)
191 ;;
192 engenius,ens620ext)
193 caldata_extract "ART" 0x5000 0x2f20
194 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 3)
195 ;;
196 extreme-networks,ws-ap3915i)
197 caldata_extract "ART" 0x5000 0x2f20
198 ath10k_patch_mac $(mtd_get_mac_ascii CFG1 RADIOADDR1)
199 ;;
200 linksys,ea8300 |\
201 linksys,mr8300)
202 caldata_extract "ART" 0x5000 0x2f20
203 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
204 ;;
205 meraki,mr33 |\
206 meraki,mr74)
207 caldata_extract_ubi "ART" 0x5000 0x2f20
208 caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
209 ;;
210 mikrotik,cap-ac |\
211 mikrotik,hap-ac2 |\
212 mikrotik,hap-ac3 |\
213 mikrotik,hap-ac3-lte6-kit |\
214 mikrotik,sxtsq-5-ac |\
215 mikrotik,wap-ac)
216 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
217 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x8000 0x2f20 ) || \
218 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x0 0x2f20 )
219 ;;
220 netgear,rbr50|\
221 netgear,rbs50|\
222 netgear,srr60|\
223 netgear,srs60)
224 caldata_extract_mmc "0:ART" 0x5000 0x2f20
225 ath10k_patch_mac $(mmc_get_mac_binary ARTMTD 0xc)
226 ;;
227 pakedge,wr-1)
228 caldata_extract "0:ART" 0x5000 0x2f20
229 ath10k_patch_mac $(macaddr_add $(get_mac_label) 4)
230 ;;
231 teltonika,rutx10)
232 caldata_extract "0:ART" 0x5000 0x2f20
233 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 3)
234 ;;
235 sony,ncp-hg100-cellular)
236 caldata_extract_mmc "0:ART" 0x5000 0x2f20
237 ;;
238 zyxel,nbg6617 |\
239 zyxel,wre6606)
240 caldata_extract "ART" 0x5000 0x2f20
241 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
242 ;;
243 esac
244 ;;
245 "ath10k/QCA4019/hw1.0/board-ahb-a000000.wifi.bin")
246 case "$board" in
247 mikrotik,cap-ac |\
248 mikrotik,hap-ac2 |\
249 mikrotik,hap-ac3 |\
250 mikrotik,hap-ac3-lte6-kit |\
251 mikrotik,wap-ac)
252 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
253 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x2f20 0x2f20 ) || \
254 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x2f20 0x2f20 )
255 ;;
256 esac
257 ;;
258 "ath10k/QCA4019/hw1.0/board-ahb-a800000.wifi.bin")
259 case "$board" in
260 mikrotik,cap-ac |\
261 mikrotik,hap-ac2 |\
262 mikrotik,hap-ac3 |\
263 mikrotik,hap-ac3-lte6-kit |\
264 mikrotik,sxtsq-5-ac |\
265 mikrotik,wap-ac)
266 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
267 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0xaf20 0x2f20 ) || \
268 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x2f20 0x2f20 )
269 ;;
270 esac
271 ;;
272 *)
273 exit 1
274 ;;
275 esac