qca6164 support

vvanpo vvanpo at gmail.com
Tue Aug 4 13:45:28 PDT 2015


Thanks Michał, that clears things up quite a bit.  Here is the dmesg
output (including firmware dump), using ath/master (HEAD at
5c4119ff7e9465309c8906f7dbec5591517f0686):

[    8.912418] ath10k_pci 0000:02:00.0: pci probe
[    8.913026] ath10k_pci 0000:02:00.0: boot pci_mem 0xffffc90002c00000
[    8.914841] ath10k_pci 0000:02:00.0: pci irq msi-x interrupts 8
irq_mode 0 reset_mode 0
[    8.915751] ath10k_pci 0000:02:00.0: boot qca6174 chip reset
[    8.915755] ath10k_pci 0000:02:00.0: boot cold reset
[    8.957546] ath10k_pci 0000:02:00.0: boot cold reset complete
[    8.957555] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    8.957637] ath10k_pci 0000:02:00.0: boot target indicator 2
[    8.957645] ath10k_pci 0000:02:00.0: boot target initialised
[    8.957649] ath10k_pci 0000:02:00.0: boot warm reset
[    8.979816] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[    8.979976] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[    8.980082] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[    8.980287] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[    8.980521] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[    8.980763] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[    8.980878] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[    8.980884] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    8.981031] ath10k_pci 0000:02:00.0: boot target indicator 0
[    8.991183] ath10k_pci 0000:02:00.0: boot target indicator 2
[    8.991190] ath10k_pci 0000:02:00.0: boot target initialised
[    9.001829] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[    9.001988] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[    9.002095] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[    9.002300] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[    9.002533] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[    9.002778] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[    9.002893] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[    9.002899] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    9.003046] ath10k_pci 0000:02:00.0: boot target indicator 0
[    9.013200] ath10k_pci 0000:02:00.0: boot target indicator 2
[    9.013206] ath10k_pci 0000:02:00.0: boot target initialised
[    9.013207] ath10k_pci 0000:02:00.0: boot warm reset complete
[    9.013208] ath10k_pci 0000:02:00.0: boot qca6174 chip reset complete (cold)
[    9.013337] ath10k_pci 0000:02:00.0: boot hif power up
[    9.013638] ath10k_pci 0000:02:00.0: boot qca6174 chip reset
[    9.013640] ath10k_pci 0000:02:00.0: boot cold reset
[    9.055603] ath10k_pci 0000:02:00.0: boot cold reset complete
[    9.055612] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    9.055619] ath10k_pci 0000:02:00.0: boot target indicator 2
[    9.055630] ath10k_pci 0000:02:00.0: boot target initialised
[    9.055634] ath10k_pci 0000:02:00.0: boot warm reset
[    9.077639] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[    9.077661] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[    9.077678] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[    9.077697] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[    9.077720] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[    9.077739] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[    9.077754] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[    9.077758] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    9.077764] ath10k_pci 0000:02:00.0: boot target indicator 0
[    9.087775] ath10k_pci 0000:02:00.0: boot target indicator 2
[    9.087782] ath10k_pci 0000:02:00.0: boot target initialised
[    9.098652] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[    9.098674] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[    9.098691] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[    9.098710] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[    9.098734] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[    9.098752] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[    9.098768] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[    9.098772] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[    9.098777] ath10k_pci 0000:02:00.0: boot target indicator 0
[    9.108787] ath10k_pci 0000:02:00.0: boot target indicator 2
[    9.108793] ath10k_pci 0000:02:00.0: boot target initialised
[    9.108795] ath10k_pci 0000:02:00.0: boot warm reset complete
[    9.108796] ath10k_pci 0000:02:00.0: boot qca6174 chip reset complete (cold)
[    9.108809] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[    9.108821] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[    9.108832] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[    9.108845] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[    9.108860] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[    9.108873] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[    9.108884] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[    9.119969] ath10k_pci 0000:02:00.0: bmi get target info
[    9.120217] ath10k_pci 0000:02:00.0: Hardware name qca6174 hw2.1
version 0x5010000
[    9.120383] ath10k_pci 0000:02:00.0: Direct firmware load for
ath10k/cal-pci-0000:02:00.0.bin failed with error -2
[    9.120384] ath10k_pci 0000:02:00.0: Falling back to user helper
[   69.163359] ath10k_pci 0000:02:00.0: found specific board file for
168c:0041:17aa:3545
[   69.163368] ath10k_pci 0000:02:00.0: trying fw api 5
[   69.165671] ath10k_pci 0000:02:00.0: found fw version atheros-12.0.0.102-fw
[   69.165680] ath10k_pci 0000:02:00.0: found firmware features ie (4 B)
[   69.165684] ath10k_pci 0000:02:00.0: features
[   69.165690] ath10k_pci 0000:02:00.0: 00000000: 00 00 00 00 00 00 00
00                          ........
[   69.165694] ath10k_pci 0000:02:00.0: found fw ie wmi op version 4
[   69.165697] ath10k_pci 0000:02:00.0: found fw image ie (466811 B)
[   69.165701] ath10k_pci 0000:02:00.0: found otp image ie (29533 B)
[   69.165705] ath10k_pci 0000:02:00.0: using fw api 5
[   69.165709] ath10k_pci 0000:02:00.0: bmi start
[   69.165714] ath10k_pci 0000:02:00.0: bmi write address 0x400800 length 4
[   69.165737] ath10k_pci 0000:02:00.0: bmi read address 0x400810 length 4
[   69.165819] ath10k_pci 0000:02:00.0: bmi write address 0x400810 length 4
[   69.165831] ath10k_pci 0000:02:00.0: bmi write address 0x400844 length 4
[   69.165877] ath10k_pci 0000:02:00.0: bmi write address 0x400904 length 4
[   69.165920] ath10k_pci 0000:02:00.0: boot did not find a
calibration file, try DT next: -11
[   69.165924] ath10k_pci 0000:02:00.0: boot did not find DT entry,
try OTP next: -2
[   69.165928] ath10k_pci 0000:02:00.0: bmi read address 0x4008ac length 4
[   69.166002] ath10k_pci 0000:02:00.0: boot push board extended data addr 0x0
[   69.166006] ath10k_pci 0000:02:00.0: bmi read address 0x400854 length 4
[   69.166064] ath10k_pci 0000:02:00.0: bmi write address 0x401d40 length 8124
[   69.181900] ath10k_pci 0000:02:00.0: bmi write address 0x400858 length 4
[   69.182062] ath10k_pci 0000:02:00.0: boot upload otp to 0x1234 len 29533
[   69.182066] ath10k_pci 0000:02:00.0: bmi fast download address
0x1234 buffer 0xffffc90002f12fd0 length 29533
[   69.182069] ath10k_pci 0000:02:00.0: bmi lz stream start address 0x1234
[   69.182117] ath10k_pci 0000:02:00.0: bmi lz data buffer
0xffffc90002f12fd0 length 29532
[   69.242913] ath10k_pci 0000:02:00.0: bmi lz data buffer
0xffff88015943bd2c length 4
[   69.242992] ath10k_pci 0000:02:00.0: bmi lz stream start address 0x0
[   69.243038] ath10k_pci 0000:02:00.0: bmi execute address 0x1234 param 0x0
[   69.244628] ath10k_pci 0000:02:00.0: bmi execute result 0x3
[   69.244632] ath10k_pci 0000:02:00.0: boot otp execute result 3
[   69.244634] ath10k_pci 0000:02:00.0: boot using calibration mode otp
[   69.244637] ath10k_pci 0000:02:00.0: boot uploading firmware image
ffffc90002ea104c len 466811 mode normal
[   69.244640] ath10k_pci 0000:02:00.0: bmi fast download address
0x1234 buffer 0xffffc90002ea104c length 466811
[   69.244642] ath10k_pci 0000:02:00.0: bmi lz stream start address 0x1234
[   69.244651] ath10k_pci 0000:02:00.0: bmi lz data buffer
0xffffc90002ea104c length 466808
[   70.308593] ath10k_pci 0000:02:00.0: bmi lz data buffer
0xffff88015943bd2c length 4
[   70.308759] ath10k_pci 0000:02:00.0: bmi lz stream start address 0x0
[   70.308806] ath10k_pci 0000:02:00.0: bmi write address 0x400814 length 4
[   70.308843] ath10k_pci 0000:02:00.0: pci hif set callbacks
[   70.308848] ath10k_pci 0000:02:00.0: pci hif get default pipe
[   70.308852] ath10k_pci 0000:02:00.0: pci hif map service
[   70.308857] ath10k_pci 0000:02:00.0: bmi done
[   70.308883] ath10k_pci 0000:02:00.0: htt tx max num pending tx 1056
[   70.308909] ath10k_pci 0000:02:00.0: htt rx ring size 2048 fill_level 1023
[   70.308914] ath10k_pci 0000:02:00.0: boot hif start
[   70.308929] ath10k_pci 0000:02:00.0: received unsolicited fw crash interrupt
[   70.308942] ath10k_pci 0000:02:00.0: received unsolicited fw crash interrupt
[   70.310913] ath10k_pci 0000:02:00.0: firmware crashed! (uuid
f4e9433b-0bf2-4cf9-8ffc-c1c22da14607)
[   70.310927] ath10k_pci 0000:02:00.0: qca6174 hw2.1 (0x05010000,
0x003405ff, 168c:0041:17aa:3545) fw atheros-12.0.0.102-fw api 5
htt-ver 0.0 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
features \xffffffa6m:^R\xfffffffbԂ\xffffffc4^E
[   70.310933] ath10k_pci 0000:02:00.0: debug 1 debugfs 1 tracing 1
dfs 0 testmode 0
[   70.313371] ath10k_pci 0000:02:00.0: firmware register dump:
[   70.313377] ath10k_pci 0000:02:00.0: [00]: 0x05010000 0x000015B3
0x000A012D 0x00955B31
[   70.313380] ath10k_pci 0000:02:00.0: [04]: 0x000A012D 0x00060330
0x00000016 0x87685006
[   70.313383] ath10k_pci 0000:02:00.0: [08]: 0x00000000 0x00400000
0x00400600 0x00000001
[   70.313385] ath10k_pci 0000:02:00.0: [12]: 0x00000009 0x00000000
0x00931C61 0x00931C7D
[   70.313388] ath10k_pci 0000:02:00.0: [16]: 0x0096BDBC 0x009286B6
0x00000000 0x00000000
[   70.313390] ath10k_pci 0000:02:00.0: [20]: 0x400A012D 0x0040E2B0
0x00955A00 0x00404590
[   70.313393] ath10k_pci 0000:02:00.0: [24]: 0x809287D9 0x0040E310
0x7A508CF8 0xC00A012D
[   70.313395] ath10k_pci 0000:02:00.0: [28]: 0x809288D7 0x0040E340
0x00000000 0xFFF08040
[   70.313398] ath10k_pci 0000:02:00.0: [32]: 0x809290FE 0x0040E360
0x00400000 0x00400600
[   70.313400] ath10k_pci 0000:02:00.0: [36]: 0x80929205 0x0040E380
0x00000000 0x00400600
[   70.313403] ath10k_pci 0000:02:00.0: [40]: 0x40928024 0x0040E3B0
0x0040D3D0 0x0040D3D0
[   70.313405] ath10k_pci 0000:02:00.0: [44]: 0x00000000 0x0040E3D0
0x009BB001 0x00040020
[   70.313408] ath10k_pci 0000:02:00.0: [48]: 0x00401BF0 0x00000001
0x00404B9C 0x00400000
[   70.313410] ath10k_pci 0000:02:00.0: [52]: 0x40928024 0x0040E3B0
0x0040D3D0 0x0040D3D0
[   70.313412] ath10k_pci 0000:02:00.0: [56]: 0xAEF45900 0xF54C4613
0xA0B41E0F 0x4CFD5866
[   71.309496] ath10k_pci 0000:02:00.0: failed to receive control
response completion, polling..
[   71.309505] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309807] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309813] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309818] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309912] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309918] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309922] ath10k_pci 0000:02:00.0: pci hif send complete check
[   71.309926] ath10k_pci 0000:02:00.0: pci hif send complete check
[   72.310187] ath10k_pci 0000:02:00.0: ctl_resp never came in (-110)
[   72.310197] ath10k_pci 0000:02:00.0: failed to connect to HTC: -110
[   72.310202] ath10k_pci 0000:02:00.0: boot hif stop
[   72.310206] ath10k_pci 0000:02:00.0: boot warm reset
[   72.332479] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[   72.332638] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[   72.332789] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[   72.333040] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[   72.333419] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[   72.333669] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[   72.333780] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[   72.333781] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[   72.333883] ath10k_pci 0000:02:00.0: boot target indicator 0
[   72.344030] ath10k_pci 0000:02:00.0: boot target indicator 2
[   72.344036] ath10k_pci 0000:02:00.0: boot target initialised
[   72.355499] ath10k_pci 0000:02:00.0: boot init ce src ring id 0
entries 16 base_addr ffff88008cdb3000
[   72.355757] ath10k_pci 0000:02:00.0: boot ce dest ring id 1 entries
512 base_addr ffff88008645a000
[   72.355872] ath10k_pci 0000:02:00.0: boot ce dest ring id 2 entries
128 base_addr ffff880086589000
[   72.356084] ath10k_pci 0000:02:00.0: boot init ce src ring id 3
entries 32 base_addr ffff88008dbdc000
[   72.356363] ath10k_pci 0000:02:00.0: boot init ce src ring id 4
entries 4096 base_addr ffff8800910a0000
[   72.356584] ath10k_pci 0000:02:00.0: boot init ce src ring id 7
entries 2 base_addr ffff880086402000
[   72.356839] ath10k_pci 0000:02:00.0: boot ce dest ring id 7 entries
2 base_addr ffff88008dbc1000
[   72.356843] ath10k_pci 0000:02:00.0: boot waiting target to initialise
[   72.356946] ath10k_pci 0000:02:00.0: boot target indicator 0
[   72.367095] ath10k_pci 0000:02:00.0: boot target indicator 2
[   72.367201] ath10k_pci 0000:02:00.0: boot target initialised
[   72.367203] ath10k_pci 0000:02:00.0: boot warm reset complete
[   72.368107] ath10k_pci 0000:02:00.0: could not init core (-110)
[   72.368140] ath10k_pci 0000:02:00.0: boot hif power down
[   72.368141] ath10k_pci 0000:02:00.0: could not probe fw (-110)
[   72.372355] ath10k_pci 0000:02:00.0: cannot restart a device that
hasn't been started

There are some unprintable characters in the features string.

On Tue, Aug 4, 2015 at 1:18 AM, Michal Kazior <michal.kazior at tieto.com> wrote:
> 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 12.0.0.102, 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-12.0.0.102-fw 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 ;-)
>
>
> Michał



More information about the ath10k mailing list