Skip to content

Commit

Permalink
bsp: use mainline/QCA driver and firmware for ath10k WiFi
Browse files Browse the repository at this point in the history
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.

Note that currently the mainline driver also benefits from a local
patch in OpenWrt that reduces the memory footprint. This patch has
been removed in master, so we will need to keep it locally when using
a 20.xx OpenWrt release. [6]

[1] https://github.com/greearb/ath10k-ct.git
[2] openwrt/openwrt@61b5b49
[3] openwrt/openwrt@1ac6270
[4] freifunk-berlin/firmware#696
    https://forum.openwrt.org/t/ath10k-ct-and-802-11s-mesh-not-working-on-archer-c7/13877
[5] openwrt/openwrt#2341 (comment)
[6] openwrt/openwrt@1e27bef

Signed-off-by: Adrian Schmutzler <[email protected]>
Reviewed-by: Fabian Bläse <[email protected]>
Tested-by: Fabian Bläse <[email protected]>
  • Loading branch information
adschm committed Apr 2, 2020
1 parent 44e9376 commit aca1223
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
20 changes: 14 additions & 6 deletions bsp/ar71xx/.config
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -103,4 +103,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
6 changes: 5 additions & 1 deletion bsp/ipq806x/.config
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit aca1223

Please sign in to comment.