OpenWrt – Diff between revs 2 and 3

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 2 Rev 3
Line 1... Line 1...
1 #!/bin/sh 1 #!/bin/sh
Line 2... Line -...
2   -  
3 # xor multiple hex values of the same length -  
4 xor() { -  
5 local val -  
6 local ret="0x$1" -  
7 local retlen=${#1} -  
8   -  
9 shift -  
10 while [ -n "$1" ]; do -  
11 val="0x$1" -  
12 ret=$((ret ^ val)) -  
13 shift -  
14 done -  
15   -  
16 printf "%0${retlen}x" "$ret" -  
17 } -  
18   2  
19 ath10kcal_die() { 3 ath10kcal_die() {
20 echo "ath10cal: " "$*" 4 echo "ath10cal: " "$*"
21 exit 1 5 exit 1
Line 42... Line 26...
42   26  
43 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ 27 dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
44 ath10kcal_die "failed to extract calibration data from $mtd" 28 ath10kcal_die "failed to extract calibration data from $mtd"
Line 45... Line 29...
45 } 29 }
46   30  
47 ath10kcal_patch_mac_crc() { -  
48 local mac=$1 -  
49 local mac_offset=6 -  
50 local chksum_offset=2 -  
51 local xor_mac -  
Line 52... Line 31...
52 local xor_fw_mac 31 ath10kcal_patch_mac() {
Line 53... Line -...
53 local xor_fw_chksum -  
54   -  
55 [ -z "$mac" ] && return -  
56   32 local mac=$1
57 xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) -  
58 xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}" -  
59   -  
60 macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6 -  
61   -  
62 xor_mac=${mac//:/} -  
63 xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}" -  
64   -  
65 xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE) -  
66 xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac) 33  
Line 67... Line 34...
67   34 [ -z "$mac" ] && return
Line 68... Line 35...
68 printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \ 35  
69 dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2 36 macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
Line 70... Line 37...
70 } 37 }
Line -... Line 38...
-   38  
71   39 [ -e /lib/firmware/$FIRMWARE ] && exit 0
72 [ -e /lib/firmware/$FIRMWARE ] && exit 0 40  
73   41 . /lib/functions.sh
74 . /lib/functions.sh -  
75 . /lib/functions/system.sh -  
76   -  
77 board=$(board_name) -  
78   42 . /lib/functions/system.sh
-   43  
79 case "$FIRMWARE" in 44 board=$(board_name)
80 "ath10k/pre-cal-pci-0000:01:00.0.bin") -  
81 case $board in -  
82 buffalo,wxr-2533dhp) -  
83 ath10kcal_extract "ART" 4096 12064 -  
84 ath10kcal_patch_mac_crc $(mtd_get_mac_binary ART 30) -  
85 ;; 45  
86 linksys,ea8500) 46  
87 ath10kcal_extract "art" 4096 12064 47 case "$FIRMWARE" in
88 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +1) 48 "ath10k/pre-cal-pci-0000:01:00.0.bin")
89 ;; 49 case $board in
90 nec,wg2600hp) -  
91 ath10kcal_extract "ART" 4096 12064 50 linksys,ea8500)
92 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary PRODUCTDATA 12) +1) 51 hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
93 ;; 52 ath10kcal_extract "art" 4096 12064
94 netgear,d7800 |\ 53 ;;
95 netgear,r7500v2 |\ 54 netgear,d7800 |\
-   55 netgear,r7500v2 |\
96 netgear,r7800) 56 netgear,r7800)
97 ath10kcal_extract "art" 4096 12064 57 ath10kcal_extract "art" 4096 12064
98 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 6) +1) -  
99 ;; 58 ;;
100 tplink,c2600) 59 tplink,c2600)
101 ath10kcal_extract "radio" 4096 12064 60 ath10kcal_extract "radio" 4096 12064
102 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary default-mac 8) -1) -  
103 ;; 61 # ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 8) -1)
104 tplink,vr2600v) 62 ;;
105 ath10kcal_extract "ART" 4096 12064 63 nec,wg2600hp |\
106 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary default-mac 0) -1) 64 tplink,vr2600v)
107 ;; 65 ath10kcal_extract "ART" 4096 12064
108 zyxel,nbg6817) -  
109 ath10kcal_extract "0:ART" 4096 12064 -  
110 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +1) -  
111 ;; -  
112 esac 66 ;;
-   67 zyxel,nbg6817)
113 ;; 68 ath10kcal_extract "0:ART" 4096 12064
114 "ath10k/pre-cal-pci-0001:01:00.0.bin") -  
115 case $board in -  
116 buffalo,wxr-2533dhp) -  
117 ath10kcal_extract "ART" 20480 12064 -  
118 ath10kcal_patch_mac_crc $(mtd_get_mac_binary ART 24) -  
119 ;; 69 ;;
120 linksys,ea8500) 70 esac
121 ath10kcal_extract "art" 20480 12064 71 ;;
122 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) +2) 72 "ath10k/pre-cal-pci-0001:01:00.0.bin")
123 ;; 73 case $board in
124 nec,wg2600hp) -  
125 ath10kcal_extract "ART" 20480 12064 74 linksys,ea8500)
126 ath10kcal_patch_mac_crc $(mtd_get_mac_binary PRODUCTDATA 12) 75 hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
127 ;; 76 ath10kcal_extract "art" 20480 12064
128 netgear,d7800 |\ 77 ;;
129 netgear,r7500v2 |\ 78 netgear,d7800 |\
-   79 netgear,r7500v2 |\
130 netgear,r7800) 80 netgear,r7800)
131 ath10kcal_extract "art" 20480 12064 81 ath10kcal_extract "art" 20480 12064
132 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 6) +2) -  
133 ;; 82 ;;
134 tplink,c2600) 83 tplink,c2600)
135 ath10kcal_extract "radio" 20480 12064 84 ath10kcal_extract "radio" 20480 12064
136 ath10kcal_patch_mac_crc $(mtd_get_mac_binary default-mac 8) -  
137 ;; 85 # ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 8) -2)
138 tplink,vr2600v) 86 ;;
139 ath10kcal_extract "ART" 20480 12064 87 nec,wg2600hp |\
140 ath10kcal_patch_mac_crc $(mtd_get_mac_binary default-mac 0) 88 tplink,vr2600v)
141 ;; 89 ath10kcal_extract "ART" 20480 12064