11-ath10k-caldata 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/bin/sh
  2. ath10kcal_die() {
  3. echo "ath10cal: " "$*"
  4. exit 1
  5. }
  6. ath10kcal_from_file() {
  7. local source=$1
  8. local offset=$2
  9. local count=$3
  10. dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
  11. ath10kcal_die "failed to extract calibration data from $source"
  12. }
  13. ath10kcal_extract() {
  14. local part=$1
  15. local offset=$2
  16. local count=$3
  17. local mtd
  18. mtd=$(find_mtd_chardev $part)
  19. [ -n "$mtd" ] || \
  20. ath10kcal_die "no mtd device found for partition $part"
  21. dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
  22. ath10kcal_die "failed to extract calibration data from $mtd"
  23. }
  24. ath10kcal_patch_mac() {
  25. local mac=$1
  26. [ -z "$mac" ] && return
  27. macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
  28. }
  29. [ -e /lib/firmware/$FIRMWARE ] && exit 0
  30. . /lib/functions.sh
  31. . /lib/functions/system.sh
  32. board=$(board_name)
  33. case "$FIRMWARE" in
  34. "ath10k/pre-cal-ahb-a000000.wifi.bin")
  35. case "$board" in
  36. fritz4040)
  37. /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
  38. ;;
  39. esac
  40. ;;
  41. "ath10k/pre-cal-ahb-a800000.wifi.bin")
  42. case "$board" in
  43. fritz4040)
  44. /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
  45. ;;
  46. esac
  47. ;;
  48. "ath10k/pre-cal-pci-0000:01:00.0.bin")
  49. case $board in
  50. c2600)
  51. ath10kcal_extract "radio" 4096 12064
  52. # ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 8) -1)
  53. ;;
  54. d7800 |\
  55. r7500v2 |\
  56. r7800)
  57. ath10kcal_extract "art" 4096 12064
  58. ;;
  59. ea8500)
  60. hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
  61. ath10kcal_extract "art" 4096 12064
  62. ;;
  63. nbg6817)
  64. ath10kcal_extract "0:ART" 4096 12064
  65. ;;
  66. vr2600v)
  67. ath10kcal_extract "ART" 4096 12064
  68. ;;
  69. esac
  70. ;;
  71. "ath10k/pre-cal-pci-0001:01:00.0.bin")
  72. case $board in
  73. c2600)
  74. ath10kcal_extract "radio" 20480 12064
  75. # ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary default-mac 8) -2)
  76. ;;
  77. d7800 |\
  78. r7500v2 |\
  79. r7800)
  80. ath10kcal_extract "art" 20480 12064
  81. ;;
  82. ea8500)
  83. hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
  84. ath10kcal_extract "art" 20480 12064
  85. ;;
  86. nbg6817)
  87. ath10kcal_extract "0:ART" 20480 12064
  88. ;;
  89. vr2600v)
  90. ath10kcal_extract "ART" 20480 12064
  91. ;;
  92. esac
  93. ;;
  94. *)
  95. exit 1
  96. ;;
  97. esac