ath10k-ct: Add htt-mgt variants of ath10k-ct firmware.
authorBen Greear <greearb@candelatech.com>
Wed, 21 Mar 2018 17:29:03 +0000 (10:29 -0700)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 23 Mar 2018 21:08:22 +0000 (22:08 +0100)
The HTT-MGT variants transport management frames over the
normal HTT tx path, just like data frames.  This saves
limitted WMI buffers which can become depleted if lots of
management frames become stuck in TX queues due to peer
that went away.

In addition, at least for the wave-1 firmware, htt-mgt is
required in order for 802.11r (fast roaming) authentication
to function properly.

The htt-mgt firmware requires the use of the ath10k-ct
driver.  Normal non-htt-mgt ath10k-ct firmware should work
with stock drivers.

Signed-off-by: Ben Greear <greearb@candelatech.com>
package/firmware/ath10k-firmware/Makefile

index 9dccd121168de48ca2666571f1580ae52afe63ea..00991466ae42f301f59f2925fe75ca8424dacf0e 100644 (file)
@@ -71,6 +71,14 @@ define Download/ath10k-firmware-qca988x-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca988x-ct))
 
+QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-20.bin.lede.001
+define Download/ath10k-firmware-qca988x-ct-htt
+  $(call Download/ct-firmware-htt,QCA988X,)
+  HASH:=a1f90d9de19bb148f3e4c6570bf7572cf90c7c6870d0afcf8a87d67114eab701
+endef
+$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
+
+
 QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-20.bin.lede.001
 define Download/ath10k-firmware-qca9887-ct
   $(call Download/ct-firmware,QCA9887,ath10k-9887)
@@ -78,6 +86,14 @@ define Download/ath10k-firmware-qca9887-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca9887-ct))
 
+QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-20.bin.lede.001
+define Download/ath10k-firmware-qca9887-ct-htt
+  $(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
+  HASH:=f31e5f5f546ef7c104b9526d0a95faf4c291b21e7512a19f624c5a015dee80f1
+endef
+$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
+
+
 QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.001
 define Download/ath10k-firmware-qca99x0-ct
   $(call Download/ct-firmware,QCA99X0,ath10k-10-4)
@@ -85,6 +101,14 @@ define Download/ath10k-firmware-qca99x0-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca99x0-ct))
 
+QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.001
+define Download/ath10k-firmware-qca99x0-ct-htt
+  $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4)
+  HASH:=520f0ecfeba034056a196793d2f0e628d4c89bd1080c6a811fdc3a4b35bfe8d6
+endef
+$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
+
+
 QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.001
 define Download/ath10k-firmware-qca9984-ct
   $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4)
@@ -92,6 +116,14 @@ define Download/ath10k-firmware-qca9984-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca9984-ct))
 
+QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.001
+define Download/ath10k-firmware-qca9984-ct-htt
+  $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4)
+  HASH:=cf18bd88f8995d383be25fe302b205b8cde3f593b88e34bdffe05732520abfde
+endef
+$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
+
+
 QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.003
 define Download/ath10k-firmware-qca4019-ct-htt
   $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4)
@@ -106,6 +138,7 @@ define Download/ath10k-firmware-qca4019-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca4019-ct))
 
+
 QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.003
 define Download/ath10k-firmware-qca9888-ct
   $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4)
@@ -113,6 +146,14 @@ define Download/ath10k-firmware-qca9888-ct
 endef
 $(eval $(call Download,ath10k-firmware-qca9888-ct))
 
+QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.003
+define Download/ath10k-firmware-qca9888-ct-htt
+  $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4)
+  HASH:=dc35c392cf2688a97ed5c4ca6490bd7a3d622bb711edb246b09a3d9a0b9dc0d0
+endef
+$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
+
+
 define Package/ath10k-firmware-qca99x0
 $(Package/ath10k-firmware-default)
   TITLE:=ath10k firmware for QCA99x0 devices
@@ -127,6 +168,14 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca988x
 endef
+define Package/ath10k-firmware-qca988x-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.1 htt-mgt fw for QCA988x
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca988x
+  DEPENDS:=+kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca9887-ct
 $(Package/ath10k-firmware-default)
@@ -135,6 +184,14 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca9887
 endef
+define Package/ath10k-firmware-qca9887-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.1 htt-mgt fw for QCA9887
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca9887
+  DEPENDS:=+kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca988x-ct/description
 Alternative ath10k firmware for QCA988X from Candela Technologies.
@@ -144,6 +201,14 @@ This firmware will NOT be used unless the standard ath10k-firmware-qca988x
 is un-selected since the driver will try to load firmware-5.bin before
 firmware-2.bin
 endef
+define Package/ath10k-firmware-qca988x-ct-htt/description
+Alternative ath10k firmware for QCA988X from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and fixes .11r authentication.
+Enables IBSS and other features.  See:
+http://www.candelatech.com/ath10k-10.1.php
+This firmware selects and requires the ath10k-ct driver.
+endef
 
 define Package/ath10k-firmware-qca9887-ct/description
 Alternative ath10k firmware for QCA9887 from Candela Technologies.
@@ -152,6 +217,14 @@ http://www.candelatech.com/ath10k-10.1.php
 This firmware conflicts with the standard 9887 firmware, so select only
 one.
 endef
+define Package/ath10k-firmware-qca9887-ct-htt/description
+Alternative ath10k firmware for QCA9887 from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and fixes .11r authentication.
+Enables IBSS and other features.  See:
+http://www.candelatech.com/ath10k-10.1.php
+This firmware selects and requires the ath10k-ct driver.
+endef
 
 define Package/ath10k-firmware-qca99x0-ct/description
 Alternative ath10k firmware for QCA99x0 from Candela Technologies.
@@ -160,6 +233,14 @@ http://www.candelatech.com/ath10k-10.4.php
 This firmware conflicts with the standard 99x0 firmware, so select only
 one.
 endef
+define Package/ath10k-firmware-qca99x0-ct-htt/description
+Alternative ath10k firmware for QCA99x0 from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and may be required for .11r authentication.
+Enables IBSS and other features.  See:
+http://www.candelatech.com/ath10k-10.4.php
+This firmware selects and requires the ath10k-ct driver.
+endef
 
 define Package/ath10k-firmware-qca9984-ct/description
 Alternative ath10k firmware for QCA9984 from Candela Technologies.
@@ -168,11 +249,13 @@ http://www.candelatech.com/ath10k-10.4.php
 This firmware conflicts with the standard 9984 firmware, so select only
 one.
 endef
-
-define Package/ath10k-firmware-qca4019-ct-htt/description
-Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
-Enables IBSS and other features.  Requires ath10k-ct driver to function.
-See:  http://www.candelatech.com/ath10k-10.4.php
+define Package/ath10k-firmware-qca9984-ct-htt/description
+Alternative ath10k firmware for QCA9984 from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and may be required for .11r authentication.
+Enables IBSS and other features.  See:
+http://www.candelatech.com/ath10k-10.4.php
+This firmware selects and requires the ath10k-ct driver.
 endef
 
 define Package/ath10k-firmware-qca4019-ct/description
@@ -180,6 +263,14 @@ Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
 Enables IBSS and other features.  Works with standard or ath10k-ct driver.
 See:  http://www.candelatech.com/ath10k-10.4.php
 endef
+define Package/ath10k-firmware-qca4019-ct-htt/description
+Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and may be required for .11r authentication.
+Enables IBSS and other features.
+See:  http://www.candelatech.com/ath10k-10.4.php
+This firmware selects and requires the ath10k-ct driver.
+endef
 
 define Package/ath10k-firmware-qca9888-ct/description
 Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies.
@@ -188,6 +279,15 @@ http://www.candelatech.com/ath10k-10.4.php
 This firmware conflicts with the standard 9886 and 9888 firmware, so select only
 one.
 endef
+define Package/ath10k-firmware-qca9888-ct-htt/description
+Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies.
+Uses normal HTT TX data path for management frames, which improves
+stability in busy networks and may be required for .11r authentication.
+Enables IBSS and other features.  See:
+http://www.candelatech.com/ath10k-10.4.php
+This firmware selects and requires the ath10k-ct driver.
+endef
+
 
 define Package/ath10k-firmware-qca99x0/description
 Standard ath10k firmware for QCA99x0 from QCA
@@ -202,6 +302,14 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca99x0
 endef
+define Package/ath10k-firmware-qca99x0-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca99x0
+  DEPENDS:=+kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca9984-ct
 $(Package/ath10k-firmware-default)
@@ -210,15 +318,15 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca9984
 endef
-
-define Package/ath10k-firmware-qca4019-ct-htt
+define Package/ath10k-firmware-qca9984-ct-htt
 $(Package/ath10k-firmware-default)
-  TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9
+  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
   SECTION:=firmware
   CATEGORY:=Firmware
-  PROVIDES:=ath10k-firmware-qca4019
+  PROVIDES:=ath10k-firmware-qca9984
   DEPENDS:=+kmod-ath10k-ct
 endef
+
 define Package/ath10k-firmware-qca4019-ct
 $(Package/ath10k-firmware-default)
   TITLE:=ath10k CT 10.4 firmware for QCA4018/9
@@ -226,6 +334,14 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca4019
 endef
+define Package/ath10k-firmware-qca4019-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca4019
+  DEPENDS:=+kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca9888-ct
 $(Package/ath10k-firmware-default)
@@ -234,6 +350,16 @@ $(Package/ath10k-firmware-default)
   CATEGORY:=Firmware
   PROVIDES:=ath10k-firmware-qca9888
 endef
+define Package/ath10k-firmware-qca9888-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca9888
+  DEPENDS:=+kmod-ath10k-ct
+endef
+
+
 
 define Package/ath10k-firmware-qca9984
 $(Package/ath10k-firmware-default)
@@ -311,6 +437,37 @@ define Package/ath10k-firmware-qca988x/install
                $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin
 endef
 
+define Package/ath10k-firmware-qca6174/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k
+       $(CP) $(PKG_BUILD_DIR)/QCA6174 $(1)/lib/firmware/ath10k/
+endef
+
+define Package/ath10k-firmware-qca99x0/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
+       $(INSTALL_DATA) \
+               $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
+               $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
+               $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA99X0/hw2.0/firmware-5.bin_10.4.1.00030-1 \
+               $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
+endef
+
+define Package/ath10k-firmware-qca9984/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
+               $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA9984/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \
+               $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
+endef
+
+
+# CT related firmware
+
 define Package/ath10k-firmware-qca9887-ct/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
        $(INSTALL_DATA) \
@@ -320,6 +477,15 @@ define Package/ath10k-firmware-qca9887-ct/install
                $(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \
                $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
 endef
+define Package/ath10k-firmware-qca9887-ct-htt/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
+       $(INSTALL_DATA) \
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9887) \
+               $(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \
+               $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
+endef
 
 define Package/ath10k-firmware-qca988x-ct/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
@@ -330,13 +496,17 @@ define Package/ath10k-firmware-qca988x-ct/install
                $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \
                $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
 endef
-
-define Package/ath10k-firmware-qca6174/install
-       $(INSTALL_DIR) $(1)/lib/firmware/ath10k
-       $(CP) $(PKG_BUILD_DIR)/QCA6174 $(1)/lib/firmware/ath10k/
+define Package/ath10k-firmware-qca988x-ct-htt/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \
+               $(1)/lib/firmware/ath10k/QCA988X/hw2.0/
+       $(INSTALL_DATA) \
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA988X) \
+               $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin
 endef
 
-define Package/ath10k-firmware-qca99x0/install
+define Package/ath10k-firmware-qca99x0-ct/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
        $(INSTALL_DATA) \
                $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
@@ -345,11 +515,10 @@ define Package/ath10k-firmware-qca99x0/install
                $(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
                $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
        $(INSTALL_DATA) \
-               $(PKG_BUILD_DIR)/QCA99X0/hw2.0/firmware-5.bin_10.4.1.00030-1 \
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \
                $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
 endef
-
-define Package/ath10k-firmware-qca99x0-ct/install
+define Package/ath10k-firmware-qca99x0-ct-htt/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
        $(INSTALL_DATA) \
                $(DL_DIR)/$(QCA99X0_BOARD_FILE) \
@@ -358,48 +527,46 @@ define Package/ath10k-firmware-qca99x0-ct/install
                $(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
                $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
        $(INSTALL_DATA) \
-               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \
-               $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \
+               $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
 endef
 
-define Package/ath10k-firmware-qca9984/install
+define Package/ath10k-firmware-qca9984-ct/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
        $(INSTALL_DATA) \
                $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
                $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
        $(INSTALL_DATA) \
-               $(PKG_BUILD_DIR)/QCA9984/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \
                $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
 endef
-
-define Package/ath10k-firmware-qca9984-ct/install
+define Package/ath10k-firmware-qca9984-ct-htt/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
        $(INSTALL_DATA) \
                $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
                $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
        $(INSTALL_DATA) \
-               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \
-               $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \
+               $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
 endef
 
-define Package/ath10k-firmware-qca4019-ct-htt/install
+define Package/ath10k-firmware-qca4019-ct/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
        $(INSTALL_DATA) \
                $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \
                $(1)/lib/firmware/ath10k/QCA4019/hw1.0/
        $(INSTALL_DATA) \
-               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \
-               $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \
+               $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin
 endef
-
-define Package/ath10k-firmware-qca4019-ct/install
+define Package/ath10k-firmware-qca4019-ct-htt/install
        $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
        $(INSTALL_DATA) \
                $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \
                $(1)/lib/firmware/ath10k/QCA4019/hw1.0/
        $(INSTALL_DATA) \
-               $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \
-               $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \
+               $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
 endef
 
 define Package/ath10k-firmware-qca9888-ct/install
@@ -414,6 +581,18 @@ define Package/ath10k-firmware-qca9888-ct/install
                $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \
                $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
 endef
+define Package/ath10k-firmware-qca9888-ct-htt/install
+       $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
+       ln -s \
+               ../../cal-pci-0000:01:00.0.bin \
+               $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \
+               $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
+       $(INSTALL_DATA) \
+               $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \
+               $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin
+endef
 
 $(eval $(call BuildPackage,ath10k-firmware-qca9887))
 $(eval $(call BuildPackage,ath10k-firmware-qca9888))
@@ -424,9 +603,14 @@ $(eval $(call BuildPackage,ath10k-firmware-qca9984))
 $(eval $(call BuildPackage,ath10k-firmware-qca4019))
 
 $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct))
+$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
+$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
+$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
-$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
+$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
+$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
+$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))