On 13 March 2015 at 16:28, Jason H <jh...@gmx.com> wrote:
>> On 13 March 2015 at 04:39,  <jh...@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)


ath10k mailing list

Reply via email to