diff mbox series

[19.07,7/8] ath10k-ct-firmware: add htt-mgt variants

Message ID 20200825212510.509763-7-baptiste@bitsofnetworks.org
State Superseded
Headers show
Series [19.07,1/8] ath10k-firmware: update Candela Tech firmware images | expand

Commit Message

Baptiste Jonglez Aug. 25, 2020, 9:25 p.m. UTC
From: Álvaro Fernández Rojas <noltari@gmail.com>

For wave-2, there is now a new variant: htt-mgt-community (vs the old
full-htt-mgt-community).

The non-full one (hence forth 'diet') compiles out a lot of firmware features
that ath10k does not use. This saves a lot of resources and lets one
configure more stations/vdevs/etc using fwcfg.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit a882bfce052e78bd344dcbd36efb32acf1340d7a)
---
 package/firmware/ath10k-ct-firmware/Makefile | 155 ++++++++++++++++++-
 1 file changed, 154 insertions(+), 1 deletion(-)

Comments

Baptiste Jonglez Sept. 3, 2020, 5:14 p.m. UTC | #1
Adrian pointed out a possible issue with these backpots: combining patches
5/8 and 7/8 basically mean that a different firmware variant will be
distributed in "ath10k-firmware-*-ct-htt" packages.

Currently in 19.07 the ath10k-firmware-*-ct-htt packages bundle this
firmware variant: firmware-{2,5}-ct-full-htt-mgt-community

With patch 5/8 and 7/8, the same ath10k-firmware-*-ct-htt packages would
instead bundle this firmware variant: firmware-{2,5}-ct-htt-mgt-community

The description of this new firmware variant is copied below:

    The non-full one (hence forth 'diet') compiles out a lot of firmware
    features that ath10k does not use. This saves a lot of resources and
    lets one configure more stations/vdevs/etc using fwcfg.

These HTT firmwares are not used in default openwrt images, but they could
be used downstream: it does not seem wise to distribute a different
firmware variant under the same package name.

I will send a v2 fixing this.

On 25-08-20, Baptiste Jonglez wrote:
> From: Álvaro Fernández Rojas <noltari@gmail.com>
> 
> For wave-2, there is now a new variant: htt-mgt-community (vs the old
> full-htt-mgt-community).
> 
> The non-full one (hence forth 'diet') compiles out a lot of firmware features
> that ath10k does not use. This saves a lot of resources and lets one
> configure more stations/vdevs/etc using fwcfg.
> 
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> (cherry picked from commit a882bfce052e78bd344dcbd36efb32acf1340d7a)
> ---
>  package/firmware/ath10k-ct-firmware/Makefile | 155 ++++++++++++++++++-
>  1 file changed, 154 insertions(+), 1 deletion(-)
> 
> diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile
> index 6a35e9c75c..18370b7d85 100644
> --- a/package/firmware/ath10k-ct-firmware/Makefile
> +++ b/package/firmware/ath10k-ct-firmware/Makefile
> @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=ath10k-ct-firmware
>  PKG_VERSION:=2020-04-24
> -PKG_RELEASE:=1
> +PKG_RELEASE:=2
>  
>  include $(INCLUDE_DIR)/package.mk
>  
> @@ -75,6 +75,7 @@ $(eval $(call Download,qca9888-board2))
>  
>  CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
>  CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
> +CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
>  
>  define Download/ct-firmware
>    URL:=https://www.candelatech.com/downloads/$(2)
> @@ -88,6 +89,12 @@ define Download/ct-firmware-full-htt
>    URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
>  endef
>  
> +define Download/ct-firmware-htt
> +  URL:=https://www.candelatech.com/downloads/$(2)
> +  FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1))
> +  URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
> +endef
> +
>  QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018
>  define Download/ath10k-firmware-qca988x-ct
>    $(call Download/ct-firmware,QCA988X,)
> @@ -132,6 +139,13 @@ define Download/ath10k-firmware-qca99x0-ct-full-htt
>  endef
>  $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt))
>  
> +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
> +define Download/ath10k-firmware-qca99x0-ct-htt
> +  $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
> +  HASH:=4d4f74afca487d452f244cd48304cf9710d8941eb97a6346a949ed6b6877d657
> +endef
> +$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
> +
>  
>  QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>  define Download/ath10k-firmware-qca9984-ct
> @@ -147,6 +161,13 @@ define Download/ath10k-firmware-qca9984-ct-full-htt
>  endef
>  $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt))
>  
> +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
> +define Download/ath10k-firmware-qca9984-ct-htt
> +  $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
> +  HASH:=ee593fb5724d75c372de02ac7894e1630ee9f909fcb2e2bbf17aadef67cb9d43
> +endef
> +$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
> +
>  
>  QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>  define Download/ath10k-firmware-qca4019-ct
> @@ -162,6 +183,13 @@ define Download/ath10k-firmware-qca4019-ct-full-htt
>  endef
>  $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt))
>  
> +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
> +define Download/ath10k-firmware-qca4019-ct-htt
> +  $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
> +  HASH:=51fe06f66365771647d16039cca8b541de3d642c45271977a4cfd433c2c5d45b
> +endef
> +$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
> +
>  
>  QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>  define Download/ath10k-firmware-qca9888-ct
> @@ -177,6 +205,13 @@ define Download/ath10k-firmware-qca9888-ct-full-htt
>  endef
>  $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt))
>  
> +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
> +define Download/ath10k-firmware-qca9888-ct-htt
> +  $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
> +  HASH:=6c692141155f5bb74c0117553d5d48ff2aaba73bd4d5e90a5044a5e2ec0faab0
> +endef
> +$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
> +
>  
>  define Package/ath10k-ct-firmware-default
>    SECTION:=firmware
> @@ -232,6 +267,14 @@ $(Package/ath10k-ct-firmware-default)
>    PROVIDES:=ath10k-firmware-qca99x0
>    DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>  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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> +endef
>  
>  define Package/ath10k-firmware-qca9984-ct
>  $(Package/ath10k-ct-firmware-default)
> @@ -248,6 +291,14 @@ $(Package/ath10k-ct-firmware-default)
>    PROVIDES:=ath10k-firmware-qca9984
>    DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>  endef
> +define Package/ath10k-firmware-qca9984-ct-htt
> +$(Package/ath10k-firmware-default)
> +  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
> +  SECTION:=firmware
> +  CATEGORY:=Firmware
> +  PROVIDES:=ath10k-firmware-qca9984
> +  DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> +endef
>  
>  define Package/ath10k-firmware-qca4019-ct
>  $(Package/ath10k-ct-firmware-default)
> @@ -264,6 +315,14 @@ $(Package/ath10k-ct-firmware-default)
>    PROVIDES:=ath10k-firmware-qca4019
>    DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>  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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> +endef
>  
>  define Package/ath10k-firmware-qca9888-ct
>  $(Package/ath10k-ct-firmware-default)
> @@ -280,6 +339,14 @@ $(Package/ath10k-ct-firmware-default)
>    PROVIDES:=ath10k-firmware-qca9888
>    DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>  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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> +endef
>  
>  
>  define Package/ath10k-firmware-qca9887-ct/description
> @@ -330,6 +397,16 @@ 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-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.
> +This firmware lacks a lot of features that ath10k does not use, saving
> +a lot of resources.
> +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.
> @@ -346,6 +423,16 @@ 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-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.
> +This firmware lacks a lot of features that ath10k does not use, saving
> +a lot of resources.
> +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
>  Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
> @@ -360,6 +447,16 @@ 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-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.
> +This firmware lacks a lot of features that ath10k does not use, saving
> +a lot of resources.
> +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.
> @@ -376,6 +473,16 @@ 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-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.
> +This firmware lacks a lot of features that ath10k does not use, saving
> +a lot of resources.
> +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 Build/Compile
> @@ -445,6 +552,18 @@ define Package/ath10k-firmware-qca99x0-ct-full-htt/install
>  		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \
>  		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
>  endef
> +define Package/ath10k-firmware-qca99x0-ct-htt/install
> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
> +	$(INSTALL_DATA) \
> +		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
> +	$(INSTALL_DATA) \
> +		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
> +	$(INSTALL_DATA) \
> +		$(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-ct/install
>  	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
> @@ -464,6 +583,15 @@ define Package/ath10k-firmware-qca9984-ct-full-htt/install
>  		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \
>  		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
>  endef
> +define Package/ath10k-firmware-qca9984-ct-htt/install
> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
> +	$(INSTALL_DATA) \
> +		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \
> +		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
> +	$(INSTALL_DATA) \
> +		$(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/install
>  	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
> @@ -483,6 +611,15 @@ define Package/ath10k-firmware-qca4019-ct-full-htt/install
>  		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \
>  		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
>  endef
> +define Package/ath10k-firmware-qca4019-ct-htt/install
> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
> +	$(INSTALL_DATA) \
> +		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \
> +		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
> +	$(INSTALL_DATA) \
> +		$(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
>  	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
> @@ -508,6 +645,18 @@ define Package/ath10k-firmware-qca9888-ct-full-htt/install
>  		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \
>  		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-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) \
> +		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \
> +		$(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-ct))
> @@ -516,9 +665,13 @@ $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
>  $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt))
>  $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
>  $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt))
> +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
>  $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
>  $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt))
> +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
>  $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
>  $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt))
> +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
>  $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
>  $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt))
> +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))
Ben Greear Sept. 3, 2020, 5:31 p.m. UTC | #2
On 9/3/20 10:14 AM, Baptiste Jonglez wrote:
> Adrian pointed out a possible issue with these backpots: combining patches
> 5/8 and 7/8 basically mean that a different firmware variant will be
> distributed in "ath10k-firmware-*-ct-htt" packages.
> 
> Currently in 19.07 the ath10k-firmware-*-ct-htt packages bundle this
> firmware variant: firmware-{2,5}-ct-full-htt-mgt-community
> 
> With patch 5/8 and 7/8, the same ath10k-firmware-*-ct-htt packages would
> instead bundle this firmware variant: firmware-{2,5}-ct-htt-mgt-community
> 
> The description of this new firmware variant is copied below:
> 
>      The non-full one (hence forth 'diet') compiles out a lot of firmware
>      features that ath10k does not use. This saves a lot of resources and
>      lets one configure more stations/vdevs/etc using fwcfg.
> 
> These HTT firmwares are not used in default openwrt images, but they could
> be used downstream: it does not seem wise to distribute a different
> firmware variant under the same package name.

Those compiled out features are not used by any ath10k driver as far as I know.
If the driver doesn't use it, I don't see how anything else could...

Its still worth testing, but I think that diet variant is probably the best choice.

Thanks,
Ben

> 
> I will send a v2 fixing this.
> 
> On 25-08-20, Baptiste Jonglez wrote:
>> From: Álvaro Fernández Rojas <noltari@gmail.com>
>>
>> For wave-2, there is now a new variant: htt-mgt-community (vs the old
>> full-htt-mgt-community).
>>
>> The non-full one (hence forth 'diet') compiles out a lot of firmware features
>> that ath10k does not use. This saves a lot of resources and lets one
>> configure more stations/vdevs/etc using fwcfg.
>>
>> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
>> (cherry picked from commit a882bfce052e78bd344dcbd36efb32acf1340d7a)
>> ---
>>   package/firmware/ath10k-ct-firmware/Makefile | 155 ++++++++++++++++++-
>>   1 file changed, 154 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile
>> index 6a35e9c75c..18370b7d85 100644
>> --- a/package/firmware/ath10k-ct-firmware/Makefile
>> +++ b/package/firmware/ath10k-ct-firmware/Makefile
>> @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
>>   
>>   PKG_NAME:=ath10k-ct-firmware
>>   PKG_VERSION:=2020-04-24
>> -PKG_RELEASE:=1
>> +PKG_RELEASE:=2
>>   
>>   include $(INCLUDE_DIR)/package.mk
>>   
>> @@ -75,6 +75,7 @@ $(eval $(call Download,qca9888-board2))
>>   
>>   CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
>>   CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
>> +CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
>>   
>>   define Download/ct-firmware
>>     URL:=https://www.candelatech.com/downloads/$(2)
>> @@ -88,6 +89,12 @@ define Download/ct-firmware-full-htt
>>     URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
>>   endef
>>   
>> +define Download/ct-firmware-htt
>> +  URL:=https://www.candelatech.com/downloads/$(2)
>> +  FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1))
>> +  URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
>> +endef
>> +
>>   QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018
>>   define Download/ath10k-firmware-qca988x-ct
>>     $(call Download/ct-firmware,QCA988X,)
>> @@ -132,6 +139,13 @@ define Download/ath10k-firmware-qca99x0-ct-full-htt
>>   endef
>>   $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt))
>>   
>> +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
>> +define Download/ath10k-firmware-qca99x0-ct-htt
>> +  $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
>> +  HASH:=4d4f74afca487d452f244cd48304cf9710d8941eb97a6346a949ed6b6877d657
>> +endef
>> +$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
>> +
>>   
>>   QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>>   define Download/ath10k-firmware-qca9984-ct
>> @@ -147,6 +161,13 @@ define Download/ath10k-firmware-qca9984-ct-full-htt
>>   endef
>>   $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt))
>>   
>> +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
>> +define Download/ath10k-firmware-qca9984-ct-htt
>> +  $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
>> +  HASH:=ee593fb5724d75c372de02ac7894e1630ee9f909fcb2e2bbf17aadef67cb9d43
>> +endef
>> +$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
>> +
>>   
>>   QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>>   define Download/ath10k-firmware-qca4019-ct
>> @@ -162,6 +183,13 @@ define Download/ath10k-firmware-qca4019-ct-full-htt
>>   endef
>>   $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt))
>>   
>> +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
>> +define Download/ath10k-firmware-qca4019-ct-htt
>> +  $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
>> +  HASH:=51fe06f66365771647d16039cca8b541de3d642c45271977a4cfd433c2c5d45b
>> +endef
>> +$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
>> +
>>   
>>   QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
>>   define Download/ath10k-firmware-qca9888-ct
>> @@ -177,6 +205,13 @@ define Download/ath10k-firmware-qca9888-ct-full-htt
>>   endef
>>   $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt))
>>   
>> +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
>> +define Download/ath10k-firmware-qca9888-ct-htt
>> +  $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
>> +  HASH:=6c692141155f5bb74c0117553d5d48ff2aaba73bd4d5e90a5044a5e2ec0faab0
>> +endef
>> +$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
>> +
>>   
>>   define Package/ath10k-ct-firmware-default
>>     SECTION:=firmware
>> @@ -232,6 +267,14 @@ $(Package/ath10k-ct-firmware-default)
>>     PROVIDES:=ath10k-firmware-qca99x0
>>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>> +endef
>>   
>>   define Package/ath10k-firmware-qca9984-ct
>>   $(Package/ath10k-ct-firmware-default)
>> @@ -248,6 +291,14 @@ $(Package/ath10k-ct-firmware-default)
>>     PROVIDES:=ath10k-firmware-qca9984
>>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>>   endef
>> +define Package/ath10k-firmware-qca9984-ct-htt
>> +$(Package/ath10k-firmware-default)
>> +  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
>> +  SECTION:=firmware
>> +  CATEGORY:=Firmware
>> +  PROVIDES:=ath10k-firmware-qca9984
>> +  DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>> +endef
>>   
>>   define Package/ath10k-firmware-qca4019-ct
>>   $(Package/ath10k-ct-firmware-default)
>> @@ -264,6 +315,14 @@ $(Package/ath10k-ct-firmware-default)
>>     PROVIDES:=ath10k-firmware-qca4019
>>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>> +endef
>>   
>>   define Package/ath10k-firmware-qca9888-ct
>>   $(Package/ath10k-ct-firmware-default)
>> @@ -280,6 +339,14 @@ $(Package/ath10k-ct-firmware-default)
>>     PROVIDES:=ath10k-firmware-qca9888
>>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
>> +endef
>>   
>>   
>>   define Package/ath10k-firmware-qca9887-ct/description
>> @@ -330,6 +397,16 @@ 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-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.
>> +This firmware lacks a lot of features that ath10k does not use, saving
>> +a lot of resources.
>> +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.
>> @@ -346,6 +423,16 @@ 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-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.
>> +This firmware lacks a lot of features that ath10k does not use, saving
>> +a lot of resources.
>> +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
>>   Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
>> @@ -360,6 +447,16 @@ 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-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.
>> +This firmware lacks a lot of features that ath10k does not use, saving
>> +a lot of resources.
>> +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.
>> @@ -376,6 +473,16 @@ 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-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.
>> +This firmware lacks a lot of features that ath10k does not use, saving
>> +a lot of resources.
>> +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 Build/Compile
>> @@ -445,6 +552,18 @@ define Package/ath10k-firmware-qca99x0-ct-full-htt/install
>>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \
>>   		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
>>   endef
>> +define Package/ath10k-firmware-qca99x0-ct-htt/install
>> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
>> +	$(INSTALL_DATA) \
>> +		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
>> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
>> +	$(INSTALL_DATA) \
>> +		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
>> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
>> +	$(INSTALL_DATA) \
>> +		$(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-ct/install
>>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
>> @@ -464,6 +583,15 @@ define Package/ath10k-firmware-qca9984-ct-full-htt/install
>>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \
>>   		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
>>   endef
>> +define Package/ath10k-firmware-qca9984-ct-htt/install
>> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
>> +	$(INSTALL_DATA) \
>> +		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \
>> +		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
>> +	$(INSTALL_DATA) \
>> +		$(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/install
>>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
>> @@ -483,6 +611,15 @@ define Package/ath10k-firmware-qca4019-ct-full-htt/install
>>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \
>>   		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
>>   endef
>> +define Package/ath10k-firmware-qca4019-ct-htt/install
>> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
>> +	$(INSTALL_DATA) \
>> +		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \
>> +		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
>> +	$(INSTALL_DATA) \
>> +		$(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
>>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
>> @@ -508,6 +645,18 @@ define Package/ath10k-firmware-qca9888-ct-full-htt/install
>>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \
>>   		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-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) \
>> +		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \
>> +		$(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-ct))
>> @@ -516,9 +665,13 @@ $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt))
>> +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt))
>> +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt))
>> +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
>>   $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt))
>> +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Adrian Schmutzler Sept. 3, 2020, 5:53 p.m. UTC | #3
> > These HTT firmwares are not used in default openwrt images, but they
> > could be used downstream: it does not seem wise to distribute a
> > different firmware variant under the same package name.
> 
> Those compiled out features are not used by any ath10k driver as far as I
> know.
> If the driver doesn't use it, I don't see how anything else could...
> 
> Its still worth testing, but I think that diet variant is probably the best choice.

My point mainly was that it's against the idea of a stable branch to suddenly rename firmware variants in a .4 revision.

So, it would be better to use patches 1-4, drop the htt renames (5,7) and then just rebase patches 6 and 8 for the 19.07 branch.

Best

Adrian

> 
> Thanks,
> Ben
> 
> >
> > I will send a v2 fixing this.
> >
> > On 25-08-20, Baptiste Jonglez wrote:
> >> From: Álvaro Fernández Rojas <noltari@gmail.com>
> >>
> >> For wave-2, there is now a new variant: htt-mgt-community (vs the old
> >> full-htt-mgt-community).
> >>
> >> The non-full one (hence forth 'diet') compiles out a lot of firmware
> >> features that ath10k does not use. This saves a lot of resources and
> >> lets one configure more stations/vdevs/etc using fwcfg.
> >>
> >> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> (cherry
> >> picked from commit a882bfce052e78bd344dcbd36efb32acf1340d7a)
> >> ---
> >>   package/firmware/ath10k-ct-firmware/Makefile | 155
> ++++++++++++++++++-
> >>   1 file changed, 154 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/package/firmware/ath10k-ct-firmware/Makefile
> >> b/package/firmware/ath10k-ct-firmware/Makefile
> >> index 6a35e9c75c..18370b7d85 100644
> >> --- a/package/firmware/ath10k-ct-firmware/Makefile
> >> +++ b/package/firmware/ath10k-ct-firmware/Makefile
> >> @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
> >>
> >>   PKG_NAME:=ath10k-ct-firmware
> >>   PKG_VERSION:=2020-04-24
> >> -PKG_RELEASE:=1
> >> +PKG_RELEASE:=2
> >>
> >>   include $(INCLUDE_DIR)/package.mk
> >>
> >> @@ -75,6 +75,7 @@ $(eval $(call Download,qca9888-board2))
> >>
> >>   CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
> >>   CT_FIRMWARE_FILE_FULL_HTT = $(1)-
> $($(1)_FIRMWARE_FILE_CT_FULL_HTT)
> >> +CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
> >>
> >>   define Download/ct-firmware
> >>     URL:=https://www.candelatech.com/downloads/$(2)
> >> @@ -88,6 +89,12 @@ define Download/ct-firmware-full-htt
> >>     URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
> >>   endef
> >>
> >> +define Download/ct-firmware-htt
> >> +  URL:=https://www.candelatech.com/downloads/$(2)
> >> +  FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1))
> >> +  URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
> >> +endef
> >> +
> >>   QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-
> 22.bin.lede.018
> >>   define Download/ath10k-firmware-qca988x-ct
> >>     $(call Download/ct-firmware,QCA988X,) @@ -132,6 +139,13 @@ define
> >> Download/ath10k-firmware-qca99x0-ct-full-htt
> >>   endef
> >>   $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt))
> >>
> >> +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-
> community-12.bin
> >> +-lede.018 define Download/ath10k-firmware-qca99x0-ct-htt
> >> +  $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
> >> +
> >>
> +HASH:=4d4f74afca487d452f244cd48304cf9710d8941eb97a6346a949ed6b687
> 7d6
> >> +57
> >> +endef
> >> +$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
> >> +
> >>
> >>   QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-
> lede.018
> >>   define Download/ath10k-firmware-qca9984-ct
> >> @@ -147,6 +161,13 @@ define Download/ath10k-firmware-qca9984-ct-
> full-htt
> >>   endef
> >>   $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt))
> >>
> >> +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-
> community-12.bin
> >> +-lede.018 define Download/ath10k-firmware-qca9984-ct-htt
> >> +  $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
> >> +
> >>
> +HASH:=ee593fb5724d75c372de02ac7894e1630ee9f909fcb2e2bbf17aadef67c
> b9d
> >> +43
> >> +endef
> >> +$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
> >> +
> >>
> >>   QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-
> lede.018
> >>   define Download/ath10k-firmware-qca4019-ct
> >> @@ -162,6 +183,13 @@ define Download/ath10k-firmware-qca4019-ct-
> full-htt
> >>   endef
> >>   $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt))
> >>
> >> +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-
> community-12.bin
> >> +-lede.018 define Download/ath10k-firmware-qca4019-ct-htt
> >> +  $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
> >> +
> >>
> +HASH:=51fe06f66365771647d16039cca8b541de3d642c45271977a4cfd433c2c5
> d4
> >> +5b
> >> +endef
> >> +$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
> >> +
> >>
> >>   QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-
> lede.018
> >>   define Download/ath10k-firmware-qca9888-ct
> >> @@ -177,6 +205,13 @@ define Download/ath10k-firmware-qca9888-ct-
> full-htt
> >>   endef
> >>   $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt))
> >>
> >> +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-
> community-12.bin
> >> +-lede.018 define Download/ath10k-firmware-qca9888-ct-htt
> >> +  $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
> >> +
> >>
> +HASH:=6c692141155f5bb74c0117553d5d48ff2aaba73bd4d5e90a5044a5e2ec0
> faa
> >> +b0
> >> +endef
> >> +$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
> >> +
> >>
> >>   define Package/ath10k-ct-firmware-default
> >>     SECTION:=firmware
> >> @@ -232,6 +267,14 @@ $(Package/ath10k-ct-firmware-default)
> >>     PROVIDES:=ath10k-firmware-qca99x0
> >>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >> +endef
> >>
> >>   define Package/ath10k-firmware-qca9984-ct
> >>   $(Package/ath10k-ct-firmware-default)
> >> @@ -248,6 +291,14 @@ $(Package/ath10k-ct-firmware-default)
> >>     PROVIDES:=ath10k-firmware-qca9984
> >>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >>   endef
> >> +define Package/ath10k-firmware-qca9984-ct-htt
> >> +$(Package/ath10k-firmware-default)
> >> +  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
> >> +  SECTION:=firmware
> >> +  CATEGORY:=Firmware
> >> +  PROVIDES:=ath10k-firmware-qca9984
> >> +  DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >> +endef
> >>
> >>   define Package/ath10k-firmware-qca4019-ct
> >>   $(Package/ath10k-ct-firmware-default)
> >> @@ -264,6 +315,14 @@ $(Package/ath10k-ct-firmware-default)
> >>     PROVIDES:=ath10k-firmware-qca4019
> >>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >> +endef
> >>
> >>   define Package/ath10k-firmware-qca9888-ct
> >>   $(Package/ath10k-ct-firmware-default)
> >> @@ -280,6 +339,14 @@ $(Package/ath10k-ct-firmware-default)
> >>     PROVIDES:=ath10k-firmware-qca9888
> >>     DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >>   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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
> >> +endef
> >>
> >>
> >>   define Package/ath10k-firmware-qca9887-ct/description
> >> @@ -330,6 +397,16 @@ 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-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.
> >> +This firmware lacks a lot of features that ath10k does not use,
> >> +saving a lot of resources.
> >> +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.
> >> @@ -346,6 +423,16 @@ 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-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.
> >> +This firmware lacks a lot of features that ath10k does not use,
> >> +saving a lot of resources.
> >> +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
> >>   Alternative ath10k firmware for IPQ4019 radio from Candela
> Technologies.
> >> @@ -360,6 +447,16 @@ 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-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.
> >> +This firmware lacks a lot of features that ath10k does not use,
> >> +saving a lot of resources.
> >> +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.
> >> @@ -376,6 +473,16 @@ 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-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.
> >> +This firmware lacks a lot of features that ath10k does not use,
> >> +saving a lot of resources.
> >> +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 Build/Compile
> >> @@ -445,6 +552,18 @@ define Package/ath10k-firmware-qca99x0-ct-full-
> htt/install
> >>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \
> >>   		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
> >>   endef
> >> +define Package/ath10k-firmware-qca99x0-ct-htt/install
> >> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
> >> +	$(INSTALL_DATA) \
> >> +		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
> >> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
> >> +	$(INSTALL_DATA) \
> >> +		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
> >> +		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
> >> +	$(INSTALL_DATA) \
> >> +		$(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-ct/install
> >>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
> >> @@ -464,6 +583,15 @@ define Package/ath10k-firmware-qca9984-ct-full-
> htt/install
> >>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \
> >>   		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
> >>   endef
> >> +define Package/ath10k-firmware-qca9984-ct-htt/install
> >> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
> >> +	$(INSTALL_DATA) \
> >> +		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \
> >> +		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
> >> +	$(INSTALL_DATA) \
> >> +		$(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/install
> >>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
> >> @@ -483,6 +611,15 @@ define Package/ath10k-firmware-qca4019-ct-full-
> htt/install
> >>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \
> >>   		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
> >>   endef
> >> +define Package/ath10k-firmware-qca4019-ct-htt/install
> >> +	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
> >> +	$(INSTALL_DATA) \
> >> +		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \
> >> +		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
> >> +	$(INSTALL_DATA) \
> >> +		$(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
> >>   	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
> >> @@ -508,6 +645,18 @@ define Package/ath10k-firmware-qca9888-ct-full-
> htt/install
> >>   		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \
> >>   		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-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) \
> >> +		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \
> >> +		$(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-ct))
> >> @@ -516,9 +665,13 @@ $(eval $(call BuildPackage,ath10k-firmware-
> qca988x-ct))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt))
> >> +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt))
> >> +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt))
> >> +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
> >>   $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt))
> >> +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))
> >>
> >> _______________________________________________
> >> openwrt-devel mailing list
> >> openwrt-devel@lists.openwrt.org
> >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> 
> 
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc  http://www.candelatech.com
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Baptiste Jonglez Sept. 4, 2020, 10:11 p.m. UTC | #4
Hi,

On 03-09-20, Adrian Schmutzler wrote:
> > > These HTT firmwares are not used in default openwrt images, but they
> > > could be used downstream: it does not seem wise to distribute a
> > > different firmware variant under the same package name.
> > 
> > Those compiled out features are not used by any ath10k driver as far as I
> > know.
> > If the driver doesn't use it, I don't see how anything else could...
> > 
> > Its still worth testing, but I think that diet variant is probably the best choice.

Yes, introducing that diet variant in master seems like a good idea.  It
will be part of the next 20.XX stable release.  As Adrian also pointed
out, the problem is backporting it to the 19.07 branch: it might break
user expectations.

> My point mainly was that it's against the idea of a stable branch to suddenly rename firmware variants in a .4 revision.
> 
> So, it would be better to use patches 1-4, drop the htt renames (5,7) and then just rebase patches 6 and 8 for the 19.07 branch.

I've sent a v2 with this approach, everything works fine on a QCA9886.  I
will try to test it a bit more on different hardware this week-end.

More testing is welcome.

Thanks,
Baptiste
diff mbox series

Patch

diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile
index 6a35e9c75c..18370b7d85 100644
--- a/package/firmware/ath10k-ct-firmware/Makefile
+++ b/package/firmware/ath10k-ct-firmware/Makefile
@@ -2,7 +2,7 @@  include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ath10k-ct-firmware
 PKG_VERSION:=2020-04-24
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -75,6 +75,7 @@  $(eval $(call Download,qca9888-board2))
 
 CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
 CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
+CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
 
 define Download/ct-firmware
   URL:=https://www.candelatech.com/downloads/$(2)
@@ -88,6 +89,12 @@  define Download/ct-firmware-full-htt
   URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT)
 endef
 
+define Download/ct-firmware-htt
+  URL:=https://www.candelatech.com/downloads/$(2)
+  FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1))
+  URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
+endef
+
 QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018
 define Download/ath10k-firmware-qca988x-ct
   $(call Download/ct-firmware,QCA988X,)
@@ -132,6 +139,13 @@  define Download/ath10k-firmware-qca99x0-ct-full-htt
 endef
 $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt))
 
+QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
+define Download/ath10k-firmware-qca99x0-ct-htt
+  $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
+  HASH:=4d4f74afca487d452f244cd48304cf9710d8941eb97a6346a949ed6b6877d657
+endef
+$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
+
 
 QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
 define Download/ath10k-firmware-qca9984-ct
@@ -147,6 +161,13 @@  define Download/ath10k-firmware-qca9984-ct-full-htt
 endef
 $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt))
 
+QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
+define Download/ath10k-firmware-qca9984-ct-htt
+  $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
+  HASH:=ee593fb5724d75c372de02ac7894e1630ee9f909fcb2e2bbf17aadef67cb9d43
+endef
+$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
+
 
 QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
 define Download/ath10k-firmware-qca4019-ct
@@ -162,6 +183,13 @@  define Download/ath10k-firmware-qca4019-ct-full-htt
 endef
 $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt))
 
+QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
+define Download/ath10k-firmware-qca4019-ct-htt
+  $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
+  HASH:=51fe06f66365771647d16039cca8b541de3d642c45271977a4cfd433c2c5d45b
+endef
+$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
+
 
 QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018
 define Download/ath10k-firmware-qca9888-ct
@@ -177,6 +205,13 @@  define Download/ath10k-firmware-qca9888-ct-full-htt
 endef
 $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt))
 
+QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018
+define Download/ath10k-firmware-qca9888-ct-htt
+  $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
+  HASH:=6c692141155f5bb74c0117553d5d48ff2aaba73bd4d5e90a5044a5e2ec0faab0
+endef
+$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
+
 
 define Package/ath10k-ct-firmware-default
   SECTION:=firmware
@@ -232,6 +267,14 @@  $(Package/ath10k-ct-firmware-default)
   PROVIDES:=ath10k-firmware-qca99x0
   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
 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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca9984-ct
 $(Package/ath10k-ct-firmware-default)
@@ -248,6 +291,14 @@  $(Package/ath10k-ct-firmware-default)
   PROVIDES:=ath10k-firmware-qca9984
   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
 endef
+define Package/ath10k-firmware-qca9984-ct-htt
+$(Package/ath10k-firmware-default)
+  TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  PROVIDES:=ath10k-firmware-qca9984
+  DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca4019-ct
 $(Package/ath10k-ct-firmware-default)
@@ -264,6 +315,14 @@  $(Package/ath10k-ct-firmware-default)
   PROVIDES:=ath10k-firmware-qca4019
   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
 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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+endef
 
 define Package/ath10k-firmware-qca9888-ct
 $(Package/ath10k-ct-firmware-default)
@@ -280,6 +339,14 @@  $(Package/ath10k-ct-firmware-default)
   PROVIDES:=ath10k-firmware-qca9888
   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
 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:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct
+endef
 
 
 define Package/ath10k-firmware-qca9887-ct/description
@@ -330,6 +397,16 @@  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-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.
+This firmware lacks a lot of features that ath10k does not use, saving
+a lot of resources.
+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.
@@ -346,6 +423,16 @@  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-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.
+This firmware lacks a lot of features that ath10k does not use, saving
+a lot of resources.
+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
 Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
@@ -360,6 +447,16 @@  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-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.
+This firmware lacks a lot of features that ath10k does not use, saving
+a lot of resources.
+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.
@@ -376,6 +473,16 @@  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-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.
+This firmware lacks a lot of features that ath10k does not use, saving
+a lot of resources.
+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 Build/Compile
@@ -445,6 +552,18 @@  define Package/ath10k-firmware-qca99x0-ct-full-htt/install
 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \
 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
 endef
+define Package/ath10k-firmware-qca99x0-ct-htt/install
+	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
+	$(INSTALL_DATA) \
+		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \
+		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
+	$(INSTALL_DATA) \
+		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
+		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
+	$(INSTALL_DATA) \
+		$(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-ct/install
 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
@@ -464,6 +583,15 @@  define Package/ath10k-firmware-qca9984-ct-full-htt/install
 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \
 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
 endef
+define Package/ath10k-firmware-qca9984-ct-htt/install
+	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
+	$(INSTALL_DATA) \
+		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \
+		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
+	$(INSTALL_DATA) \
+		$(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/install
 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
@@ -483,6 +611,15 @@  define Package/ath10k-firmware-qca4019-ct-full-htt/install
 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \
 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
 endef
+define Package/ath10k-firmware-qca4019-ct-htt/install
+	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
+	$(INSTALL_DATA) \
+		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \
+		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
+	$(INSTALL_DATA) \
+		$(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
 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
@@ -508,6 +645,18 @@  define Package/ath10k-firmware-qca9888-ct-full-htt/install
 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \
 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-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) \
+		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \
+		$(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-ct))
@@ -516,9 +665,13 @@  $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
 $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
 $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt))
+$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
 $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt))
+$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
 $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt))
+$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
 $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
 $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt))
+$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))