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")
121 plasmacloud
,pa1200 |\
123 caldata_extract
"0:ART" 0x1000 0x2f20
125 devolo
,magic-2-wifi-next
)
126 caldata_extract
"ART" 0x1000 0x2f20
127 ath10k_patch_mac $
(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0
)
130 caldata_extract
"ART" 0x1000 0x2f20
131 ath10k_patch_mac $
(mtd_get_mac_ascii bdcfg wlanmac
)
134 caldata_extract
"0:ART" 0x1000 0x2f20
135 ath10k_patch_mac $
(mtd_get_mac_ascii
0:APPSBLENV wlanaddr
)
138 caldata_extract
"0:ART" 0x1000 0x2f20
139 ath10k_patch_mac $
(mtd_get_mac_ascii
0:APPSBLENV ethaddr
)
142 caldata_extract
"ART" 0x1000 0x2f20
143 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii u-boot-env ethaddr
) 2)
147 caldata_extract
"ART" 0x1000 0x2f20
148 ath10k_patch_mac $
(macaddr_add
"$(cat /sys/class/net/eth0/address)" 2)
151 caldata_extract_ubi
"ART" 0x1000 0x2f20
152 caldata_valid
"202f" || caldata_extract
"ART" 0x1000 0x2f20
153 ath10k_patch_mac $
(macaddr_add $
(get_mac_binary
"/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 2)
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 )
166 caldata_extract_mmc
"0:ART" 0x1000 0x2f20
167 ath10k_patch_mac $
(mmc_get_mac_binary ARTMTD
0x0)
171 caldata_extract
"ART" 0x1000 0x2f20
172 ath10k_patch_mac $
(macaddr_add $
(cat /sys
/class
/net
/eth
0/address
) -2)
176 "ath10k/pre-cal-ahb-a800000.wifi.bin")
179 caldata_extract
"ART" 0x5000 0x2f20
183 caldata_extract_ubi
"Factory" 0x5000 0x2f20
186 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x400 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader_config")
189 avm
,fritzrepeater-1200 |\
190 avm
,fritzrepeater-3000
)
191 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
192 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
193 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader0") || \
194 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
195 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1") || \
196 /usr
/bin
/fritz_cal_extract
-i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib
/firmware
/$FIRMWARE $
(find_mtd_chardev
"urlader1")
200 plasmacloud
,pa1200 |\
202 caldata_extract
"0:ART" 0x5000 0x2f20
204 devolo
,magic-2-wifi-next
)
205 caldata_extract
"ART" 0x5000 0x2f20
206 ath10k_patch_mac $
(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1
)
209 caldata_extract
"ART" 0x5000 0x2f20
210 ath10k_patch_mac $
(mtd_get_mac_ascii bdcfg wlanmac_a
)
213 caldata_extract
"0:ART" 0x5000 0x2f20
214 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii
0:APPSBLENV wlanaddr
) 1)
217 caldata_extract
"0:ART" 0x5000 0x2f20
218 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii
0:APPSBLENV ethaddr
) 1)
221 caldata_extract
"ART" 0x5000 0x2f20
222 ath10k_patch_mac $
(macaddr_add $
(mtd_get_mac_ascii u-boot-env ethaddr
) 3)
226 caldata_extract
"ART" 0x5000 0x2f20
227 ath10k_patch_mac $
(macaddr_add
"$(cat /sys/class/net/eth0/address)" 3)
230 caldata_extract_ubi
"ART" 0x5000 0x2f20
231 caldata_valid
"202f" || caldata_extract
"ART" 0x5000 0x2f20
232 ath10k_patch_mac $
(macaddr_add $
(get_mac_binary
"/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 3)
238 wlan_data
="/sys/firmware/mikrotik/hard_config/wlan_data"
239 ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data" 0x8000 0x2f20 ) || \
240 ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file
"$wlan_data/data_2" 0x0 0x2f20 )
246 caldata_extract_mmc
"0:ART" 0x5000 0x2f20
247 ath10k_patch_mac $
(mmc_get_mac_binary ARTMTD
0xc)
251 caldata_extract
"ART" 0x5000 0x2f20
252 ath10k_patch_mac $
(macaddr_add $
(cat /sys
/class
/net
/eth
0/address
) -1)
256 "ath10k/QCA4019/hw1.0/board-2.bin")
262 board2_create_for_mikrotik