OpenWrt – Blame information for rev 4

Subversion Repositories:
Rev:
Rev Author Line No. Line
4 office 1 #!/bin/sh
2  
3 ath10kcal_die() {
4 echo "ath10cal: " "$*"
5 exit 1
6 }
7  
8 ath10kcal_from_file() {
9 local source=$1
10 local offset=$2
11 local count=$3
12  
13 dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
14 ath10kcal_die "failed to extract calibration data from $source"
15 }
16  
17 ath10kcal_extract() {
18 local part=$1
19 local offset=$2
20 local count=$3
21 local mtd cal_size
22 mtd=$(find_mtd_chardev $part)
23 [ -n "$mtd" ] || \
24 ath10kcal_die "no mtd device found for partition $part"
25  
26 # Check that the calibration data size in header equals the desired size
27 cal_size=$(dd if=$mtd bs=2 count=1 skip=$(( $offset / 2 )) conv=swab 2>/dev/null | hexdump -ve '1/2 "%d"')
28 [ "$count" = "$cal_size" ] || \
29 ath10kcal_die "no calibration data found in $part"
30 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
31 ath10kcal_die "failed to extract calibration data from $mtd"
32 }
33  
34 ath10kcal_patch_mac() {
35 local mac=$1
36  
37 [ -z "$mac" ] && return
38  
39 macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
40 }
41  
42 [ -e /lib/firmware/$FIRMWARE ] && exit 0
43  
44 . /lib/functions.sh
45 . /lib/functions/system.sh
46  
47 board=$(board_name)
48  
49 case "$FIRMWARE" in
50 "ath10k/cal-pci-0000:00:00.0.bin")
51 case $board in
52 a40|\
53 a60|\
54 mr1750|\
55 mr1750v2|\
56 om5p-acv2)
57 ath10kcal_extract "ART" 20480 2116
58 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
59 ;;
60 archer-c25-v1|\
61 tl-wdr6500-v2)
62 ath10kcal_extract "art" 20480 2116
63 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
64 ;;
65 archer-c7-v4|\
66 archer-c7-v5)
67 ath10kcal_extract "art" 20480 2116
68 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
69 ;;
70 cf-e355ac-v1|\
71 cf-e380ac-v1|\
72 cf-e380ac-v2|\
73 dlan-pro-1200-ac|\
74 e1700ac-v2|\
75 e600gac-v2|\
76 oolite-v5.2|\
77 oolite-v5.2-dev|\
78 sr3200|\
79 xd3200)
80 ath10kcal_extract "art" 20480 2116
81 ;;
82 dap-2695-a1)
83 ath10kcal_extract "radiocfg" 20480 2116
84 ath10kcal_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
85 ;;
86 dir-869-a1|\
87 qihoo-c301)
88 ath10kcal_extract "radiocfg" 20480 2116
89 ath10kcal_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
90 ;;
91 dw33d)
92 ath10kcal_extract "art" 20480 2116
93 ath10kcal_patch_mac $(mtd_get_mac_binary art 18)
94 ;;
95 epg5000|\
96 esr1750)
97 ath10kcal_extract "caldata" 20480 2116
98 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
99 ;;
100 gl-mifi-v3|\
101 gl-x750)
102 ath10kcal_extract "art" 20480 2116
103 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +3)
104 ;;
105 gl-ar750s|\
106 gl-ar750|\
107 tl-wpa8630)
108 ath10kcal_extract "art" 20480 2116
109 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
110 ;;
111 koala)
112 ath10kcal_extract "art" 20480 2116
113 ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 12) +0)
114 ;;
115 mc-mac1200r)
116 ath10kcal_extract "art" 20480 2116
117 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
118 ;;
119 r6100)
120 ath10kcal_extract "caldata" 20480 2116
121 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) +2)
122 ;;
123 rb-952ui-5ac2nd|\
124 rb-wapg-5hact2hnd)
125 ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
126 ;;
127 re355|\
128 re450|\
129 tl-wr902ac-v1)
130 ath10kcal_extract "art" 20480 2116
131 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
132 ;;
133 unifiac-lite|\
134 unifiac-pro)
135 ath10kcal_extract "EEPROM" 20480 2116
136 ;;
137 wi2a-ac200i)
138 ath10kcal_extract "ART" 20480 2116
139 ;;
140 esac
141 ;;
142 "ath10k/cal-pci-0000:01:00.0.bin")
143 case $board in
144 archer-c5|\
145 archer-c7)
146 ath10kcal_extract "art" 20480 2116
147 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
148 ;;
149 nbg6616|\
150 nbg6716)
151 ath10kcal_extract "RFdata" 20480 2116
152 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
153 ;;
154 om5p-ac)
155 ath10kcal_extract "ART" 20480 2116
156 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
157 ;;
158 rb-911g-5hpacd|\
159 rb-921gs-5hpacd-r2|\
160 rb-962uigs-5hact2hnt)
161 ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
162 ;;
163 wlr8100)
164 ath10kcal_extract "art" 20480 2116
165 ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
166 ;;
167 esac
168 ;;
169 "ath10k/pre-cal-pci-0000:00:00.0.bin")
170 case $board in
171 archer-c58-v1|\
172 archer-c59-v1|\
173 archer-c60-v1|\
174 archer-c60-v2|\
175 cf-e355ac-v2|\
176 cf-e375ac)
177 ath10kcal_extract "art" 20480 12064
178 ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
179 /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
180 ;;
181 gl-x1200)
182 ath10kcal_extract "art" 20480 12064
183 ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
184 /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
185 #ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
186 ;;
187 cf-e385ac)
188 ath10kcal_extract "art" 20480 12064
189 ;;
190 esac
191 ;;
192 *)
193 exit 1
194 ;;
195 esac