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

Ben Greear greearb at candelatech.com
Thu Sep 3 13:31:38 EDT 2020


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 at 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 at 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 at lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel


-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com



More information about the openwrt-devel mailing list