This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

wl1801 - problem with scanning for networks

Other Parts Discussed in Thread: WL1801

Hi all,

I've previously had support from this forum in getting the WL1801 up and working with a Zynq 7000 processor running Linux, but recently I've noticed some weird behaviour when attempting to use the WiFi and wonder if anyone can help me?

I'm still doing a lot of the setup of the module manually but here's the process I go through after boot:

1) Insert all the modules using insmod:


insmod /lib/modules/3.18.0-xilinx/updates/compat/compat.ko
insmod /lib/modules/3.18.0-xilinx/updates/net/wireless/cfg80211.ko
insmod /lib/modules/3.18.0-xilinx/updates/net/mac80211/mac80211.ko
insmod /lib/modules/3.18.0-xilinx/updates/drivers/net/wireless/ti/wlcore/wlcore.ko
insmod /lib/modules/3.18.0-xilinx/updates/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
insmod /lib/modules/3.18.0-xilinx/updates/drivers/net/wireless/ti/wl18xx/wl18xx.ko

2) Bring up the interface

ifconfif wlan0 up

3) Scan for networks (this is where the problem arises)

# iw wlan0 scan
command failed: Connection timed out (-110)

4) Even if I use wpa_supplicant/wpa_cli I get:

# wpa_cli 
wpa_cli v2.4
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.


Selected interface 'wlan0'

Interactive mode

> scan
OK
> wlan0: CTRL-EVENT-SCAN-FAILED ret=-110
<3>CTRL-EVENT-SCAN-FAILED ret=-110

The error value -110 keeps coming up. It seems to be a timeout, but not sure what could cause this, has anyone any idea?

  • Hi,

    Can you share the full boot logs?
    Usually "ETIMEDOUT" indicates some issue on the SDIO lines.

    Regards,
    Gigi Joseph.
  • Hi,

    Thanks for your reply. I've checked the Enable and Interrupt line and all is working OK on that front (expected behaviour is exhibited). The clock to the device is at 50MHz, I've tried changing this down to 25MHz in the .dts in case this was a problem, but it isn't being picked up as the clock is still 50MHz.

    Here's the initial boot log:

    Booting Linux on physical CPU 0x0
    Linux version 3.18.0-xilinx (szh@szh-ThinkPad-Edge-E540) (gcc version 4.9.1 (Sourcery CodeBench Lite 2014.11-30) ) #1 SMP PREEMPT Fri Oct 2 10:48:58 BST 2015
    CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine model: xlnx,zynq-7000
    cma: Reserved 16 MiB at 0x1b800000
    Memory policy: Data cache writealloc
    On node 0 totalpages: 130772
    free_area_init_node: node 0, pgdat 405be100, node_mem_map 5f9ef000
      Normal zone: 1020 pages used for memmap
      Normal zone: 0 pages reserved
      Normal zone: 130560 pages, LIFO batch:31
      HighMem zone: 2 pages used for memmap
      HighMem zone: 212 pages, LIFO batch:0
    PERCPU: Embedded 10 pages/cpu @5f9d0000 s8768 r8192 d24000 u40960
    pcpu-alloc: s8768 r8192 d24000 u40960 alloc=10*4096
    pcpu-alloc: [0] 0 [0] 1 
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129752
    Kernel command line: console=ttyPS0,115200 mem=0x1fed4000 debug earlyprintk
    PID hash table entries: 2048 (order: 1, 8192 bytes)
    Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    Memory: 455824K/523088K available (4144K kernel code, 219K rwdata, 1276K rodata, 208K init, 207K bss, 67264K reserved, 848K highmem)
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
        vmalloc : 0x60000000 - 0xff000000   (2544 MB)
        lowmem  : 0x40000000 - 0x5fed4000   ( 510 MB)
        pkmap   : 0x3fe00000 - 0x40000000   (   2 MB)
        modules : 0x3f000000 - 0x3fe00000   (  14 MB)
          .text : 0x40008000 - 0x405534d0   (5422 kB)
          .init : 0x40554000 - 0x40588000   ( 208 kB)
          .data : 0x40588000 - 0x405bee60   ( 220 kB)
           .bss : 0x405bee60 - 0x405f2c40   ( 208 kB)
    Preemptible hierarchical RCU implementation.
    	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
    RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
    NR_IRQS:16 nr_irqs:16 16
    L2C-310 erratum 769419 enabled
    L2C-310 enabling early BRESP for Cortex-A9
    L2C-310 full line of zeros enabled for Cortex-A9
    L2C-310 ID prefetch enabled, offset 1 lines
    L2C-310 dynamic clock gating enabled, standby mode enabled
    L2C-310 cache controller enabled, 8 ways, 512 kB
    L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76360001
    slcr mapped to 60004000
    zynq_clock_init: clkc starts at 60004100
    Zynq clock init
    sched_clock: 64 bits at 299MHz, resolution 3ns, wraps every 1832519335936ns
    timer #0 at 60006000, irq=43
    Console: colour dummy device 80x30
    Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    Setting up static identity map for 0x3edd00 - 0x3edd58
    CPU1: Booted secondary processor
    CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    Brought up 2 CPUs
    SMP: Total of 2 processors activated.
    CPU: All CPU(s) started in SVC mode.
    devtmpfs: initialized
    VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    regulator-dummy: no parameters
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    cpuidle: using governor ladder
    cpuidle: using governor menu
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    hw-breakpoint: maximum watchpoint size is 4 bytes.
    zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x60080000
    VCCPINT: 1000 mV 
    wlan-en-regulator: 3300 mV 
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    pps_core: LinuxPPS API ver. 1 registered
    pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    EDAC MC: Ver: 3.0.0
    nfc: nfc_init: NFC Core ver 0.1
    NET: Registered protocol family 39
    Switched to clocksource arm_global_timer
    NET: Registered protocol family 2
    TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
    TCP: Hash tables configured (established 4096 bind 4096)
    TCP: reno registered
    UDP hash table entries: 256 (order: 1, 8192 bytes)
    UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    Trying to unpack rootfs image as initramfs...
    Freeing initrd memory: 40100K (5cc04000 - 5f32d000)
    hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
    futex hash table entries: 512 (order: 3, 32768 bytes)
    jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
    msgmni has been set to 998
    bounce: pool size: 64 pages
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    simple-framebuffer 1fed4000.framebuffer: framebuffer at 0x1fed4000, 0x12c000 bytes, mapped to 0x60200000
    simple-framebuffer 1fed4000.framebuffer: format=x8r8g8b8, mode=480x640x32, linelength=1920
    simple-framebuffer 1fed4000.framebuffer: fb0: simplefb registered!
    dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
    dma-pl330 f8003000.dmac: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
    xuartps e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 59, base_baud = 6249999) is a xuartps
    xuartps e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 82, base_baud = 6249999) is a xuartps
    console [ttyPS0] enabled
    xdevcfg f8007000.devcfg: ioremap 0xf8007000 to 6006c000
    brd: module loaded
    loop: module loaded
    m25p80 spi32765.0: s25fl512s (131072 Kbytes)
    5 ofpart partitions found on MTD device spi32765.0
    Creating 5 MTD partitions on "spi32765.0":
    0x000000000000-0x000000500000 : "fsbl"
    0x000000500000-0x000000a00000 : "kernel"
    0x000000a00000-0x000000a40000 : "devtree"
    0x000000a40000-0x000002300000 : "ramdisk"
    0x000002300000-0x000004000000 : "flash"
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    ULPI transceiver vendor/product ID 0x0424/0x0007
    Found SMSC USB3320 ULPI transceiver.
    ULPI integrity check: passed.
    ads7846 spi32766.0: touchscreen, irq 148
    input: ADS7846 Touchscreen as /devices/soc0/amba/e0006000.spi/spi_master/spi32766/spi32766.0/input/input0
    i2c /dev entries driver
    rtc-ds1307 0-0068: rtc core: registered ds1307 as rtc0
    rtc-ds1307 0-0068: 56 bytes nvram
    cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 57
    zynq-edac f8006000.memory-controller: ecc not enabled
    cpufreq: __cpufreq_add_dev: CPU0: Running at unlisted freq: 599999 KHz
    cpufreq: __cpufreq_add_dev: CPU0: Unlisted initial frequency changed to: 666667 KHz
    Xilinx Zynq CpuIdle Driver started
    sdhci: Secure Digital Host Controller Interface driver
    sdhci: Copyright(c) Pierre Ossman
    sdhci-pltfm: SDHCI platform and OF driver helper
    sdhci-arasan e0100000.sdhci: No vmmc regulator found
    sdhci-arasan e0100000.sdhci: No vqmmc regulator found
    mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
    sdhci-arasan e0101000.sdhci: No vqmmc regulator found
    mmc0: new high speed SDHC card at address 0007
    mmcblk0: mmc0:0007 JTRON 7.42 GiB 
     mmcblk0: p1
    mmc1: SDHCI controller on e0101000.sdhci [e0101000.sdhci] using ADMA
    nf_conntrack version 0.5.0 (8004 buckets, 32016 max)
    ip_tables: (C) 2000-2006 Netfilter Core Team
    TCP: cubic registered
    sdhci-arasan e0101000.sdhci: card claims to support voltages below defined range
    NET: Registered protocol family 10
    NET: Registered protocol family 17
    bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
    mmc1: queuing unknown CIS tuple 0x91 (3 bytes)
    mmc1: new high speed SDIO card at address 0001
    lib80211: common routines for IEEE802.11 drivers
    lib80211_crypt: registered algorithm 'NULL'
    lib80211_crypt: registered algorithm 'WEP'
    lib80211_crypt: registered algorithm 'CCMP'
    lib80211_crypt: registered algorithm 'TKIP'
    Registering SWP/SWPB emulation handler
    rtc-ds1307 0-0068: setting system clock to 2015-10-30 12:05:39 UTC (1446206739)
    Freeing unused kernel memory: 208K (40554000 - 40588000)
    random: dd urandom read with 82 bits of entropy available
    random: nonblocking pool is initialized
    FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    using random self ethernet address
    using random host ethernet address
    usb0: HOST MAC 2e:35:2c:cd:57:be
    usb0: MAC d2:98:5c:49:a3:78
    using random self ethernet address
    using random host ethernet address
    g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
    g_ether gadget: g_ether ready
    zynq-udc: bind to driver g_ether
    IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
    g_ether gadget: high-speed config #1: CDC Ethernet (EEM)
    IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready

    After running the configure-device.sh script I get the following additional entries in dmesg(entries starting with SWH: are my own debug trace)

    Loading modules backported from Linux version R8.6-0-g3f5b34f
    Backport generated by backports.git R8.6-0-g4677dc3
    SWH: wl1271_init
    SWH: wl1271_probe
    SWH: wl1271_probe
    SWH: wl1271_probe() Calling wlcore_probe_of()
    SWH: wlcore_probe_of() [CONFIG_OF=y]
    SWH: wlcore_probe_of() !np
    SWH: wlcore_probe_of() Just called of_match_node()
    SWH: wlcore_probe_of() Just called irq_of_parse_and_map()
    SWH: wlcore_probe_of() Just read clock properties
    wl1271_sdio mmc1:0001:2: sdio PM caps = 0x1
    

    After inserting all modules the additional entries in dmesg:

    cfg80211: Calling CRDA to update world regulatory domain
    SWH: wlcore_probe()
    SWH: wlcore_nvs_cb()
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffcc, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 52 addr 0x1fffc, byte 0x01
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x13738, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffcc, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x2614, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x260c, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x2614, 4 bytes
    wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffcc, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffcc, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x2602, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x2606, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffcc, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd4, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffd8, 4 bytes
    SWH: wl1271_register_hw()
    wlcore: loaded
    wlcore: driver version: R8.6-dirty
    wlcore: compilation time: 11:54, Beijing, 09-Apr-2015

    When setting wlan0 to up using ifconfig, I get the additional entries:

    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 20 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 12 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 8 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 12 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 12 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50f8, 236 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x57d4, 180 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x5078, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50f8, 236 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50f8, 236 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 16 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 24 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 28 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 60 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 60 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x54f0, 740 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x50e8, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio read 53 addr 0x54f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x50f0, 4 bytes
    wl1271_sdio mmc1:0001:2: sdio write 52 addr 0x1fffc, byte 0x0

    Thanks,

    Siôn

  • Sorry, realise that you may not be able to see much in those logs due to the sdio debug. I've rebuilt everything again without that. Here's the logs below:

    Loading modules backported from Linux version R8.6-0-g3f5b34f
    Backport generated by backports.git R8.6_compat-0-g4677dc3
    SWH: wl1271_init
    SWH: wl1271_probe
    SWH: wl1271_probe
    SWH: wl1271_probe() Calling wlcore_probe_of()
    SWH: wlcore_probe_of() [CONFIG_OF=y]
    SWH: wlcore_probe_of() !np
    SWH: wlcore_probe_of() Just called of_match_node()
    SWH: wlcore_probe_of() Just called irq_of_parse_and_map()
    SWH: wlcore_probe_of() Just read clock properties
    cfg80211: Calling CRDA to update world regulatory domain
    SWH: wlcore_probe()
    SWH: wlcore_nvs_cb()
    wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    SWH: wl1271_register_hw()
    wlcore: loaded
    wlcore: driver version: R8.6-dirty
    wlcore: compilation time: 11:54, Beijing, 09-Apr-2015
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    wlcore: PHY firmware version: Rev 8.2.0.0.232
    wlcore: firmware booted (Rev 8.9.0.0.48)
    IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Calling CRDA to update world regulatory domain
    cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
    wlcore: ERROR ELP wakeup timeout!
    wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.0.48
    wlcore: down
    ieee80211 phy0: Hardware restart was requested
    wlcore: PHY firmware version: Rev 8.2.0.0.232
    wlcore: firmware booted (Rev 8.9.0.0.48)

    Worryingly, I can now see a "ERROR ELP wakeup timeout" and "Hardware recovery in progress". Any ideas what could cause this? This looks like my problem.

  • Hi,

    This is probably because of incorrect WLAN_IRQ mapping. Do you see it 100% times? Does the interrupt count increase when you do "cat /proc/interrupts" ?

    Regards,
    Gigi Joseph.