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" <>
To: "Jason H" <>
Subject: Re: QCA6174 hw2.1?
On 13 March 2015 at 16:28, Jason H <> wrote:
>> On 13 March 2015 at 04:39,  <> 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 to extract the otp.bin from hw3 ath10k
FW API blob:

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

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

  mkdir -p /lib/firmware/ath10k/QCA6174/hw2.1/
  python 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)


ath10k mailing list

Reply via email to