Surface Go - QCA6174 wifi card not correctly recognized and therefore not working

Bug #1804028 reported by Waynexyz
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
linux-firmware (Fedora)
Fix Released
High
linux-firmware (Ubuntu)
Incomplete
Undecided
Unassigned

Bug Description

Output of dmesg on Surface Go fresh installed Ubuntu 18.10.

"[ 4.242132] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 4.242138] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 4.243006] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00079-QCARMSWPZ-1 api 6 features wowlan,ignore-otp crc32 fd869beb
[ 4.308059] ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3370 from ath10k/QCA6174/hw3.0/board-2.bin
[ 4.309354] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ed5f849a"

There is a board.bin available directly from the vendor http://www.killernetworking.com/support/K1535_Debian/board.bin

The only thing which is missing is getting this added to https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles so the official board-2.bin. My problem is that I dont know how to read the board files and modify them because I do not know the encoding they use.

Also there have been some updates in the upstream linux-firmware repo. https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=a87eb5f7bac0f70ade57da57d9126d14eee12336 and https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0 but they also do not help to get the wifi card working/recognized.

Any ideas how to get this solved?

Also there is a guide how to port it to Linux https://developer.qualcomm.com/download/qca9377/wlan-bluetooth-linux-porting-guide.pdf

no longer affects: launchpad
Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

After copying the above http://www.killernetworking.com/support/K1535_Debian/board.bin to the following folder "/lib/firmware/ath10k/QCA6174/hw3.0", the wifi works flawless. Just the "board.bin" and "board-2.bin" in "/lib/firmware/ath10k/QCA6174/hw3.0" have to be deleted before.

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/ath10k/QCA6174/hw3.0/ the files in that folder need to be modified I think and added the needed information in the board-2.bin . So if anyone knows which informations are needed, please let me know and I will help debugging to get the stuff upstream.

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

this is the output of dmesg after replacing the board.bin with the one from killernetworking.com:

dmesg | grep ath
[ 4.513563] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[ 4.806988] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 4.806994] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 4.807918] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00079-QCARMSWPZ-1 api 6 features wowlan,ignore-otp crc32 fd869beb
[ 4.876632] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 70c38a29
[ 5.593731] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 5.596743] ath10k_pci 0000:01:00.0: Unknown eventid: 90118
[ 5.600688] ath10k_pci 0000:01:00.0: htt-ver 3.47 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[ 5.691843] ath: EEPROM regdomain: 0x0
[ 5.691845] ath: EEPROM indicates default country code should be used
[ 5.691846] ath: doing EEPROM country->regdmn map search
[ 5.691849] ath: country maps to regdmn code: 0x3a
[ 5.691850] ath: Country alpha2 being used: US
[ 5.691851] ath: Regpair used: 0x3a
[ 6.576740] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
[ 7.403038] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 7.406042] ath10k_pci 0000:01:00.0: Unknown eventid: 90118
[ 184.060093] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 184.063109] ath10k_pci 0000:01:00.0: Unknown eventid: 90118

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

There is also a .zip files available https://www.killernetworking.com/killersupport/item/killer-drivers-inf which includes some .bin files for the QCA6174 (e.g. "qca61x4_1_1_2.bin" )

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :
Download full text (14.2 KiB)

Summary of all tests:

before in dmesg, plain 18.10 install, all files from Ubuntu 18.10:

[ 4.242132] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 4.242138] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 4.243006] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00079-QCARMSWPZ-1 api 6 features wowlan,ignore-otp crc32 fd869beb
[ 4.308059] ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3370 from ath10k/QCA6174/hw3.0/board-2.bin
[ 4.309354] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ed5f849a

after copying board.bin from http://www.killernetworking.com/support/K1535_Debian/board.bin to /lib/firmware/ath10k/QCA6174/hw3.0/:

dmesg | grep ath
[ 4.513563] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[ 4.806988] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 4.806994] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 4.807918] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00079-QCARMSWPZ-1 api 6 features wowlan,ignore-otp crc32 fd869beb
[ 4.876632] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 70c38a29
[ 5.593731] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 5.596743] ath10k_pci 0000:01:00.0: Unknown eventid: 90118
[ 5.600688] ath10k_pci 0000:01:00.0: htt-ver 3.47 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[ 5.691843] ath: EEPROM regdomain: 0x0
[ 5.691845] ath: EEPROM indicates default country code should be used
[ 5.691846] ath: doing EEPROM country->regdmn map search
[ 5.691849] ath: country maps to regdmn code: 0x3a
[ 5.691850] ath: Country alpha2 being used: US
[ 5.691851] ath: Regpair used: 0x3a
[ 6.576740] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
[ 7.403038] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 7.406042] ath10k_pci 0000:01:00.0: Unknown eventid: 90118
[ 184.060093] ath10k_pci 0000:01:00.0: Unknown eventid: 118809
[ 184.063109] ath10k_pci 0000:01:00.0: Unknown eventid: 90118

board-2.bin and firmware-6.bin to /lib/firmware/ath10k/QCA6174/hw3.0 from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/ath10k/QCA6174/hw3.0/

dmesg | grep ath1
[ 4.705768] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[ 5.018964] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 5.018969] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 5.019857] ath10k_pci 0000:01:00.0: firmware ver RM.4.4.1.c2-00057-QCARMSWP-1 api 6 features wowlan,ignore-otp,no-4addr-pad,raw-mode crc32 e061250a
[ 5.086600] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 20d869c3
[ 5.767716] ath10k_pci 0000:01:00.0: firmware crashed! (guid 390954f4-9e12-4a66-beb8-e2378fd94072)
[ 5.767728] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 5.767733] ath10k_pci 0000:01:00.0: kconfig de...

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

So somehow with newer boad-2.bin files the card get recognized but the firmware still crashes.

Revision history for this message
In , fedora_45sg (fedora45sg-redhat-bugs) wrote :

Description of problem:

After booting, the wifi card is not properly recognized.

Version-Release number of selected component (if applicable):

firmware version can be seen in dmesg output.

"[ 4.242132] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
[ 4.242138] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 4.243006] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00079-QCARMSWPZ-1 api 6 features wowlan,ignore-otp crc32 fd869beb
[ 4.308059] ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3370 from ath10k/QCA6174/hw3.0/board-2.bin
[ 4.309354] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ed5f849a"

How reproducible:

Insert usb-pen, boot Fedora 29 Workstation, open terminal, get dmesg output

Steps to Reproduce:
1. Boot
2. get dmesg output

Actual results:

dmesg output:

Wifi/bluetooth card not properly recognized and therefore not working

Expected results:

Wifi/bluetooth working.

Additional info:

I added some more results here:

https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1804028

summary: - Surface Go - Atheros Qualcomm Killer N1525 Wireless-AC [168c:003e] not
- correctly recognized
+ Surface Go - QCA6174 wifi card not correctly recognized and therefore
+ not working
Changed in linux-firmware (Fedora):
importance: Unknown → High
status: Unknown → Confirmed
Revision history for this message
In , fedora_45sg (fedora45sg-redhat-bugs) wrote :

In the .zip from https://www.killernetworking.com/killersupport/item/killer-drivers-inf in the file ./Killer-Ethernet-Wireless_INF/Production/Windows10-x64/11AC/netathr10x.inf I finally found one matching subsystem-device=3370 entry, which leads to:

"
%ATHR.DeviceDesc.6320_3% = ATHR_DEV_OS63_988x_TX8.ndi, PCI\VEN_168C&DEV_003E&SUBSYS_3370168C&REV_32; WiFi Only SKU
"

about this special .ndi there are some entrys later:

"
[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64]
Characteristics = 0x84
BusType = 5
AddReg = atheros_os63.reg, atheros11n.reg, smpsDynamic.reg, qca_utf.reg, D0PC.reg, roam.reg, wmmac.reg, FW_3X.reg, BD_TX8.reg, enableTxbfee.reg, wowEnable.reg, ForceWowSleep.reg, fastDlBinary.reg, enableSmbios.reg, Ch1213_options_SingleSKU.reg
CopyFiles = atheros.CopyFiles, atheros_FW_3X.CopyFiles, atheros_BD_TX8.CopyFiles, service.CopyFiles
*IfType = 71 ; IF_TYPE_IEEE80211
*MediaType = 16 ; NdisMediumNative802_11
*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
Include = machine.inf, netvwifibus.inf
Needs = VWiFiBus.CopyFiles

[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64.Services]
AddService = Qcamain10x64, 2, atheros.Service, atheros.EventLog
Include = netvwifibus.inf
Needs = VWiFiBus.Services
AddService = QcomWlanSrv, 0x00000800, wlanService

[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64.HW]
AddReg = MSI.reg
Include = netvwifibus.inf
Needs = PciASPMOptIn.Hw, VWiFiBus.PnPFilterRegistration.Hw, PciD3ColdSupported.Hw
"

I am just a bit confused because it just says "Wifi Only SKU" and I know from the Windows Device Manager that also bluetooth is done with the same chip, see https://www.reddit.com/r/Surface/comments/9386l7/surface_go_wifi_qualcomm_qca61x4a/e3bbi1b/ but maybe there are two different build-in, one for wifi and one for bluetooth?

Anyway, from the quote there is one interesting line:

"
CopyFiles = atheros.CopyFiles, atheros_FW_3X.CopyFiles, atheros_BD_TX8.CopyFiles, service.CopyFiles
"

It seems that there exist just one file with "TX8" in it: "eeprom_ar6320_3p0_TX8_clpc.bin"

I copied the .bin file as board.bin to /lib/firmware/ath10k/QCA6174/hw3.0/ and it finally works! Wifi is directly working and no error messages anymore in dmesg! :-)

So eeprom_ar6320_3p0_TX8_clpc.bin, or the informations of that .bin file have to be added to https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles and this should be a clean solution, because the subsystem-device=3370 ID is matching.

Can someone please double check if this is the correct solution which could go upstream?

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

In the .zip from https://www.killernetworking.com/killersupport/item/killer-drivers-inf in the file ./Killer-Ethernet-Wireless_INF/Production/Windows10-x64/11AC/netathr10x.inf I finally found one matching subsystem-device=3370 entry, which leads to:

"
%ATHR.DeviceDesc.6320_3% = ATHR_DEV_OS63_988x_TX8.ndi, PCI\VEN_168C&DEV_003E&SUBSYS_3370168C&REV_32; WiFi Only SKU
"

about this special .ndi there are some entrys later:

"
[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64]
Characteristics = 0x84
BusType = 5
AddReg = atheros_os63.reg, atheros11n.reg, smpsDynamic.reg, qca_utf.reg, D0PC.reg, roam.reg, wmmac.reg, FW_3X.reg, BD_TX8.reg, enableTxbfee.reg, wowEnable.reg, ForceWowSleep.reg, fastDlBinary.reg, enableSmbios.reg, Ch1213_options_SingleSKU.reg
CopyFiles = atheros.CopyFiles, atheros_FW_3X.CopyFiles, atheros_BD_TX8.CopyFiles, service.CopyFiles
*IfType = 71 ; IF_TYPE_IEEE80211
*MediaType = 16 ; NdisMediumNative802_11
*PhysicalMediaType = 9 ; NdisPhysicalMediumNative802_11
Include = machine.inf, netvwifibus.inf
Needs = VWiFiBus.CopyFiles

[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64.Services]
AddService = Qcamain10x64, 2, atheros.Service, atheros.EventLog
Include = netvwifibus.inf
Needs = VWiFiBus.Services
AddService = QcomWlanSrv, 0x00000800, wlanService

[ATHR_DEV_OS63_988x_TX8.ndi.NTamd64.HW]
AddReg = MSI.reg
Include = netvwifibus.inf
Needs = PciASPMOptIn.Hw, VWiFiBus.PnPFilterRegistration.Hw, PciD3ColdSupported.Hw
"

I am just a bit confused because it just says "Wifi Only SKU" and I know from the Windows Device Manager that also bluetooth is done with the same chip, see https://www.reddit.com/r/Surface/comments/9386l7/surface_go_wifi_qualcomm_qca61x4a/e3bbi1b/ but maybe there are two different build-in, one for wifi and one for bluetooth?

Anyway, from the quote there is one interesting line:

"
CopyFiles = atheros.CopyFiles, atheros_FW_3X.CopyFiles, atheros_BD_TX8.CopyFiles, service.CopyFiles
"

It seems that there exist just one file with "TX8" in it: "eeprom_ar6320_3p0_TX8_clpc.bin"

I copied the .bin file as board.bin to /lib/firmware/ath10k/QCA6174/hw3.0/ and it finally works! Wifi is directly working and no error messages anymore in dmesg! :-)

So eeprom_ar6320_3p0_TX8_clpc.bin, or the informations of that .bin file have to be added to https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles and this should be a clean solution, because the subsystem-device=3370 ID is matching.

Can someone please double check if this is the correct solution which could go upstream?

Revision history for this message
In , fedora_45sg (fedora45sg-redhat-bugs) wrote :

Did some additional tests with "eeprom_ar6320_3p0_TX8_clpc.bin":

The copied and renamed as board.bin file also works with the latest firmware-6.bin from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/ath10k/QCA6174/hw3.0/ and also with the one from https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0 which was released one week ago. The reception with the seven day old one firmware is a bit weaker but it is also working fine with no erros in dmesg!

Revision history for this message
Waynexyz (f-launchpad-sge4) wrote :

Did some additional tests with "eeprom_ar6320_3p0_TX8_clpc.bin":

The copied and renamed as board.bin file also works with the latest firmware-6.bin from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/ath10k/QCA6174/hw3.0/ and also with the one from https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0 which was released one week ago. The reception with the seven day old one firmware is a bit weaker but it is also working fine with no erros in dmesg!

Changed in linux-firmware (Ubuntu):
status: New → Incomplete
status: Incomplete → New
Revision history for this message
In , pbrobinson (pbrobinson-redhat-bugs) wrote :

The inux-firmware-20190213-93.git710963fe has a new firmware for QCA6174 so please test

Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-42cbff0fd6

Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f27089e66c

Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f27089e66c

Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-42cbff0fd6

Changed in linux-firmware (Fedora):
status: Confirmed → Fix Committed
Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Revision history for this message
In , updates (updates-redhat-bugs) wrote :

linux-firmware-20190213-93.git710963fe.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Revision history for this message
In , qxscio (qxscio-redhat-bugs) wrote :

I've installed latest linux-firmware (and all other possible updates) in Fedora 29 and wifi is still not working on a Surface Go

Revision history for this message
In , stefan.nigma (stefan.nigma-redhat-bugs) wrote :

I can confirm that a freshly installed Fedora 30 with linux-firmware-93.git710963fe.fc30 does not recognize the QCA6174 on Surface Go. I'm willing to help any way I can.

Changed in linux-firmware (Fedora):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in linux-firmware (Ubuntu):
status: New → Confirmed
Revision history for this message
Stefan Andersson (stefan-nigma) wrote :

This bug is still active on linux-firmware-20190514 that I'm running. I'll help any way I can if help is needed.

Revision history for this message
In , stefan.nigma (stefan.nigma-redhat-bugs) wrote :

Using the currently latest version (linux-firmware-20190717-99) on Fedora 30, the Wifi network adapter is still not recognized:

Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 168c:3370
Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 0 testmode 0
Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: firmware ver RM.4.4.1.c2-00057-QCARMSWP-1 api 6 features wowlan,ignore-otp,no-4addr-pad,raw-mode crc32 e061250a
Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=003e,subsystem-vendor=168c,subsystem-device=3370 from ath10k/QCA6174/hw3.0/board-2.bin
Jul 23 11:37:54 kernel: ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 ed5f849a

I'm more than happy to help if I can.

Revision history for this message
Rex Tsai (chihchun) wrote :

The driver should has been landed in Ubuntu-1.167, which available in bionic. Please verify with the latest LTS version.

Changed in linux-firmware (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
opensas (opensas) wrote :

I've just tested it booting with an ubuntu 20.04 beta iso and the problem seems to persist. From the top menu I see the wifi working but no networks appear, even thhough there are many available.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.