This documents some of the features of the Ath10k-CT Firmware and driver.
# Configure for 20Mhz only (disable 80, 40): echo 0xE00000006 > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special
# Configure for 40Mhz only (disable 80, 20). Please note than legacy # rates cannot ever use 40Mhz. echo 0xE00000005 > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special
# Configure for 80Mhz only (disable 40, 20). Please note that HT # and legacy rates cannot ever use 80Mhz. echo 0xE00000003 > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special
# Configure for any available Mhz (default) echo 0xE00000000 > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special
# NOTE: VHT rates are not normally available on the 2.4Ghz band without additional # kernel modifications. # Set for vht-rateset, MCS 0, NSS 1: iw dev wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0 # Set for vht-rateset, MCS 0, NSS 3: iw dev wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 3:0 # Set for vht-rateset, MCS 9, NSS 3: iw dev wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 3:9 # The ath10k 9880 3x3 NIC supports up to MCS 9, NSS 3.
# Set for ht-rateset, MCS 0, nss 1: iw dev wlan0 set bitrates legacy-5 ht-mcs-5 0 vht-mcs-5 # For HT MCS 8, nss2: iw dev wlan0 set bitrates legacy-5 ht-mcs-5 8 vht-mcs-5 # The ath10k 9880 3x3 NIC supports ht-mcs 0-23 settings.
# Set for legacy (a/g) 6Mbps iw dev wlan0 set bitrates legacy-5 6 ht-mcs-5 vht-mcs-5 # For legacy 54Mbps iw dev wlan0 set bitrates legacy-5 54 ht-mcs-5 vht-mcs-5 # Available legacy rates for the 2.4Ghz band are: 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54 # Available legacy rates for the 5Ghz band are: 6, 9, 12, 18, 24, 36, 48, 54
# Set back to default rates. iw dev wlan0 set bitrates
iw dev wlan0 station dump
# Disable WMI timeout assert in the firmware: echo 0xCFFFFFFFF > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special # Set to 8 second timeout echo 0xC00001F40 > /sys/kernel/debug/ieee80211/phy0/ath10k/ct_special
# Enable CFR data reporting. echo 0xD00000001 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special # Disable CFR data reporting. echo 0xD00000000 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special
# Enable txbf frames and txbf_cv WMI messages to be sent to the driver. echo 0xF00000001 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special # Disable txbf frames and txbf_cv WMI messages from being sent to the driver (default). echo 0xF00000000 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special
# Enable rc-txbf-probe echo 0x100400000001 > /sys/kernel/debug/ieee80211/wiphy1/ath10k/ct_special # Disable rc-txbf-probe echo 0x100400000000 > /sys/kernel/debug/ieee80211/wiphy1/ath10k/ct_special
As of Jan 20, 2018: To force NDP probes to go out even when the firmware otherwise thinks that txbf is not necessarily optimal, set the bit 0x2 for the rc-txbf-probe command:
# Enable rc-txbf-probe with extra logic to force NDP to go out more often echo 0x100400000003 > /sys/kernel/debug/ieee80211/wiphy1/ath10k/ct_special
# Enable receiving all mgt frames echo 0x1000000001 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special # Disable receiving all mgt frames echo 0x1000000000 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special
# Set MU sounding timer to 16ms echo 0x100300000010 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special # Set SU sounding timer to 32ms echo 0x100200000020 > /sys/kernel/debug/ieee80211/phy1/ath10k/ct_special # Set values to 0 and restart the firmware (or just reload the entire driver), # and values will be automatically set back to firmware defaults.
# Force sounding frame to station 1. echo 0xFF004A80000001 > /sys/kernel/debug/ieee80211/hy1/ath10k/ct_specialWhile testing this, I noticed that the TX logic in the NIC/Firmware would hang if I ran this command in a fast loop. So, the firmwre now has protection where it will ignore any of these commands that are closer than 25ms apart. Possibly it will still be unstable in long runs even with 25ms spacing...time and testing will tell.
Further testing shows this is fragile at best. It appears to fail entirely on 4019 radios similar to how it failed on 9984 at high speeds. This feature will be compiled out of any diet (trimmed) CT firmware builds, at least until the problems are understood and resolved.