openwrt/package/firmware/ath10k-firmware/Makefile

617 lines
21 KiB
Makefile
Raw Normal View History

#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ath10k-firmware
PKG_SOURCE_DATE:=2018-02-09
PKG_SOURCE_VERSION:=8f4bafdd400d21a65966004d0ce6e0686ef4d9bc
PKG_MIRROR_HASH:=4f4f0678b9d07c0282f18c69bd63a5e2a2ae015b9ce7298cedb88a60be87ed3a
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/kvalo/ath10k-firmware.git
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
include $(INCLUDE_DIR)/package.mk
define Package/ath10k-firmware-default
SECTION:=firmware
CATEGORY:=Firmware
URL:=$(PKG_SOURCE_URL)
DEPENDS:=
endef
define Package/ath10k-firmware-qca9887
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA9887 devices
endef
define Package/ath10k-firmware-qca9888
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA9888 devices
endef
define Package/ath10k-firmware-qca9887-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k-CT firmware for QCA9887 devices
endef
define Package/ath10k-firmware-qca988x
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA988x devices
SECTION:=firmware
CATEGORY:=Firmware
endef
CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT)
CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT)
define Download/ct-firmware
URL:=https://www.candelatech.com/downloads/$(2)
FILE:=$(call CT_FIRMWARE_FILE,$(1))
URL_FILE:=$($(1)_FIRMWARE_FILE_CT)
endef
define Download/ct-firmware-htt
URL:=https://www.candelatech.com/downloads/$(2)
FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1))
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
endef
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-20.bin.lede.001
define Download/ath10k-firmware-qca988x-ct
$(call Download/ct-firmware,QCA988X,)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=77a57d4e0da5fa1efab64cb36e0363ce49d7b7638bcfd1e8c8e323673c4abef8
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct))
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-20.bin.lede.001
define Download/ath10k-firmware-qca988x-ct-htt
$(call Download/ct-firmware-htt,QCA988X,)
HASH:=a1f90d9de19bb148f3e4c6570bf7572cf90c7c6870d0afcf8a87d67114eab701
endef
$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-20.bin.lede.001
define Download/ath10k-firmware-qca9887-ct
$(call Download/ct-firmware,QCA9887,ath10k-9887)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=94081f86e7058083170fe25fa3735026a99fe535890b80ac81b28d0f5e0cc089
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct))
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-20.bin.lede.001
define Download/ath10k-firmware-qca9887-ct-htt
$(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
HASH:=f31e5f5f546ef7c104b9526d0a95faf4c291b21e7512a19f624c5a015dee80f1
endef
$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.001
define Download/ath10k-firmware-qca99x0-ct
$(call Download/ct-firmware,QCA99X0,ath10k-10-4)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=5d0765496982cb504a233395b91407b10b82a334adb928324489c67916f349f1
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.001
define Download/ath10k-firmware-qca99x0-ct-htt
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4)
HASH:=520f0ecfeba034056a196793d2f0e628d4c89bd1080c6a811fdc3a4b35bfe8d6
endef
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.001
define Download/ath10k-firmware-qca9984-ct
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=1bb526349182e23be79f73ca4e9761bc0f20b2672efdce9976f31804df750e96
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct))
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.001
define Download/ath10k-firmware-qca9984-ct-htt
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4)
HASH:=cf18bd88f8995d383be25fe302b205b8cde3f593b88e34bdffe05732520abfde
endef
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.003
define Download/ath10k-firmware-qca4019-ct-htt
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=7648902c9bc7b173b0845da79b7e469b87c192efb387e25505007edbe5661a17
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.003
define Download/ath10k-firmware-qca4019-ct
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=5167a5a3792bbd25c4285c8e6e44fc4564ebd0046597b00eb9bbcb1836a388bb
endef
$(eval $(call Download,ath10k-firmware-qca4019-ct))
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-10.bin-lede.003
define Download/ath10k-firmware-qca9888-ct
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4)
ath10k-ct: Update wave-1 and wave-2 firmware to latest. This updates to latest ath10k-ct firmware. Hopefully we are at the end of the development cycle for this firmware release, so these should be stable. wave-1 changes since last release: Release 20 * Allow flushing peer when deleting. Hopefully this will allow the peer delete command to happen in a reasonable amount of time even if the RF environment is busy (or peer has died). To enable this, set the high flag in the mac-addr second word in the ath10k driver near end of the ath10k_wmi_op_gen_peer_delete method: cmd->peer_macaddr.word1 |= __cpu_to_le32(0x80000000); * Attempt to fix crash seen in resmgr-ocs, appearantly due to list corruption. Use a temporary list instead of trying to rely on for-each-safe. * Add flag to tx-descriptor to allow driver to request no-ack on data frames. This is bit 15 on the flag1 field (previously un-used). * Add option to support specifying the tx-rate-code and retry count on a per-packet basis. Only a single series is supported at this time. Useful mainly for radiotap monitor-tx type testing at this point. * Fix crash on startup when chip is at -40 deg C and calibration fails. Instead of asserting, just keep retrying calibration, which appears to start working after a few minutes (when the chip warms up). * Allow reporting per-chain rssi for management frames. We pack the values into empty space in the mgt-frame wmi header. This will only be enabled if the driver requests it, since otherwise the driver is assumed to not understand the new API. ath10k-ct drivers that support this feature will automatically enable it. * A customer reports a case that appears to be the hardware not properly detecting end of AMPDU, so frames were being mis-delivered to the wrong peer. Attempt to work around this, and in doing so, clean up a bunch of void* abuse in the block-ack reordering code (could not ever confirm there was a problem in this area). * Re-work the rx-mem logic to be less complicated and to use less memory. * Attempt to fix crash that appearanty happens because the driver can sometimes delete a vdev in 'up' state. * Attempt to fix hung scan state machine issues. * Fix crash in tx path due to un-initialized memory. wave-2 changes since last release: Release 10 * Fix an assert related to tx scheduling. This hopefully fixes what appears to be a regression that I added some time back. * Enable CSI reporting for 9984, and maybe 9888/9886. Only in non-trimmed builds. * Other stability improvements, including regression fixes from some tricky bugs introduced in earlier releases. * Allow compiling for IPQ4019 chipset. * Firmware will now send txbf frames to the host (driver) if the TXBF (0xF00000001) set-special feature is enabled, or when the radio is in monitor mode. But, if the frame is consumed by the txbf_cv logic, then the pkt cannot be delivered to the host in this manner. Instead, a WMI event will be sent and host can find the txbf_cv data in shared memory. See ath10k_wmi_event_txbf_cv_mesg() in ath10k-ct driver. * Support rx-all-mgt option. When enabled, the firmware will deliver all management frames that it can to the host. No RX filters are changed when this option is enabled. * Fix at least some problems with sending tx-beamforming frames to SU-MIMO peers. Looks like this was a regression in my code. * Fix a crash in rate-ctrl due to nss mismatch. This was something I introduced while trying to fix other bugs in rate-ctrl some time back. * Attempt to fix a sw-peer-key object leak in IBSS mode. The peer key code is very complex, and shares some pointers as union members. I think I fixed at least some of the issues, but would not be surprised if more exist. * Improve ath10k user guide to document CT firmware features: https://www.candelatech.com/ath10k-ug.php * Add ct-special option to configure the txbf sounding time. See ath10k-ug.php * Fix and allow the driver to tell the firmware to send sounding frames. See ath10k-ug.php In further testing, this seems to fail much of the time, and I am not sure why. Disabling this in diet (trimmed) builds. * Fix crashes related to deleting peers while they are in power-save mode. Reported by LEDE user on r7800 with 9984 NIC. * Make rate-ctrl txbf probe work better. If enabled, the rate-ctrl logic will periodically send out probes at an NSS that can to txbf. Previously, txbf probes would not reliably happen if both AP and peer had the same nss (ie, 2x2 talking to 2x2). To enable this feature, you need to enable the fwtest-cmdid number 20. * Report rx-timeout error counters. These were previously un-reported, though the field existed in the wmi struct already. * txbf: Ignore frames not destined for us. If NIC is in promisc mode, it could acquire and process NDPA frames that were not destined for it. Check the dest-MAC and ignore frames not for us (pass them up the stack for monitor mode instead of save them in the peer's rate-ctrl logic.) * Port ping-pong crash handling and othe related features to IPQ4019 target. It should now act similar to 9984 in this regard. * Fix a few asserts related to txbf and tx-seq logic. * Add custom-stats support, for rx-reorder-stats. Similar to what I did for wave-1. * Disable AMSDU for IBSS. This now matches what I did for peregrine. It seems to work better this way, though I did not debug it in detail. * Enable the set-special command to re-enable AMSDU for IBSS if user wants to experiment. * Fix bug where dbglog did not disable IRQs, so if you made dbglog messages from the IRQ handler, it could cause corruption that could crash the firmware and/or corrupt the log message buffers. * Don't assert if there are no buffer descriptors for RX of non-data frame. * Retry any stuck block-ack sessions every 20 seconds instead of just disabling BA for ever when we get too many failures. * Fix SGI flag when reporting tx-rate info. The flag moved since wave-1 days, and I did not notice that when I ported my changes forward to wave-2. * Allow disabling special CCA handling for IBSS txqs. Earlier testing indicated this might improve throughput in some testing on 9984 chips in IBSS mode, but subsequent testing looks about the same without it. Since I do not really understand what this setting exists for, leave it at upstream defaults. A new set-special API command (0x12) can be used to enable this hack for testing. Setting 0x1 bit disables special CCA handling for non-beacon IBSS txqs, setting 0x2 bit disables it for beacon queues as well. * Add MCAST-BCAST feature flag. This tells driver we do not need a monitor interface to do MESH. * When calculating the rx-address filter (affects ACK & BLOCK-ACK, among other things), to not add in monitor interfaces if other interfaces are up. There is no need for a monitor device to ACK frames. Signed-off-by: Ben Greear <greearb@candelatech.com>
2018-03-21 17:29:02 +00:00
HASH:=5fe7208894f52a11e99c45005370161c8f919e10b396b978652af06f43234ed2
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct))
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-10.bin-lede.003
define Download/ath10k-firmware-qca9888-ct-htt
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4)
HASH:=dc35c392cf2688a97ed5c4ca6490bd7a3d622bb711edb246b09a3d9a0b9dc0d0
endef
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
define Package/ath10k-firmware-qca99x0
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA99x0 devices
SECTION:=firmware
CATEGORY:=Firmware
endef
define Package/ath10k-firmware-qca988x-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.1 firmware for QCA988x devices
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca988x
endef
define Package/ath10k-firmware-qca988x-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.1 htt-mgt fw for QCA988x
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca988x
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9887-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.1 firmware for QCA9887 devices
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9887
endef
define Package/ath10k-firmware-qca9887-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.1 htt-mgt fw for QCA9887
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9887
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca988x-ct/description
Alternative ath10k firmware for QCA988X from Candela Technologies.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.1.php
This firmware will NOT be used unless the standard ath10k-firmware-qca988x
is un-selected since the driver will try to load firmware-5.bin before
firmware-2.bin
endef
define Package/ath10k-firmware-qca988x-ct-htt/description
Alternative ath10k firmware for QCA988X from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and fixes .11r authentication.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.1.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca9887-ct/description
Alternative ath10k firmware for QCA9887 from Candela Technologies.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.1.php
This firmware conflicts with the standard 9887 firmware, so select only
one.
endef
define Package/ath10k-firmware-qca9887-ct-htt/description
Alternative ath10k firmware for QCA9887 from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and fixes .11r authentication.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.1.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca99x0-ct/description
Alternative ath10k firmware for QCA99x0 from Candela Technologies.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware conflicts with the standard 99x0 firmware, so select only
one.
endef
define Package/ath10k-firmware-qca99x0-ct-htt/description
Alternative ath10k firmware for QCA99x0 from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and may be required for .11r authentication.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca9984-ct/description
Alternative ath10k firmware for QCA9984 from Candela Technologies.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware conflicts with the standard 9984 firmware, so select only
one.
endef
define Package/ath10k-firmware-qca9984-ct-htt/description
Alternative ath10k firmware for QCA9984 from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and may be required for .11r authentication.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca4019-ct/description
Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
Enables IBSS and other features. Works with standard or ath10k-ct driver.
See: http://www.candelatech.com/ath10k-10.4.php
endef
define Package/ath10k-firmware-qca4019-ct-htt/description
Alternative ath10k firmware for IPQ4019 radio from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and may be required for .11r authentication.
Enables IBSS and other features.
See: http://www.candelatech.com/ath10k-10.4.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca9888-ct/description
Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware conflicts with the standard 9886 and 9888 firmware, so select only
one.
endef
define Package/ath10k-firmware-qca9888-ct-htt/description
Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies.
Uses normal HTT TX data path for management frames, which improves
stability in busy networks and may be required for .11r authentication.
Enables IBSS and other features. See:
http://www.candelatech.com/ath10k-10.4.php
This firmware selects and requires the ath10k-ct driver.
endef
define Package/ath10k-firmware-qca99x0/description
Standard ath10k firmware for QCA99x0 from QCA
This firmware conflicts with the CT 99x0 firmware, so select only
one.
endef
define Package/ath10k-firmware-qca99x0-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 firmware for QCA99x0 devices
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca99x0
endef
define Package/ath10k-firmware-qca99x0-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca99x0
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9984-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 firmware for QCA9984 devices
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9984
endef
define Package/ath10k-firmware-qca9984-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9984
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca4019-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 firmware for QCA4018/9
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca4019
endef
define Package/ath10k-firmware-qca4019-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca4019
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9888-ct
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 fw for QCA9886/8 devices
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9888
endef
define Package/ath10k-firmware-qca9888-ct-htt
$(Package/ath10k-firmware-default)
TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8
SECTION:=firmware
CATEGORY:=Firmware
PROVIDES:=ath10k-firmware-qca9888
DEPENDS:=+kmod-ath10k-ct
endef
define Package/ath10k-firmware-qca9984
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA9984 devices
SECTION:=firmware
CATEGORY:=Firmware
endef
define Package/ath10k-firmware-qca4019
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for IPQ/QCA4019 devices
SECTION:=firmware
CATEGORY:=Firmware
endef
define Package/ath10k-firmware-qca6174
$(Package/ath10k-firmware-default)
TITLE:=ath10k firmware for QCA6174 devices
SECTION:=firmware
CATEGORY:=Firmware
endef
QCA99X0_BOARD_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe
QCA99X0_BOARD_FILE:=board-2.bin.$(QCA99X0_BOARD_REV)
define Download/qca99x0-board
URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0
URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD_REV)
FILE:=$(QCA99X0_BOARD_FILE)
HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401
endef
$(eval $(call Download,qca99x0-board))
define Build/Compile
endef
define Package/ath10k-firmware-qca4019/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA4019/hw1.0/3.4/firmware-5.bin_10.4-3.4-00104 \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca9887/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9887/hw1.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00033 \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-5.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
endef
define Package/ath10k-firmware-qca9888/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9888/hw2.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca988x/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA988X/hw2.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00033 \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca6174/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k
$(CP) $(PKG_BUILD_DIR)/QCA6174 $(1)/lib/firmware/ath10k/
endef
define Package/ath10k-firmware-qca99x0/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
$(INSTALL_DATA) \
$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA99X0/hw2.0/firmware-5.bin_10.4.1.00030-1 \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca9984/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9984/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
endef
# CT related firmware
define Package/ath10k-firmware-qca9887-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9887) \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
endef
define Package/ath10k-firmware-qca9887-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9887) \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \
$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin
endef
define Package/ath10k-firmware-qca988x-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
endef
define Package/ath10k-firmware-qca988x-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA988X) \
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin
endef
define Package/ath10k-firmware-qca99x0-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
$(INSTALL_DATA) \
$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca99x0-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
$(INSTALL_DATA) \
$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \
$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca9984-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca9984-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \
$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca4019-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca4019-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \
$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin
endef
define Package/ath10k-firmware-qca9888-ct/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
ln -s \
../../cal-pci-0000:01:00.0.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
endef
define Package/ath10k-firmware-qca9888-ct-htt/install
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0
ln -s \
../../cal-pci-0000:01:00.0.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
$(INSTALL_DATA) \
$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \
$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin
endef
$(eval $(call BuildPackage,ath10k-firmware-qca9887))
$(eval $(call BuildPackage,ath10k-firmware-qca9888))
$(eval $(call BuildPackage,ath10k-firmware-qca988x))
$(eval $(call BuildPackage,ath10k-firmware-qca99x0))
$(eval $(call BuildPackage,ath10k-firmware-qca6174))
$(eval $(call BuildPackage,ath10k-firmware-qca9984))
$(eval $(call BuildPackage,ath10k-firmware-qca4019))
$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt))
$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-htt))
$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt))
$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt))
$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt))
$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct))
$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt))