Hi,

I'm having a lot of trouble getting the QCA9377 Wifi working with my iMX6ULL 
via SDIO.  The SDIO interface seems to be working fine.  It loads the firmware, 
I get a message it has booted, but it fails with the error "wmi unified ready 
event not received".

If I go into  the debugger and set some breakpoints in the wait for completion 
routines for the 'service ready' and 'unified ready' events, I can 
INCONSISTENTLY get the wlan0 device to be created.  Even when the device is 
created I get multiple timeouts if I try to do anything with it.

I’ve tried loading both the TLV firmware specified below in the configuration, 
and the WLAN.TF.1.1.1-0061-QCATFSWPZ-1 firmware in the QCA9377/hw1.0/untested 
directory of https://github.com/kvalo/ath10k-firmware.git, commit 
46aabf2a581e67bb2d368514d94e799502bbde3f.  Both firmwares fail the same way.

I’m seeing the exact same failure on both the 4.9.68 (see #2 below) and 4.1.15 
kernels (backported driver from 4.9.68).  From here, I’m at a loss on how to 
proceed since I don’t have visibility into the firmware.  I’d like to know how 
to obtain some status from the firmware, maybe read the configuration, or run 
some test code.  Any pointers or suggestions would be greatly appreciated.  

Here is my configuration:
  1.  Silex SD-PAC board w/ QCA9377-3 connected to an iMX6ULL (900 MHz) via SDIO
  2.  Linux kernel 4.9.68, based on the test-ath10k branch from Boundary 
Devices (https://github.com/boundarydevices/linux-imx6.git), commit 
cfd7772609e931bd66e14d4dd9ac8a1394330ed3.
  3.  SDIO 2.0, 50 MHz
  4.  Firmware SDIO bin file (firmware-sdio-5.bin) generated with following 
command:
           ath10k-fwencoder -d --create --firmware-version Silex_v1.0.0 \
           --otp ./otp30.bin --firmware ./qwlan30.bin --set-wmi-op-version tlv \
           --set-htt-op-version tlv --set-fw-api 5 --features ignore-otp-result 
\
           --output firmware-sdio-5.bin
  5.  Board file (board-sdio.bin) copied from bdata_SX-SDMAC_20161113.bin 
(provided by Silex)

Device tree settings for ath10k:
  ath10k: ath10k@2 {
    compatible = "qcom,ath10k";
    reg = <2>;  /* Wireless LAN SDIO function == 2 */
    ref-clock-frequency = <48000000>;
    status = "okay";
    interrupt-parent = <&gpio4>;
    interrupts = <25 GPIO_ACTIVE_LOW>;
  };  

Some info from the boot (with some instrumentation):
[    1.247790] sdhci-esdhc-imx 2194000.usdhc: clock limited to 50000000
[    1.261999] sdhci: =========== REGISTER DUMP (mmc1)===========
[    1.270119] sdhci: Sys addr: 0x00000000 | Version:  0x00000002
[    1.276153] sdhci: Blk size: 0x00000000 | Blk cnt:  0x00000001
[    1.284248] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[    1.293312] sdhci: Present:  0x01f88088 | Host ctl: 0x00000000
[    1.299268] sdhci: Power:    0x00000000 | Blk gap:  0x00000080
[    1.305270] sdhci: Wake-up:  0x00000008 | Clock:    0x0000800f
[    1.311202] sdhci: Timeout:  0x00000080 | Int stat: 0x00000000
[    1.317100] sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
[    1.322984] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000302
[    1.328841] sdhci: Caps:     0x07eb0000 | Caps_1:   0x0000b407
[    1.334777] sdhci: Cmd:      0x00000000 | Max curr: 0x00ffffff
[    1.340724] sdhci: Host ctl2: 0x00000000
[    1.344813] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[    1.350783] sdhci: ===========================================
[    1.422265] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using 
ADMA
[    1.431805] mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz 
[    1.570324] mmc1: queuing unknown CIS tuple 0x1a (5 bytes)            <== 
These bother me --  I’d like to define them..
[    1.579731] mmc1: queuing unknown CIS tuple 0x1b (8 bytes)
[    1.586056] mmc1: queuing unknown CIS tuple 0x14 (0 bytes)
[    1.618960] mmc1: queuing unknown CIS tuple 0x80 (1 bytes)
[    1.648132] mmc1: queuing unknown CIS tuple 0x81 (1 bytes)
[    1.653858] mmc1: queuing unknown CIS tuple 0x82 (1 bytes)
[    1.659421] mmc1: new high speed SDIO card at address 0001 
[    3.426363] mmc1: queuing unknown CIS tuple 0x01 (3 bytes)
[    3.452252] mmc1: queuing unknown CIS tuple 0x1a (5 bytes)
[    3.468588] mmc1: queuing unknown CIS tuple 0x1b (8 bytes)
[    3.493597] ath10k_sdio mmc1:0001:1: sdio new func 1 vendor 0x271 device 
0x701 block 0x800/0x200
[    3.502817] ath10k_sdio mmc1:0001:1: ath10k_sdio_priv completed
[    3.509304] ath10k_sdio mmc1:0001:1: sdio_set_drvdata complete
[    3.520039] ath10k_sdio mmc1:0001:1: sdio configuration
[    3.531593] ath10k_sdio mmc1:0001:1: ath10k_sdio_config returned 0
[    3.540106] ath10k_sdio mmc1:0001:1: WARNING: ath10k SDIO support is 
experimental
[    3.577477] ath10k_sdio mmc1:0001:1: Direct firmware load for 
ath10k/pre-cal-sdio-mmc1:0001:1.bin failed with error -2
[    3.615026] ath10k_sdio mmc1:0001:1: Direct firmware load for 
ath10k/cal-sdio-mmc1:0001:1.bin failed with error -2
[    3.690760] ath10k_sdio mmc1:0001:1: Direct firmware load for 
ath10k/QCA9377/hw1.0/firmware-sdio-5.bin succeeded
[    3.711562] ath10k_sdio mmc1:0001:1: qca9377 hw1.1 sdio target 0x05020001 
chip_id 0x00000000 sub 0000:0000
[    3.732334] ath10k_sdio mmc1:0001:1: kconfig debug 1 debugfs 1 tracing 0 dfs 
0 testmode 1
[    3.753922] ath10k_sdio mmc1:0001:1: firmware ver Silex_v1.0.0 api 5 
features ignore-otp crc32 fecfe4bd
[    3.930249] ath10k_sdio mmc1:0001:1: board id is not exist in otp, ignore it
[    3.942555] ath10k_sdio mmc1:0001:1: Direct firmware load for 
ath10k/QCA9377/hw1.0/board-2.bin failed with error -2
[    3.975115] ath10k_sdio mmc1:0001:1: Direct firmware load for 
ath10k/QCA9377/hw1.0/board-sdio.bin succeeded
[    3.992518] ath10k_sdio mmc1:0001:1: board_file api 1 bmi_id N/A crc32 
6b8a7bb1


Please let me know if any other information is needed.

Thanks.

Chris Wyse
iDevices, LLC.


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to