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

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] 61b5b4971e
[3] 1ac627024d
[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
[6] 1e27befe63

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Fabian Bläse <fabian@blaese.de>
Tested-by: Fabian Bläse <fabian@blaese.de>
This commit is contained in:
Adrian Schmutzler 2020-03-30 18:35:51 +02:00
parent 44e9376a37
commit aca1223f06
2 changed files with 19 additions and 7 deletions

View File

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

View File

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