Support for QCA9377

Kalle Valo kvalo at
Tue May 15 21:56:10 PDT 2018

Jay Foster <jayf0ster at> writes:

> I too have been, off and on, looking for an ath10k driver solution for
> a SparkLAN WUBQ-159ACN USB Wi-Fi adapter, so I have been keeping an
> eye on this mailing list.  I just tried the latest
> ath10k-pending-sdio-usb branch (ath10k-pending-sdio-usb-201804210910
> tag), since I could see that support for the SparkLAN USB 0CF3:9378
> device was just added.  The driver refers to this as the SparkLAN
> WPEQ-160ACN device, but it has the same USB vendor/product ID as my
> WUBQ-159ACN.  They both use the QCA9377 chip.
> I got a driver to build with the 4.9 kernel and when it boots, it
> recognizes my Wi-Fi adapter.  Now, I am trying to sort out what to do
> about firmware.  I downloaded the board-2.bin, board.bin,
> firmware-5.bin files from
> I used the ath10k-fwencoder application from the qca-swiss-army-knife
> tools to also build a firmware file, but I am not clear on what files
> I should be using.  SparkLAN provided, with the qcacld-2.0 wlan
> driver, the following files:
> athsetup.bin, athwlan.bin, cfg.dat, fakeboar.bin, otp.bin, and
> qcom_cfg.ini.  I used the command:
> qca-swiss-army-knife/tools/scripts/ath10k/ath10k-fwencoder --create
> --otp ../../../otp.bin --firmware ../../../athwlan.bin
> --set-wmi-op-version=tlv --set-htt-op-version=tlv --set-fw-api=6
> --features=ignore-otp-result
> to create my firmware-usb-6.bin and used the fakeboar.bin for my
> board-usb.bin files.  However, when the driver loads, it is looking
> for a file called ath10k/cal-usb-1-1.2.bin.  Where do I get that
> file?

You can ignore that warning. cal-*.bin are optional files containing the
calibration data, in case you don't have the calibration data in OTP.
But my guess is that in your device you have the calibration data in OTP
so you don't need cal-*.bin.

Hopefully in 4.18 that warning will be away and users won't get confused anymore.

>  I tried using the athsetup.bin file for this, but I do not
> think that works.  The driver reports:
> /lib/firmware/ath10k/QCA9377/hw1.0# usb 1-1.2: qca9377 hw1.1 SparkLAN
> WPEQ-160ACN target 0x05020001 chip_id 0x00000000 sub 0000:0000
> usb 1-1.2: kconfig debug 1 debugfs 0 tracing 0 dfs 0 testmode 1
> usb 1-1.2: firmware ver  api 6 features ignore-otp crc32 e8985f67
> usb 1-1.2: found invalid board magic
> usb 1-1.2: board_file api 1 bmi_id N/A crc32 58a139e9
> usb 1-1.2: invalid hw_params.n_cipher_suites 0
> What does invalid board magic mean?

This log means that ath10k first tried to load board-2.bin but it was
corrupted for some reason. Then it found and used board.bin instead.

> The Wi-Fi USB adapter may be installed in any number of different USB
> locations, so why is the USB location (1-1.2) part of one of the
> filenames?

Because there needs to be some way to identify multiple devices on the
same host. But cal-*.bin is mainly meant for AP devices where the
devices have a fixed slot in the PCI bus and the calibration data is
stored in host's filesystem (check openwrt to see how it's used).

Kalle Valo

More information about the ath10k mailing list