[PATCH] bsp: use mainline/QCA driver and firmware for ath10k WiFi

Adrian Schmutzler freifunk at adrianschmutzler.de
Mo Mär 30 18:35:51 CEST 2020


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 <freifunk at adrianschmutzler.de>

---

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
-- 
2.20.1



Mehr Informationen über die Mailingliste franken-dev