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