From patchwork Mon Mar 30 16:35:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: bsp: use mainline/QCA driver and firmware for ath10k WiFi From: Adrian Schmutzler X-Patchwork-Id: 1314 Message-Id: <20200330163551.1426-1-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Mon, 30 Mar 2020 18:35:51 +0200 OpenWrt offers two variants of ath10k driver and firmware, the "normal" mainline/QCA variant and the "CT" variant [1] developed as fork by Candela Technologies. Both deviate from each other with respect to their feature set, level of support and system impact (i.e. memory consumption). Since the 19.07 release, OpenWrt has made the "CT" variant its default for supporting (almost) all ath10k chips. [2] However, for this firmware the CT driver/firmware introduces a number of (potential) drawbacks: - CT memory consumption seems to be higher. (This still needs to be verified for the new kmod-ath10k-ct-smallbuffers variant.) This is particularly a problem on several ath10k devices with 64 MB RAM, where the devices run into OOM regularly (i.e. C60 v1/v2). [3] - Though CT has active support, it is still just a fork effectively maintained by one person. - With CT driver/firmware there are frequent reports that the combination of AP and 802.11s is not working. [4] While this issue couldn't be reproduced in recent tests, it still is explicitly not supported, and there is no interest to change that at the moment. [5] Due to these reasons, it seems more appropriate for us to use the mainline/QCA variant of ath10k driver and firmwares. This patch applies that to all affected devices. [1] https://github.com/greearb/ath10k-ct.git [2] https://github.com/openwrt/openwrt/commit/61b5b4971e7d6aab6b0695997c3b5aaf73c53b5f [3] https://github.com/openwrt/openwrt/commit/1ac627024de916eb157659caf49f93fa89d3b19a [4] https://github.com/freifunk-berlin/firmware/issues/696 https://forum.openwrt.org/t/ath10k-ct-and-802-11s-mesh-not-working-on-archer-c7/13877 [5] https://github.com/openwrt/openwrt/pull/2341#issuecomment-580904873 Signed-off-by: Adrian Schmutzler Reviewed-by: Fabian Bläse Tested-by: Fabian Bläse --- Dieser Patch ist weder run- noch build-tested. --- bsp/ar71xx/.config | 20 ++++++++++++++------ bsp/ipq806x/.config | 6 +++++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config index 6c2c730d..9a6cd0a2 100644 --- a/bsp/ar71xx/.config +++ b/bsp/ar71xx/.config @@ -5,15 +5,15 @@ CONFIG_TARGET_ar71xx=y CONFIG_TARGET_ar71xx_tiny=y CONFIG_TARGET_MULTI_PROFILE=y CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_archer-c25-v1=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c25-v1="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c25-v1="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca9887-ct ath10k-firmware-qca9887" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_archer-c60-v1=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c60-v1="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c60-v1="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_archer-c60-v2=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c60-v2="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c60-v2="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_archer-c7-v2=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c7-v2="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c7-v2="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca988x-ct ath10k-firmware-qca988x" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_archer-c7-v5=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c7-v5="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_archer-c7-v5="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca988x-ct ath10k-firmware-qca988x" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_cpe210-220-v1=y CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_cpe210-220-v1="-rssileds" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_cpe210-v2=y @@ -79,7 +79,7 @@ CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_ubnt-nano-m="-rssileds" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_ubnt-unifi=y CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_ubnt-unifi="" CONFIG_TARGET_DEVICE_ar71xx_tiny_DEVICE_ubnt-unifiac-lite=y -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_ubnt-unifiac-lite="" +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_tiny_DEVICE_ubnt-unifiac-lite="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca988x-ct ath10k-firmware-qca988x" CONFIG_BUSYBOX_CUSTOM=y CONFIG_TARGET_PER_DEVICE_ROOTFS=y # CONFIG_BUSYBOX_CONFIG_BRCTL is not set @@ -102,4 +102,12 @@ CONFIG_PACKAGE_iwinfo=m CONFIG_PACKAGE_libiwinfo=m CONFIG_PACKAGE_opkg=m CONFIG_PACKAGE_wpad-mini=m +CONFIG_PACKAGE_ath10k-firmware-qca9887=m +CONFIG_PACKAGE_ath10k-firmware-qca9888=m +CONFIG_PACKAGE_ath10k-firmware-qca988x=m +CONFIG_PACKAGE_kmod-ath10k=m +CONFIG_PACKAGE_ath10k-firmware-qca9887-ct=m +CONFIG_PACKAGE_ath10k-firmware-qca9888-ct=m +CONFIG_PACKAGE_ath10k-firmware-qca988x-ct=m +CONFIG_PACKAGE_kmod-ath10k-ct=m CONFIG_STRIP_KERNEL_EXPORTS=y diff --git a/bsp/ipq806x/.config b/bsp/ipq806x/.config index cb8074eb..a02f76fa 100644 --- a/bsp/ipq806x/.config +++ b/bsp/ipq806x/.config @@ -5,10 +5,14 @@ CONFIG_TARGET_ipq806x=y CONFIG_TARGET_ipq806x_generic=y CONFIG_TARGET_MULTI_PROFILE=y CONFIG_TARGET_DEVICE_ipq806x_generic_DEVICE_tplink_c2600=y -CONFIG_TARGET_DEVICE_PACKAGES_ipq806x_generic_DEVICE_tplink_c2600="" +CONFIG_TARGET_DEVICE_PACKAGES_ipq806x_generic_DEVICE_tplink_c2600="-ath10k-firmware-qca99x0-ct ath10k-firmware-qca99x0" CONFIG_TARGET_PER_DEVICE_ROOTFS=y CONFIG_BUSYBOX_CUSTOM=y CONFIG_CLEAN_IPKG=y CONFIG_PACKAGE_kmod-hwmon-core=m CONFIG_PACKAGE_opkg=m +CONFIG_PACKAGE_ath10k-firmware-qca99x0=m +CONFIG_PACKAGE_kmod-ath10k=y +CONFIG_PACKAGE_ath10k-firmware-qca99x0-ct=m +CONFIG_PACKAGE_kmod-ath10k-ct=m CONFIG_STRIP_KERNEL_EXPORTS=y