3 [ -e /lib
/firmware
/$FIRMWARE ] && exit 0
5 .
/lib
/functions
/caldata.sh
12 local offset
="$(($2))"
15 local id
=$
(dd iflag
=skip_bytes
if="$file" bs
=1 count
=1 skip
=$
((offset
+32)) |
hexdump -e '1/1 "%02d"')
17 # Qualcomm IDs are in the range of 16 to 30 it seems - taken from the board-2.bin
18 # This is there to skip the missing 2G on the SXTSQ 5 AC
19 [ "$id" -ge 16 -a "$id" -le 30 ] ||
return 0
21 printf "\x00\x00\x00\x00\x58\x2f\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00"
22 printf "bus=ahb,bmi-chip-id=0,bmi-board-id=${id}\x00\x00\x00"
23 printf "\x01\x00\x00\x00\x20\x2f\x00\x00"
25 dd iflag
=skip_bytes
,fullblock
if="$file" bs
="$size" count
=1 skip
="$offset" >> "/lib/firmware/$FIRMWARE"
28 board2_create_for_mikrotik
()
30 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
32 [ -f "$wlan_data" ] && {
34 printf "QCA-ATH10K-BOARD\x00\x00\x00\x00"
35 board2_add_entry
"$wlan_data" 0x2f20 0x2f20
36 board2_add_entry
"$wlan_data" 0xaf20 0x2f20
37 ) >> "/lib/firmware/$FIRMWARE"
40 [ -d "$wlan_data" ] && {
42 printf "QCA-ATH10K-BOARD\x00\x00\x00\x00"
43 board2_add_entry
"$wlan_data/data_0" 0x2f20 0x2f20
44 board2_add_entry
"$wlan_data/data_2" 0x2f20 0x2f20
45 ) >> "/lib/firmware/$FIRMWARE"
50 "ath10k/cal-pci-0000:01:00.0.bin")
53 caldata_extract_ubi
"ART" 0x9000 0x844
54 caldata_valid
"4408" || caldata_extract
"ART" 0x9000 0x844
55 ath10k_patch_mac $
(macaddr_add $
(get_mac_binary
"/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 1)
59 "ath10k/pre-cal-pci-0000:01:00.0.bin")
62 caldata_extract_ubi
"Factory" 0x9000 0x2f20
63 ln -sf /lib
/firmware
/ath10k
/pre-cal-pci-0000\
:00\
:00.0.bin \
64 /lib
/firmware
/ath10k
/QCA9888
/hw2.0
/board.bin
67 caldata_extract_ubi
"Factory" 0x9000 0x2f20
69 avm
,fritzrepeater-3000
)
70 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
71 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
72 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
73 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
74 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
75 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1")
79 caldata_extract
"0:ART" 0x9000 0x2f20
83 caldata_extract
"ART" 0x9000 0x2f20
84 # OEM assigns 4 sequential MACs
85 ath10k_patch_mac $
(macaddr_setbit_la $
(macaddr_add
"$(cat /sys/class/net/eth0/address)" 4))
91 caldata_extract_mmc
"0:ART" 0x9000 0x2f20
92 ath10k_patch_mac $
(mmc_get_mac_binary ARTMTD
0x12)
96 "ath10k/pre-cal-ahb-a000000.wifi.bin")
99 caldata_extract
"ART" 0x1000 0x2f20
104 caldata_extract_ubi
"Factory" 0x1000 0x2f20
107 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x400 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader_config")
110 avm
,fritzrepeater-1200 |\
111 avm
,fritzrepeater-3000
)
112 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
113 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
114 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
115 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
116 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
117 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1")
122 plasmacloud
,pa1200 |\
124 caldata_extract
"0:ART" 0x1000 0x2f20
126 devolo
,magic-2-wifi-next
)
127 caldata_extract
"ART" 0x1000 0x2f20
128 ath10k_patch_mac $
(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0
)
131 caldata_extract
"ART" 0x1000 0x2f20
132 ath10k_patch_mac $
(mtd_get_mac_ascii bdcfg wlanmac
)
135 caldata_extract
"0:ART" 0x1000 0x2f20
136 ath10k_patch_mac $
(mtd_get_mac_ascii
0:APPSBLENV wlanaddr
)
139 caldata_extract
"0:ART" 0x1000 0x2f20
140 ath10k_patch_mac $
(mtd_get_mac_ascii
0:APPSBLENV ethaddr
)
143 caldata_extract
"ART" 0x1000 0x2f20
144 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii u-boot-env ethaddr
) 2)
148 caldata_extract
"ART" 0x1000 0x2f20
149 ath10k_patch_mac $
(macaddr_add
"$(cat /sys/class/net/eth0/address)" 2)
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)
159 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
160 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data" 0x0 0x2f20 ) || \
161 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data/data_0" 0x0 0x2f20 )
167 caldata_extract_mmc
"0:ART" 0x1000 0x2f20
168 ath10k_patch_mac $
(mmc_get_mac_binary ARTMTD
0x0)
172 caldata_extract
"ART" 0x1000 0x2f20
173 ath10k_patch_mac $
(macaddr_add $
(cat /sys
/class
/net
/eth
0/address
) -2)
177 "ath10k/pre-cal-ahb-a800000.wifi.bin")
180 caldata_extract
"ART" 0x5000 0x2f20
184 caldata_extract_ubi
"Factory" 0x5000 0x2f20
187 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x400 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader_config")
190 avm
,fritzrepeater-1200 |\
191 avm
,fritzrepeater-3000
)
192 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
193 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
194 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
195 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
196 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
197 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1")
202 plasmacloud
,pa1200 |\
204 caldata_extract
"0:ART" 0x5000 0x2f20
206 devolo
,magic-2-wifi-next
)
207 caldata_extract
"ART" 0x5000 0x2f20
208 ath10k_patch_mac $
(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1
)
211 caldata_extract
"ART" 0x5000 0x2f20
212 ath10k_patch_mac $
(mtd_get_mac_ascii bdcfg wlanmac_a
)
215 caldata_extract
"0:ART" 0x5000 0x2f20
216 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii
0:APPSBLENV wlanaddr
) 1)
219 caldata_extract
"0:ART" 0x5000 0x2f20
220 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii
0:APPSBLENV ethaddr
) 1)
223 caldata_extract
"ART" 0x5000 0x2f20
224 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii u-boot-env ethaddr
) 3)
228 caldata_extract
"ART" 0x5000 0x2f20
229 ath10k_patch_mac $
(macaddr_add
"$(cat /sys/class/net/eth0/address)" 3)
232 caldata_extract_ubi
"ART" 0x5000 0x2f20
233 caldata_valid
"202f" || caldata_extract
"ART" 0x5000 0x2f20
234 ath10k_patch_mac $
(macaddr_add $
(get_mac_binary
"/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 3)
240 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
241 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data" 0x8000 0x2f20 ) || \
242 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data/data_2" 0x0 0x2f20 )
248 caldata_extract_mmc
"0:ART" 0x5000 0x2f20
249 ath10k_patch_mac $
(mmc_get_mac_binary ARTMTD
0xc)
253 caldata_extract
"ART" 0x5000 0x2f20
254 ath10k_patch_mac $
(macaddr_add $
(cat /sys
/class
/net
/eth
0/address
) -1)
258 "ath10k/QCA4019/hw1.0/board-ahb-a000000.wifi.bin")
263 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
264 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data" 0x2f20 0x2f20 ) || \
265 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data/data_0" 0x2f20 0x2f20 )
269 "ath10k/QCA4019/hw1.0/board-ahb-a800000.wifi.bin")
275 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
276 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data" 0xaf20 0x2f20 ) || \
277 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data/data_2" 0x2f20 0x2f20 )
281 "ath10k/QCA4019/hw1.0/board-2.bin")
287 board2_create_for_mikrotik