qca6164 support

Michal Kazior michal.kazior at tieto.com
Mon Aug 3 22:18:03 PDT 2015

On 3 August 2015 at 20:45, vvanpo <vvanpo at gmail.com> wrote:
> Hi,
> I just got a Lenovo Yoga 3 11, only to find the wireless doesn't work.
> The PCI id is 168c:0041:17aa:3545

The qca6164 is not supported, yet. Arnd has been the first one to
report the problem. We tried a few things to get it running but gave
up for now. I don't have the card so it's difficult for me to do
trial-and-error testing.

> I downloaded the driver (version, date 06/24/2015) from the
> Lenovo website and extracted it in Wine (as I saw someone else do from
> another thread), which resulted in the following bin files:
> eeprom_ar6320_2p1_NFA324i_5.bin
> eeprom_ar6320_2p1_NFA344i.bin
> eeprom_ar6320_2p1_NFA344i_highTX.bin
> eeprom_ar6320_2p1_NFA345i.bin
> eeprom_ar6320_2p1_NFA345i_highTX.bin
> eeprom_ar6320_2p1_NFA354xp.bin
> eeprom_ar6320_2p1_NFA355i.bin
> qca61x4_1_1_2.bin
> In the netathr10x.inf file, my device and subsystem ids correspond to
> section 'ATHR_DEV_OS63_988x_LE_NFA345_IPG.ndi', although I'm not sure
> how that relates to which bin file and what a 'section' is exactly.  I
> chose to use the NFA345i.bin file, which I symlinked
>     /lib/firmware/ath10k/QCA6174/hw2.1/board-pci-168c:0041:17aa:3545.bin
> to.
> I used dissect.py/assemble.py to create firmware-5.bin:
>     ./dissect.py < qca61x4_1_1_2.bin
>     ./assemble.py atheros- 0 fw-2.bin fw-1.bin 4 > firmware-5.bin

Looks good.

> I enabled skip_otp=y.
> I compiled master at github.com/kvalo/ath, but with the modification
>     #define QCA6174_2_1_DEVICE_ID   (0x0041)
> so it would recognize my card.
> On loading the ath10k_pci module I get a 'firmware crashed!' message,
> and a firmware dump.  Sometimes the dump itself must print garbage to
> dmesg and turns my terminal into mojibake, which I think has to do
> with the features string as here:
> http://lists.infradead.org/pipermail/ath10k/2015-July/005703.html

Whenever firmware crashes post the register dump, please. It is then
easier to cross-associate crashes from different reports.

> As you can probably tell I'm haphazardly shooting in the dark without
> much knowledge of whats actually going on.  Is there a way I can
> meaningfully contribute, or am I at the mercy of those with access to
> documentation on how the qualcomm firmware works?

You can either start disassembling the windows driver and/or
experimenting with ath10k driver values used for booting the device or
just wait..

>   Some questions:
>   - when ath10k_print_driver_info gets called, my ar->chip_id is
> printed as 0x003405ff, which should correspond to
> QCA6174_HW_2_2_CHIP_ID_REV when masked (like in
> ath10k_pci_get_num_banks).  So why is it still referred to as hw2.1
> (instead of hw2.2), and what do these revisions signify, anyway?

Within environment with limited information your decisions are
suboptimal. As a result we have "hw2.1" in the driver which refers to
hw2.2 as well.

>   - how can I be sure I'm using the correct bin files, and is there
> any documentation on the format of these files?

The format is defined in the driver (hw.h). There's no other
documentation I guess.

>   - what would need to be changed to add support for qca6164 in ath10k?

If I knew the it would have been supported already ;-)


More information about the ath10k mailing list