QCA6174 hw2.1?

jhihn at gmx.com jhihn at gmx.com
Sat Mar 21 13:31:28 PDT 2015

is there anyway you could process these files for me?. I would be willing to send you the files and go through some back and forth of feedback and whatnot. The issue is I just don't think I have the time or the expertise to devote to this. However I investigated exchanging  the laptop to get a  Linux compatible one, but its going to cost me money for the restocking fee. On top of that the next user of this laptop will be disgruntled when they find a non working copy of Linux on it. I investigated getting the restore cd but Lenovo's charging $70 for the media. So if you could help I would really appreciate it because this is the last thing that I need to get working but I really need it.

and we could also get this chipset supported. I saw I wasn't the only one looking for Linux support for this driver. 

 Thank you.

-----Original message-----
Sent: Monday, 16 March 2015 at 10:05:20
From: "Michal Kazior" <michal.kazior at tieto.com>
To: "Jason H" <jhihn at gmx.com>
Subject: Re: QCA6174 hw2.1?
On 13 March 2015 at 16:28, Jason H <jhihn at gmx.com> wrote:
>> On 13 March 2015 at 04:39,  <jhihn at gmx.com> wrote:
>> > I went through the archives, and the  wiki but I still wasn't sure...
>> > I have a shiny new Lenovo z70, kernel 4.0-rc1/3.  Dmesg reports failures for loading  firmware in /lib/firmware/ath10k/QCA6174/hw2.1/...
>> > So I found the firmware Git repo,  but it seems to be missing hw2.1. I even symlinked 2.1 to  3.0, no dice.
>> You can't use hw3 firmware for hw2 hardware.
>> The problem is there's no publicly available ath10k firmware for hw2 hardware..
>> > I don't dual boot and this is a laptop  so I'm looking to get  my WiFi working.  Any pointers are appreciated.  Thanks.
>> You could try building hw2 firmware ath10k binary yourself. You need
>> to fetch athwlan.bin from Windows driver, extract otp image from hw3
>> firmware ath10k binary and then re-assemble both into hw3 firmware for
>> ath10k. The ath10k binary blob is a tag-length-value format and can be
>> understood by looking at ath10k_core_fetch_firmware_api_n().
>> Nobody seems to have tried this yet though.
> I installed WINE and attempted to install the driver from lenono on my non-lenovo with working wifi. The install failed (expected) but not before it extracted the actual driver installer images (expected). Parsing through an .inf file, and navigating my way through the sections, I end up at a section specifying eeprom_ar6320_2p1_NFA354xp.bin and qca61x420.bin as the firmware files. I have these files.


eeprom_ar6320_2p1_NFA354xp.bin looks like a board.bin.
qca61x420.bin looks like main program binary.

> However I am now diverging from your instructions considerably. Also I don't know why I would want to reassemble into 3.0 when my system is looking for 2.1?

Typo/mind derp :-) I obviously meant 2.1.

> I don't know what an 'otp image' is? I think I understand the part about the ath10k format though.

OTP is a calibration related program which is run on device before
running main program. It's embedded inside ath10k FW API blob.

> Could you update your instructions to suit the new information at hand?


Here are two simple and crude tools I have to deal with ath10k FW API
blobs. Use with care.

You can use the disassemble.py to extract the otp.bin from hw3 ath10k
FW API blob:

  python disassemble.py < /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin

Then you can use the assemble.py to generate hw2.1 ath10k FW ABI blob:

  mkdir -p /lib/firmware/ath10k/QCA6174/hw2.1/
  python assemble.py killer1252-testfw 0 path/to/qca61x420.bin
path/to/otp.bin 4 > /lib/firmware/ath10k/QCA6174/hw2.1/firmware-4.bin
  cp path/to/eeprom_ar6320_2p1_NFA354xp.bin

(mind the email line wrapping)


More information about the ath10k mailing list