Bug 112451 (ath10k-fw) - Firmware files for QCA 9377 (ath10k)
Summary: Firmware files for QCA 9377 (ath10k)
Alias: ath10k-fw
Product: Networking
Classification: Unclassified
Component: Wireless (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: networking_wireless@kernel-bugs.osdl.org
Depends on:
Reported: 2016-02-14 21:29 UTC by Tobias Predel
Modified: 2016-02-22 10:43 UTC (History)
5 users (show)

See Also:
Kernel Version: 4.4
Tree: Mainline
Regression: No

the board-2.bin file for QCA9377 (417.64 KB, application/octet-stream)
2016-02-20 01:29 UTC, Ryan Hsu
dmesg without board-2.bin (61.90 KB, text/plain)
2016-02-20 03:52 UTC, Ronald
dmesg with board-2.bin (63.40 KB, text/plain)
2016-02-20 03:53 UTC, Ronald
Output of lspci (3.26 KB, text/plain)
2016-02-20 09:47 UTC, Tobias Predel
Multiple firmware files for Qualcomm QCA9377 chipset (1.42 MB, application/x-xz)
2016-02-21 13:25 UTC, Tobias Predel
QCA 9377 and AR6320 eeprom board files (3.25 MB, application/x-xz)
2016-02-21 20:38 UTC, Tobias Predel
QCA 9377 Bluetooth DFU firmware (383.95 KB, application/x-xz)
2016-02-22 10:41 UTC, Tobias Predel
QCA Bluetooth DFU firmware (601.68 KB, application/x-xz)
2016-02-22 10:43 UTC, Tobias Predel

Description Tobias Predel 2016-02-14 21:29:59 UTC

I experience connectivity issue with the Qualcomm Atheros 9377 chipset that is included in my laptop running kernel 4.4 all the time. Apart from varying transfer rates, connection is lost completely after some minutes or the rates are going down so that it renders access unusable. I tried many things, other kernel, backport tree, switching off power management, but nothing really helped over the long term.

Further things that are seen that may help to hunt down the bugs:
- When starting downloading/uploading link quality is varying about 5-10% although I'm just 5 m away from my access point. 
- iwconfig reports a high number of "invalid misc" 
- when it tries to recover from a rate "hole", the network stack encounters a high number of failed packets
- a strange huge difference between rx rate (11 mbit/s) and tx rate (1 mbit/s)
- getting error messages in dmesg like
ath10k_pci 0000:02:00.0: failed to install key for vdev 0 peer 00:xx:xx:xx:xx:xx: -110 and wlp2s0: failed to remove key (0, 00:xx:xx:xx:xx:xx) from hardware (-110)
- in connection with perf interrupt took too long (4996 > 4960), lowering kernel.perf_event_max_sample_rate to 25200

I use the proprietary firmware files provided in kvalo's github repository and renamed them accordingly. The driver still complains about missing board-2.bin and cal... file (Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2 and Direct firmware load for ath10k/QCA9377/hw1.0/board-2.bin failed with error -2)

- additional dmesg output from ath10k_pci for the firmware file: 
qca9377 hw1.0 target 0x05020000 chip_id 0x003820ff sub 1a3b:2231
kconfig debug 1 debugfs 1 tracing 0 dfs 0 testmode 0
0000:02:00.0: firmware ver WLAN.TF.1.0-00267-1 api 5 features ignore-otp crc32 79cea2c7
- for the board file: board_file api 1 bmi_id N/A crc32 544289f7
- used computer model: ASUStek E205SA

I'm not a programmer so I can't figure out what is wrong in the driver's code, so I would be very glad to see someone fixing this. Thank you!
Comment 1 Ryan Hsu 2016-02-19 18:01:38 UTC
The problem is the module in the Asustek is not using the right board file that is in the firmware.git. Has provided the new board file to Tobias, and he confirmed the issue is gone after the new board file.

Will request Kalle Valo to merge the new board file to close the issue.
Comment 2 Ronald 2016-02-20 01:26:27 UTC
well, I see some error's as well:

ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2
ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/QCA9377/hw1.0/board-2.bin failed with error -2

Acer Aspire E5-574-525M
Kernel 4.4.2

  02:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:0042] (rev 30)
      Subsystem: Foxconn International, Inc. Device [105b:e09a]

As far as I can tell, it should be an NFA435

I didn't measure connection/transfer problems, so far !
Comment 3 Ryan Hsu 2016-02-20 01:29:43 UTC
Created attachment 203951 [details]
the board-2.bin file for QCA9377

the board-2.bin file for QCA9377 for a few users that hit into the failure of the board bring up or the bad connectivity issue.
Comment 4 Ryan Hsu 2016-02-20 01:30:40 UTC

I am not exactly sure if you're seeing the same issue, as I don't see the full picture of the log, but if you don't mind, can you try the attachment to see if that help your case?
Comment 5 Ronald 2016-02-20 03:50:49 UTC
okay, thanks for lightning fast support  :-)

attached are two dmesg (dmesg, dmesg_2) 
dmesg_2 is with board-2.bin installed.

board-2-error is gone !

But I would remark that withOUT that board-2.bin I had no problems as Tobias reported.

Maybe I'm wrong here in this bug report ...
Comment 6 Ronald 2016-02-20 03:52:23 UTC
Created attachment 203961 [details]
dmesg without board-2.bin
Comment 7 Ronald 2016-02-20 03:53:25 UTC
Created attachment 203971 [details]
dmesg with board-2.bin
Comment 8 Tobias Predel 2016-02-20 09:47:05 UTC
My wireless card is using another subsystem (AzureWave Device 2231) and the board file uses api 2 (?): ath10k_pci 0000:02:00.0: board_file api 2 bmi_id N/A crc32 93da0176
Comment 9 Tobias Predel 2016-02-20 09:47:59 UTC
Created attachment 203991 [details]
Output of lspci
Comment 10 Tobias Predel 2016-02-21 13:25:39 UTC
Created attachment 204211 [details]
Multiple firmware files for Qualcomm QCA9377 chipset

Today I managed to extract the board files from a AsusTek Windows driver installer that had a Qualcomm Driver QCA9377 Installer inside. I confirm that those board files work when you install the prefered one to /lib/firmware/ath10k/QCA9377/hw1.0/board.bin. Note that they do use api version 1 and hence cannot be named board-2.bin. Good luck trying out the right board file.
Comment 11 Tobias Predel 2016-02-21 20:36:35 UTC
Here is another archive with updated eeprom board files for
- Lenovo Killer QCA2582
- QCA NFA{344i,345i,324,354,355i}
- Fujitsu NFA344
- Lenovo NFA{344,345}-{WW,US,Indonesia,Russia/Ukraine/Egypt}
- Acer NFA344
- generic NFA344
- Asus NFA{344,345}
- Samsung NFA354
- QCA NFA{435,425}
- QCA NFA435[as]

* To summarize: QCA 9377 and AR 6320
* To find out which files are needed just follow the INI entries in netathrx.inf
* Install the right one to /lib/firmware/ath10k/QCA9377/hw1.0/board.bin (if api 1).
* You may need the firmware file from https://github.com/kvalo/ath10k-firmware placed as firmware-5.bin in the same directory.
Comment 12 Tobias Predel 2016-02-21 20:38:34 UTC
Created attachment 204261 [details]
QCA 9377 and AR6320 eeprom board files

See previous comment.
Comment 13 Tobias Predel 2016-02-22 10:41:46 UTC
Created attachment 204271 [details]
QCA 9377 Bluetooth DFU firmware

Apparently the Bluetooth firmware can be updated with dfu-util. (Not tested!!)
These files I have found in another Windows installer from the AsusTek Support Site.
Comment 14 Tobias Predel 2016-02-22 10:43:46 UTC
Created attachment 204281 [details]
QCA Bluetooth DFU firmware

Other DFU firmware files that can update the firmware with dfu-util (not tested!).
Also extracted from a Windows installer.

Note You need to log in before you can comment on or make changes to this bug.