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.

wl18xx driver for kernel 2.6.28

Other Parts Discussed in Thread: WL1271, ASH

Hello,

I am trying to use the wilink-wlan/build-utilities (as described here: http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts) to cross-compile the wl18xx driver and network utilities (iw, hostapd, wpa_supplicant, etc.) for a custom kernel 2.6.28 designed to run on an NXP encoder (ASC8852A).  Unfortunately, upgrading the kernel is not possible because many libraries are closed-source binaries and targeted to this specific kernel.  The kernel supports .ko modules.  My host build machine runs Ubuntu 16.04 LTS 32 bit in a VirtualBox.

Here is my setup_env:

# \\\//
# -(o o)-
#========================oOO==(_)==OOo=======================
# This file contains the exports needed for automating the
# build process of WLAN components.
# Place this file in the same directory with wl18xx_build.sh
# build scripts. No need to run 'source setup-env', the build
# scripts will perfom it internaly.
#===========================================================
# User specific environment settings - use full PATH

# if DEFAULT toolchain path is set toolchain will be downloaded to ./toolchain.
export TOOLCHAIN_PATH=/opt/Mozart_toolchain/arm-eabi-uclibc/usr/bin

# if DEFAULT path to root filesystem is set ./fs folder will be used.
export ROOTFS=/home/gfournier/wifi-atomas/rootfs

#if DEFAULT kernel path is set - kernel will be downloaded (set branch to match kernel version)
export KERNEL_PATH=/home/gfournier/wifi-atomas/working/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/LSP/mozart_kernel-1.36

# if KERNEL_VARIANT below is set the build script will look for kernel specific
# patches under the patches directory:
# - patches under the pathces/driver_patches/$KERNEL_VARIANT directory would be
# applied during "modules" build.
# - patches under the patches/kernel_patches/$/$KERNEL_VARIANT directory would
# be applied to the kernel pointed by KERNEL_PATH in case the "patch_kernel"
# command is used.
# Note: the kernel is not built automatically after the patches are applied
export KERNEL_VARIANT=DEFAULT

export CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi-
export ARCH=arm
[ "$TOOLCHAIN_PATH" != "DEFAULT" ] && export PATH=$TOOLCHAIN_PATH:$PATH

I am running into lots of trouble when running ./build_wl18xx.sh update R8.6_SP1.  I was able to clear up some of the problems but now I'm just wondering if I am taking the right path to reach my goal.  Here is where I'm at regarding the build progress (openssl seems to build OK, now compat-wireless...):

****** *******
Copy original source files ...
Applying patches from patches to /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless ...
Modify Kconfig tree ...
Rewrite Makefiles and Kconfig files ...
Done!
Generating local configuration database from kernel ... done.
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o zconf.tab.o zconf.tab.c
In file included from zconf.tab.c:2503:0:
menu.c: In function ‘get_symbol_str’:
menu.c:561:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
jump->offset = r->len - 1;
^
menu.c:515:19: note: ‘jump’ was declared here
struct jump_key *jump;
^
cc conf.o zconf.tab.o -o conf
#
# configuration written to .config
#
make[5]: 'conf' is up to date.
#
# configuration written to .config
#
Building backport-include/backport/autoconf.h ... done.
CC [M] /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/main.o
CC [M] /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.o
In file included from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:12:
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/compat.h:18: error: expected ';', ',' or ')' before '*' token
In file included from include/linux/dmaengine.h:24,
from include/linux/skbuff.h:29,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h:3,
from include/linux/if_ether.h:120,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/if_ether.h:3,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:13:
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/device.h: In function 'backport_device_release_driver':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/device.h:115: error: implicit declaration of function 'device_lock'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/device.h:117: error: implicit declaration of function 'device_unlock'
In file included from include/linux/dmaengine.h:29,
from include/linux/skbuff.h:29,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h:3,
from include/linux/if_ether.h:120,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/if_ether.h:3,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:13:
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/dma-mapping.h: In function 'backport_dma_set_mask_and_coherent':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/dma-mapping.h:30: error: implicit declaration of function 'dma_set_coherent_mask'
In file included from include/linux/if_ether.h:120,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/if_ether.h:3,
from /home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:13:
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h: In function 'backport___dev_alloc_pages':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h:230: error: 'NUMA_NO_NODE' undeclared (first use in this function)
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h:230: error: (Each undeclared identifier is reported only once
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/backport-include/linux/skbuff.h:230: error: for each function it appears in.)
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'mac_pton':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:33: error: implicit declaration of function 'hex_to_bin'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtoull_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:53: error: implicit declaration of function 'kstrtoull'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtoll_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:54: error: implicit declaration of function 'kstrtoll'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtoul_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:55: error: implicit declaration of function 'kstrtoul'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtol_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:56: error: implicit declaration of function 'kstrtol'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtoint_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:58: error: implicit declaration of function 'kstrtoint'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtou16_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:59: error: implicit declaration of function 'kstrtou16'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtos16_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:60: error: implicit declaration of function 'kstrtos16'
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c: In function 'kstrtos8_from_user':
/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.c:62: error: implicit declaration of function 'kstrtos8'
scripts/Makefile.build:226: recipe for target '/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.o' failed
make[6]: *** [/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat/compat-3.0.o] Error 1
scripts/Makefile.build:361: recipe for target '/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat' failed
make[5]: *** [/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless/compat] Error 2
Makefile:1375: recipe for target '_module_/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless' failed
make[4]: *** [_module_/home/gfournier/wifi-atomas/build-utilites/src/compat_wireless] Error 2
Makefile.build:6: recipe for target 'modules' failed
make[3]: *** [modules] Error 2
Makefile.real:88: recipe for target 'modules' failed
make[2]: *** [modules] Error 2
Makefile:42: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
Makefile:32: recipe for target 'default' failed
make: *** [default] Error 2
****** ERROR 0 *******

My understanding is that compat-wireless is failing because the script checks out upstream_41 which does not support kernels older than 3.0.  Therefore, some kernel symbols are not available in my kernel (such as device_lock that has been introduced in kernel 2.6.34, between 2.6.28 and 3.0).

I have tried using version 3.14 of backports because I found this on the backports documentation: "Current versions of backports support all mainline kernels starting with version 3.0, for kernel versions older than 3.0 please use backports-3.14, which supports all kernel versions back to 2.6.26."  However, I did not have more success.

My questions are:
- what is the best course of action to get wl18xx drivers on a custom 2.6.28 kernel ?
- is there any documentation on how to do so ?
- is there anything obvious I am missing here ?

Any help would be greatly appreciated.

Guillaume Fournier

  • Hi,

    The oldest kernel that we have the wl18xx driver (R8.4) integrated is the 2.6.37 kernel.
    Please see: processors.wiki.ti.com/index.php

    I would recommend that you start with this.
    Please note that you might have to backport some PM related changes from 2.6.37 to 2.6.28

    Regards,
    Gigi Joseph.
  • Thanks Joseph.  And what about the Backports project where they claim that "Current versions of backports support all mainline kernels starting with version 3.0, for kernel versions older than 3.0 please use backports-3.14, which supports all kernel versions back to 2.6.26." ?

    I looked at the menuconfig for Backports and found this:

    Symbol: WL18XX [=m]
    Type : tristate
    Prompt: TI wl18xx support
      Defined at drivers/net/wireless/ti/wl18xx/Kconfig:1
      Depends on: WLAN [=y] && WL_TI [=y] && m && <choice> && MAC80211 [=m]
      Location:
        -> Wireless LAN (WLAN [=y])
          -> TI Wireless LAN support (WL_TI [=y])
      Selects: WLCORE [=m]

    and

    Symbol: WL_TI [=y]
    Type : boolean
    Prompt: TI Wireless LAN support
      Defined at drivers/net/wireless/ti/Kconfig:1
      Depends on: WLAN [=y] && !BACKPORT_KERNEL_2_6_30
      Location:
        -> Wireless LAN (WLAN [=y])

    So it looks like I might have a shot at backporting WL18xx to 2.6.30 using the Backports project.  What do you think ?  Have you heard of anyone trying to do such a think successfully ?

    Also, what do you mean by "backport some PM related changes" ?

    Guillaume

  • Hi Guillaume,

    I am not aware of anybody using 2.6.28 kernel. However some guys were successful in integrating R8.5 with 2.6.32
    Please see: e2e.ti.com/.../1722203

    The relevant PM patches are mentioned in that link

    Regards,
    Gigi Joseph.
  • Hello,

    I have been working really hard for the past month or so to get a version of the driver to run on my custom 2.6.28 kernel.  Unfortunately, I'm not there yet.  I am using backports-3.14 (aka compat-wireless).  As of now, I was able to generate the .ko modules needed and I can load them correctly on my system.  However, when I try to bring the interface up (ifconfig wlan0 up), I am still having a problem.  It looks like, at some point, an SDIO communication with the module just never returns as if the module would not reply.

    Anyway, I would like to make sure I have the right firmware before going further.  What is the firmware version I need to run with my backported driver from 3.14?  I have used the following procedure to find the firmware needed:

    # strings wl18xx.ko | grep firmware
    firmware=ti-connectivity/wl18xx-fw-2.bin
    I downloaded wl18xx-fw-2.bin from here:
    https://github.com/TI-OpenLink/firmwares/blob/master/ti-connectivity/wl18xx-fw-2.bin

    Is this the right firmware to use?  If not, where can I get the proper firmware?  I cannot use the usual scripts from build-utilites since it does not support my kernel.

    I will paste here my current console output.  You will notice that I have added a LOT of debug information. Most of this will be irrelevant to you but I have included it anyway.  I've highlighted some important stuff I think might be of interest to determine what firmware version I should need.

    Linux version 2.6.28.9-Mozart-8G (gfournier@gfournier-vm) (gcc version 4.3.5 (Buildroot 2010.11) ) #229 PREEMPT Thu Jun 16 11:36:13 EDT 2016
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: Mozart
    Ignoring unrecognised tag 0x00000000
    Memory policy: ECC disabled, Data cache writeback
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 24384
    Kernel command line: root=/dev/ram0 ro initrd=0x3000000,8M mem=96M console=1 phy_mode=mii
    PID hash table entries: 512 (order: 9, 2048 bytes)
    IRQ timer at interrupt number 0x00 clock 100000000
    Console: colour dummy device 80x30
    Serial: 8250/16550 driver set termios
    [jon]uartclk=1500000, baud=38400, delay=79
    [serial]done!
    console [ttyS1] enabled
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 96MB = 96MB total
    Memory: 85288KB available (3332K code, 304K data, 132K init)
    Calibrating delay loop... 299.00 BogoMIPS (lpj=1495040)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    net_namespace: 480 bytes
    NET: Registered protocol family 16
    [jon]lm device register...(bus.id=lm0)
    [jon]lm device registered!
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 4096 bind 4096)
    TCP reno registered
    NET: Registered protocol family 1
    checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
    Freeing initrd memory: 8192K
    GPIO init
    squashfs: version 3.4 (2008/08/26) Phillip Lougher
    JFFS2 version 2.2. © 2001-2006 Red Hat, Inc.
    msgmni has been set to 182
    alg: No test for stdrng (krng)
    io scheduler noop registered (default)
    Serial: 8250/16550 driver 4 ports
    serial8250: ttyS0 at MMIO 0x0 (irq = 25) is a 16550
    serial8250: ttyS1 at MMIO 0x0 (irq = 26) is a 16550
    serial8250: ttyS2 at MMIO 0x0 (irq = 27) is a 16550
    serial8250: ttyS3 at MMIO 0x0 (irq = 28) is a 16550
    brd: module loaded
    GMAC: PHY mode is mii
    stmmac - user ID: 0x10, Synopsys ID: 0x34
    No HW DMA feature register supported<6> Normal descriptors
    RX Checksum Offload Engine supported (type 2)
    TX Checksum insertion supported
    eth0 - (dev. name: dwmac - id: 0, IRQ #0
    IO base addr: 0xc68b4000)
    dwmac: probed
    eth0: PHY ID 0007c0f1 at 0 IRQ POLL (dwmac-0:00) active
    Driver 'sd' needs updating - please use bus_type methods
    Mozart NAND Driver
    AMD (Spansion) NAND Flash Chip.
    NAND device: Manufacturer ID: 0x01, Chip ID: 0xd3 (AMD NAND 1GiB 3,3V 8-bit)
    Bad block table found at page 524224, version 0x01
    Bad block table found at page 524160, version 0x01
    Using default nand partition..
    Creating 10 MTD partitions on "Mozart-nand":
    0x00000000-0x00040000 : "nand-bootldr"
    0x00040000-0x00080000 : "nand-env"
    0x00080000-0x00480000 : "nand-kernel"
    0x00480000-0x01c80000 : "nand-rootfs"
    0x01c80000-0x04c80000 : "nand-usr-root"
    0x04c80000-0x05680000 : "nand-ionprod"
    0x05680000-0x06e80000 : "nand-fwup-raw"
    0x06e80000-0x0ee80000 : "nand-fwup"
    0x0ee80000-0x14e80000 : "nand-ionapp"
    0x14e80000-0x20000000 : "nand-iondata"
    usbmon: debugfs is not available
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    i2c /dev entries driver
    Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
    ASoC version 0.13.2
    ALSA device list:
    No soundcards found.
    Netfilter messages via NETLINK v0.30.
    nf_conntrack version 0.5.0 (1536 buckets, 6144 max)
    CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
    nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or
    sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
    ctnetlink v0.93: registering with nfnetlink.
    NF_TPROXY: Transparent proxy support initialized, version 4.1.0
    NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
    ip_tables: (C) 2000-2006 Netfilter Core Team
    arp_tables: (C) 2002 David S. Miller
    TCP cubic registered
    NET: Registered protocol family 17
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RAMDISK: squashfs filesystem found at block 0
    RAMDISK: Loading 2453KiB [1 disk] into ram disk... done.
    VFS: Mounted root (squashfs filesystem) readonly.
    Freeing init memory: 132K
    [jon]UART start up!
    [jon]UART IRQ 1a
    Serial: 8250/16550 driver set termios
    [jon]uartclk=1500000, baud=38400, delay=79
    [serial]done!
    init started: BusyBox v1.10.4 (2016-05-17 13:28:15 EDT)
    starting pid 359, tty '/dev/console': '-/etc/init.d/rcS'
    cannot open /dev/null
    UBI: attaching mtd4 to ubi0
    UBI: attached mtd4 to ubi0
    UBI: background thread "ubi_bgt0d" started, PID 540
    UBI device number 0, total 384 LUBI: attaching mtd5 to ubi1
    EBs (48758784 bytes, 46.5 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
    UBI: attached mtd5 to ubi1
    UBI: background thread "ubi_bgt1d" started, PID 544
    UBI device number 1, total 80 LEUBI: attaching mtd7 to ubi2
    Bs (10158080 bytes, 9.7 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
    UBI: attached mtd7 to ubi2
    UBI: background thread "ubi_bgt2d" started, PID 548
    UBI device number 2, total 1022 UBI: attaching mtd8 to ubi3
    LEBs (129769472 bytes, 123.8 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
    UBI: attached mtd8 to ubi3
    UBI: background thread "ubi_bgt3d" started, PID 552
    UBI device number 3, total 768 LUBI: attaching mtd9 to ubi4
    EBs (97517568 bytes, 93.0 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
    UBI: attached mtd9 to ubi4
    UBI: background thread "ubi_bgt4d" started, PID 556
    UBI device number 4, total 1420 LEBs (180305920 bytes, 172.0 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
    UBIFS: mounted UBI device 0, volume 0, name "usr_root"
    UBIFS: mounted read-only
    mount: mounting ubi1:ionprod on /ionprod failed: No such file or directory
    mount: mounting ubi2:fwup on /ionfwupd failed: No such file or directory
    mount: mounting ubi3:ionapp on /ionapp failed: No such file or directory
    mount: mounting ubi4:iondata on /iondata failed: No such file or directory
    rcS file for ASC8852A
    /dev/ttyS1 linked to /dev/ttyS - using as console
    eth0: device MAC address c595a130
    PHY: SMSC LAN8710/LAN8720
    No MAC Management Counters available
    udhcpc (v1.10.4) started
    Sending discover...
    Sending discover...
    dwmac-0:00 - Link is Up - 100/Full
    Sending discover...
    Sending select for 192.168.10.67...
    Lease of 192.168.10.67 obtained, lease time 86400
    deleting routers
    route: SIOCDELRT: No such process
    /usr/share/udhcpc/default.script: line 41: cannot create /etc/resolv.conf: Read-only file system
    adding dns 192.168.10.1
    /usr/share/udhcpc/default.script: line 41: cannot create /etc/resolv.conf: Read-only file system
    adding dns 0.0.0.0
    /usr/share/udhcpc/default.script: line 41: cannot create /etc/resolv.conf: Read-only file system
    i2c-gpio i2c-gpio.0: using pins 5 (SDA) and 4 (SCL)
    Enabling RTC clock output...OK
    Loading modules backported from Linux version v3.14.22-0-gd7892a4
    Backport generated by backports.git v3.14.22-1-0-g7793930
    cfg80211: Calling CRDA to update world regulatory domain
    wl1271_init 426: inside wl1271_init
    VPL_EDMC: initialized (driver 6.0.0.8 HW 13.0.10.11) Dec 30 2013 15:22:40
    DRAM 0 base address = 0x06000000, size = 0x0A000000
    Install VPL_DMAC device driver version 8.0.0.7 on VPL_DMAC hardware version 6.3.4.3 complete !!
    Install VMA_DCE device driver version 4.0.0.3 on VMA_DCE hardware version 1.1.1.5 complete !!
    VPL sdhc driver
    Inside mmc_power_up
    vpl_sdhc_set_ios power_mode:1
    vpl_sdhc_set_ios power_mode:2
    VPL sdhc driver
    mmc0: new SDHC card at address 1234
    mmcblk0: mmc0:1234 SA04G 3.70 GiB
    mmcblk0: unknown partition table
    Inside mmc_power_up
    vpl_sdhc_set_ios power_mode:1
    vpl_sdhc_set_ios power_mode:2
    mmc1: card claims to support voltages below the defined range. These will be ignored.
    mmc1: SDIO card claims to support the incompletely defined 'low voltage range'. This will be ignored.
    mmc1: queuing CIS tuple 0x91 length 3
    mmc1: new SDIO card at address 0001
    wl1271_probe 246: inside wl1271_probe
    wl1271_probe 246: inside wl1271_probe
    wl18xx_probe 1975: calling wlcore_probe
    wl18xx_probe 1981: wlcore_probe succeeded
    wl1271_probe 335: wl1271_probe was successful
    IRQ #44 edge=1
    IRQ #44 clear
    IRQ #44 unmasked
    IRQ #44 masked
    -- wl12xx_get_hw_info:
    Inside wl12xx_set_power_on
    Inside wl1271_power_on
    Inside wl12xx_sdio_set_power
    Inside wl12xx_sdio_power_on
    Restoring power for real
    Inside mmc_power_restore_host
    mmc_power_restore_host 2
    Inside mmc_power_up
    Already ON, leaving
    SDIO: Enabling device mmc1:0001:2...
    SDIO: Enabled device mmc1:0001:2
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    wl12xx_sdio_raw_write: sdio_f0_writeb
    wl12xx_sdio_raw_write: sdio_f0_writeb done
    wlcore: mem_start 00A00000 mem_size 00012000
    wlcore: reg_start 00807000 reg_size 00005000
    wlcore: mem2_start 00800000 mem2_size 0000B000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    wlcore: mem_start 00A00000 mem_size 00012000
    wlcore: reg_start 00807000 reg_size 00005000
    wlcore: mem2_start 00800000 mem2_size 0000B000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: mem_start 00000000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    Inside wl12xx_sdio_set_power
    -- identify_chip:
    wlcore: chip id 0x6030111 (185x PG20)
    -- wl1271_init_ieee80211:
    -- wl1271_register_hw:
    wlcore: base address: oui 8030dc nic 05c3fc
    wlcore: loaded
    -- wlcore_sysfs_init:
    -- completing:
    starting pid 708, tty '': '/sbi
    ASC8852A login: root


    BusyBox v1.10.4 (2016-05-17 13:28:15 EDT) built-in shell (ash)
    Enter 'help' for a list of built-in commands.

    ~ # ifconfig wlan0 up
    wlcore: mac80211 start
    ieee80211_do_open: drv_add_interface2
    wlcore: mac80211 add interface type 2 mac c58e19a8
    wlcore: allocating hw queue base: 0
    Inside wl12xx_set_power_on
    Inside wl1271_power_on
    Inside wl12xx_sdio_set_power
    Inside wl12xx_sdio_power_on
    SDIO: Enabling device mmc1:0001:2...
    SDIO: Enabled device mmc1:0001:2
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    wl12xx_sdio_raw_write: sdio_f0_writeb
    wl12xx_sdio_raw_write: sdio_f0_writeb done
    wlcore: booting firmware ti-connectivity/wl18xx-fw-2.bin
    -- wl12xx_init_fw booting
    -- wl18xx_pre_boot
    wlcore: mem_start 00A00000 mem_size 00012000
    wlcore: reg_start 00807000 reg_size 00005000
    wlcore: mem2_start 00800000 mem2_size 0000B000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: clock freq 5 (13, 120, 0, 0, spit)
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    -- wl18xx_pre_upload
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    wlcore: chip id 0x6030111
    wlcore: mem_start 80926000 mem_size 00016A44
    wlcore: reg_start 00000000 reg_size 00000000
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    -- wlcore_boot_upload_firmware
    wlcore: firmware chunks to be uploaded: 15
    wlcore: chunk 14 addr 0x0 len 78852
    wlcore: starting firmware upload
    wlcore: fw_data_len 78852 chunk_size 16384
    wlcore: mem_start 00000000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6b9800c to 0x0
    wlcore: uploading fw chunk 0xc6b9c00c to 0x4000
    wlcore: uploading fw chunk 0xc6ba000c to 0x8000
    wlcore: uploading fw chunk 0xc6ba400c to 0xc000
    wlcore: uploading fw last chunk (13316 B) 0xc6ba800c to 0x10000
    wlcore: chunk 13 addr 0x100000 len 131072
    wlcore: starting firmware upload
    wlcore: fw_data_len 131072 chunk_size 16384
    wlcore: mem_start 00100000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: mem_start 00100000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bab418 to 0x100000
    wlcore: mem_start 00104000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6baf418 to 0x104000
    wlcore: mem_start 00108000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bb3418 to 0x108000
    wlcore: mem_start 0010C000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bb7418 to 0x10c000
    wlcore: mem_start 00110000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bbb418 to 0x110000
    wlcore: mem_start 00114000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bbf418 to 0x114000
    wlcore: mem_start 00118000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bc3418 to 0x118000
    wlcore: mem_start 0011C000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bc7418 to 0x11c000
    wlcore: uploading fw last chunk (0 B) 0xc6bcb418 to 0x120000
    wlcore: chunk 12 addr 0x20400000 len 52648
    wlcore: starting firmware upload
    wlcore: fw_data_len 52648 chunk_size 16384
    wlcore: mem_start 20400000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: mem_start 20400000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bcb420 to 0x20400000
    wlcore: mem_start 20404000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bcf420 to 0x20404000
    wlcore: mem_start 20408000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bd3420 to 0x20408000
    wlcore: uploading fw last chunk (3496 B) 0xc6bd7420 to 0x2040c000
    wlcore: chunk 11 addr 0xb00000 len 488
    wlcore: starting firmware upload
    wlcore: fw_data_len 488 chunk_size 16384
    wlcore: mem_start 00B00000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (488 B) 0xc6bd81d0 to 0xb00000
    wlcore: chunk 10 addr 0xb0ae40 len 28420
    wlcore: starting firmware upload
    wlcore: fw_data_len 28420 chunk_size 16384
    wlcore: mem_start 00B0AE40 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: mem_start 00B0AE40 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bd83c0 to 0xb0ae40
    wlcore: uploading fw last chunk (12036 B) 0xc6bdc3c0 to 0xb0ee40
    wlcore: chunk 9 addr 0x80900000 len 65524
    wlcore: starting firmware upload
    wlcore: fw_data_len 65524 chunk_size 16384
    wlcore: mem_start 80900000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bdf2cc to 0x80900000
    wlcore: uploading fw chunk 0xc6be32cc to 0x80904000
    wlcore: uploading fw chunk 0xc6be72cc to 0x80908000
    wlcore: uploading fw last chunk (16372 B) 0xc6beb2cc to 0x8090c000
    wlcore: chunk 8 addr 0x80920000 len 28396
    wlcore: starting firmware upload
    wlcore: fw_data_len 28396 chunk_size 16384
    wlcore: mem_start 80920000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bef2c8 to 0x80920000
    wlcore: uploading fw last chunk (12012 B) 0xc6bf32c8 to 0x80924000
    wlcore: chunk 7 addr 0x80940000 len 6144
    wlcore: starting firmware upload
    wlcore: fw_data_len 6144 chunk_size 16384
    wlcore: mem_start 80940000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (6144 B) 0xc6bf61bc to 0x80940000
    wlcore: chunk 6 addr 0x80944000 len 6144
    wlcore: starting firmware upload
    wlcore: fw_data_len 6144 chunk_size 16384
    wlcore: mem_start 80944000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (6144 B) 0xc6bf79c4 to 0x80944000
    wlcore: chunk 5 addr 0x80948000 len 6144
    wlcore: starting firmware upload
    wlcore: fw_data_len 6144 chunk_size 16384
    wlcore: mem_start 80948000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (6144 B) 0xc6bf91cc to 0x80948000
    wlcore: chunk 4 addr 0x8094c000 len 6144
    wlcore: starting firmware upload
    wlcore: fw_data_len 6144 chunk_size 16384
    wlcore: mem_start 8094C000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (6144 B) 0xc6bfa9d4 to 0x8094c000
    wlcore: chunk 3 addr 0x80950000 len 8192
    wlcore: starting firmware upload
    wlcore: fw_data_len 8192 chunk_size 16384
    wlcore: mem_start 80950000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (8192 B) 0xc6bfc1dc to 0x80950000
    wlcore: chunk 2 addr 0x80960000 len 19672
    wlcore: starting firmware upload
    wlcore: fw_data_len 19672 chunk_size 16384
    wlcore: mem_start 80960000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6bfe1e4 to 0x80960000
    wlcore: uploading fw last chunk (3288 B) 0xc6c021e4 to 0x80964000
    wlcore: chunk 1 addr 0x80953000 len 1536
    wlcore: starting firmware upload
    wlcore: fw_data_len 1536 chunk_size 16384
    wlcore: mem_start 80953000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw last chunk (1536 B) 0xc6c02ec4 to 0x80953000
    wlcore: chunk 0 addr 0x80958000 len 24576
    wlcore: starting firmware upload
    wlcore: fw_data_len 24576 chunk_size 16384
    wlcore: mem_start 80958000 mem_size 00014000
    wlcore: reg_start 00810000 reg_size 0000BFFF
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    wlcore: uploading fw chunk 0xc6c034cc to 0x80958000
    wlcore: uploading fw last chunk (8192 B) 0xc6c074cc to 0x8095c000
    -- wl18xx_set_mac_and_phy
    wlcore: mem_start 80926000 mem_size 00016A44
    wlcore: reg_start 00000000 reg_size 00000000
    wlcore: mem2_start 00000000 mem2_size 00000000
    wlcore: mem3_start 00000000 mem3_size 00000000
    -- wlcore_boot_run_firmware
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    wlcore: chip id after firmware boot: 0x6030111
    wlcore: cmd_box_addr 0xb007f8
    wlcore: MBOX ptrs: 0xb00adc 0xb00b6c
    wlcore: PHY firmware version: Rev 8.2.0.0.163
    wlcore: unmasking event_mask 0x1fed01
    wlcore: acx event mbox mask
    wlcore: cmd configure (17)
    wlcore: mem_start 00800000 mem_size 000050FC
    wlcore: reg_start 00B00404 reg_size 00001000
    wlcore: mem2_start 00C00000 mem2_size 00000400
    wlcore: mem3_start 00000000 mem3_size 00000000
    -- wl18xx_enable_interrupts
    IRQ #44 clear
    IRQ #44 unmasked
    -- wl12xx_init_fw wl1271_hw_init
    -- wl1271_hw_init hw_init
    wlcore: acx cfg bitmap 89 blk 256 spare 1 field 15
    wlcore: cmd configure (57)
    -- wl1271_hw_init wl1271_init_templates_config
    wlcore: cmd template_set 2 (role 255)
    wlcore: cmd template_set 3 (role 255)
    wlcore: cmd template_set 19 (role 255)
    wlcore: cmd template_set 20 (role 255)
    wlcore: cmd template_set 0 (role 255)
    wlcore: cmd template_set 6 (role 255)
    wlcore: cmd template_set 5 (role 255)
    wlcore: cmd template_set 4 (role 255)
    wlcore: cmd template_set 1 (role 255)
    wlcore: cmd template_set 15 (role 255)
    wlcore: cmd template_set 14 (role 255)
    wlcore: cmd template_set 13 (role 255)
    wlcore: cmd template_set 16 (role 255)
    wlcore: cmd template_set 7 (role 255)
    wlcore: cmd template_set 7 (role 255)
    wlcore: cmd template_set 7 (role 255)
    wlcore: cmd template_set 7 (role 255)
    -- wl1271_hw_init wl12xx_acx_mem_cfg
    wlcore: wl1271 mem cfg
    wlcore: cmd configure (1)
    -- wl1271_hw_init wl12xx_init_fwlog
    wlcore: cmd config firmware logger
    -- wl1271_hw_init wlcore_cmd_regdomain_config_locked
    wlcore: cmd reg domain config
    wlcore: cmd reg domain bitmap1: 0x000007ff, bitmap2: 0x00000000
    Entering GPIO ISR!
    Forwarding IRQ!
    IRQ #44 retrigger
    IRQ #44 masked
    IRQ #44 masked
    In wlcore_hardirq!
    IRQ #44 clear
    IRQ #44 unmasked
    In wlcore_irq!
    wlcore_irq got spin_lock!
    -- wl1271_hw_init wl1271_init_pta
    wlcore_irq released spin_lock
    wlcore_irq cancel_work_sync
    wlcore_irq grabbing mutex
    wlcore: acx sg cfg
    wlcore: cmd configure (22)
    wlcore: acx sg enable
    wlcore: cmd configure (21)
    -- wl1271_hw_init wl1271_acx_init_mem_config
    wlcore: acx mem map
    wlcore: cmd interrogate
    wlcore: available tx blocks: 44
    -- wl1271_hw_init wl12xx_init_rx_config
    wlcore: acx rx msdu life time
    wlcore: cmd configure (60)
    -- wl1271_hw_init wl1271_acx_dco_itrim_params
    wlcore: acx dco itrim parameters
    wlcore: cmd configure (55)
    -- wl1271_hw_init wl1271_acx_tx_config_options
    wlcore: acx tx config options
    wlcore: cmd configure (15)
    -- wl1271_hw_init wl1271_acx_init_rx_interrupt
    wlcore: wl1271 rx interrupt config
    wlcore: cmd configure (39)
    -- wl1271_hw_init wl1271_init_energy_detection
    wlcore: acx cca threshold
    wlcore: cmd configure (16)
    -- wl1271_hw_init wl1271_acx_frag_threshold
    wlcore: acx frag threshold: 2352
    wlcore: cmd configure (40)
    -- wl1271_hw_init wl1271_cmd_data_path
    wlcore: cmd data path
    wlcore: rx start cmd channel 1
    wlcore: tx start cmd channel 1
    -- wl1271_hw_init wl1271_acx_pm_config
    wlcore: acx pm config
    wlcore: cmd configure (64)
    -- wl1271_hw_init wl12xx_acx_set_rate_mgmt_params
    wlcore: acx set rate mgmt params
    wlcore: cmd configure (52)
    -- wl1271_hw_init wl12xx_acx_config_hangover
    wlcore: acx config hangover
    wlcore: cmd configure (66)
    wlcore: firmware booted (Rev 8.5.0.0.55)
    wlcore: 11a is supported
    wl1271_op_add_interface: wl12xx_cmd_role_enable
    wlcore: cmd role enable
    wl1271_op_add_interface: wl1271_init_vif_specific
    wlcore: acx sleep auth 2
    wlcore: cmd configure (29)
    wlcore: acx config ps
    wlcore: cmd configure (65)
    wlcore: acx fm coex setting
    wlcore: cmd configure (23)
    wlcore: acx rate policies
    wlcore: basic_rate: 0x3, full_rate: 0x3
    wlcore: cmd configure (27)
    wlcore: cmd configure (27)
    wlcore: cmd configure (27)
    wlcore: acx group address tbl
    wlcore: cmd configure (63)
    wlcore: acx connection monitor parameters: disabled
    wlcore: cmd configure (18)
    wlcore: acx beacon filter table
    wlcore: cmd configure (24)
    wlcore: acx beacon filter opt
    wlcore: cmd configure (11)
    wlcore: acx bcn dtim options
    wlcore: cmd configure (20)
    wlcore: acx rssi snr avg weights
    wlcore: cmd configure (43)
    wlcore: acx slot
    wlcore: cmd configure (2)
    wlcore: acx service period timeout
    wlcore: cmd configure (33)
    wlcore: acx rts threshold: 2353
    wlcore: cmd configure (62)
    wlcore: acx ac cfg 0 cw_ming 15 cw_max 63 aifs 3 txop 0
    wlcore: cmd configure (3)
    wlcore: acx tid config
    wlcore: cmd configure (9)
    wlcore: acx ac cfg 1 cw_ming 15 cw_max 63 aifs 7 txop 0
    wlcore: cmd configure (3)
    wlcore: acx tid config
    wlcore: cmd configure (9)
    wlcore: acx ac cfg 2 cw_ming 15 cw_max 63 aifs 1 txop 3008
    wlcore: cmd configure (3)
    wlcore: acx tid config
    wlcore: cmd configure (9)
    wlcore: acx ac cfg 3 cw_ming 15 cw_max 63 aifs 1 txop 1504
    wlcore: cmd configure (3)
    wlcore: acx tid config
    wlcore: cmd configure (9)
    wlcore: acx feature cfg
    wlcore: cmd configure (67)
    wlcore: acx keep alive mode: 0
    wlcore: cmd configure (44)
    wlcore: acx ba initiator policy
    wlcore: cmd configure (46)
    wl1271_op_add_interface: list_add
    wl1271_op_add_interface: wl1271_ps_elp_sleep
    wlcore_irq grabbed mutex
    wlcore_irq wlcore_irq_locked
    wlcore: IRQ work
    wlcore: intr: 0x4 (fw_rx_counter = 0, drv_rx_counter = 0, tx_results_counter = 0)
    Quitting wl1271_op_add_interface
    wlcore: WL1271_ACX_INTR_EVENT_A
    wlcore: EVENT on mbox 0
    wlcore: MBOX vector: 0x80000
    ieee80211_do_open: drv_add_interface2 returned 0
    wlcore_irq spin_lock_irqsave
    wlcore_irq spin_unlock_irqrestore
    wlcore_irq mutex_unlock
    wlcore: elp work
    ieee80211_do_open: ieee80211_check_queues
    wlcore: mutex grabbed
    wlcore: chip to elp
    wlcore_raw_write32 success
    set_bit success
    ieee80211_do_open: ieee80211_check_queues result=0
    ieee80211_do_open: ieee80211_reset_erp_info
    ieee80211_do_open: ieee80211_bss_info_change_notify
    ieee80211_bss_info_change_notify: drv_bss_info_changed
    drv_bss_info_changed: bss_info_changed
    wlcore: mac80211 bss info role 0 changed 0xe
    wl1271_op_bss_info_changed: mutex_lock
    wl1271_op_bss_info_changed: mutex_acquired
    wl1271_op_bss_info_changed: wl1271_ps_elp_wakeup
    wlcore: waking up chip from elp
    wl1271_ps_elp_wakeup got spin_lock!
    wl1271_ps_elp_wakeup released spin_lock!
    wl1271_ps_elp_wakeup wlcore_raw_write32 result=0
    wlcore: wakeup time: 40 ms
    wl1271_op_bss_info_changed: wl1271_bss_info_changed_sta
    wlcore: acx slot
    wlcore: cmd configure (2)
    wlcore: acx_set_preamble
    wlcore: cmd configure (30)
    wlcore: acx_set_ctsprotect
    wlcore: cmd configure (28)
    wl1271_op_bss_info_changed: wl1271_ps_elp_sleep
    drv_bss_info_changed: trace_drv_return_void
    ieee80211_do_open: netif_carrier_off
    ieee80211_do_open: ieee80211_set_wmm_default
    wlcore: elp work
    wlcore: mutex grabbed
    wlcore: chip to elp
    wlcore_raw_write32 success
    set_bit success
    ieee80211_set_wmm_default: rcu_read_lock
    ieee80211_set_wmm_default: rcu_dereference
    ieee80211_set_wmm_default: rcu_read_unlock
    ieee80211_set_wmm_default: drv_conf_tx
    wl1271_op_conf_tx: grabbing mutex
    wl1271_op_conf_tx: mutex grabbed
    wlcore: mac80211 conf tx 0
    wl1271_op_conf_tx: wl1271_ps_elp_wakeup
    wlcore: waking up chip from elp
    wl1271_ps_elp_wakeup got spin_lock!
    wl1271_ps_elp_wakeup released spin_lock!
    wl1271_ps_elp_wakeup wlcore_raw_write32 result=0
    wlcore: wakeup time: 40 ms
    wl1271_op_conf_tx: wl1271_acx_ac_cfg
    wlcore: acx ac cfg 3 cw_ming 15 cw_max 1023 aifs 2 txop 0
    wlcore: cmd configure (3)

    System hangs right here (although I am seeing line feed echos whenever I press ENTER on the console).

    Thanks for your help,

    Guillaume

  • Hi Guillaume,

    The firmware version depends on the driver that's being used. It's unclear which driver you're using from the logs that you've shared.
    Where did you get the drivers from? How did you build it?

    Regards,
    Gigi Joseph.
  • Hello Gigi,

    I am getting the driver from backports-3.14.22. From my understanding, the driver included in this version of backports is the one that was included in the 3.14.22 mainstream linux kernel at the time.

    To build the driver, I am using backports standard procedure. It builds the modules (cfg80211.ko, compat.ko, compat_firmware_class.ko, mac80211.ko, wl18xx.ko, wlcore.ko, wlcore_sdio.ko) against my 2.6.28 kernel from NXP's BSP. I had to modify my kernel and backports to accomodate for the 2.6.28 kernel since backports could only go as far as 2.6.30. This was the easy part...

    Now that I have my modules, I am having trouble getting them to work properly and I am unsure of the version of the firmware I should use. Can you help me with that ? I guess if you can find what was the firmware used at the time of the 3.14.22 mainstream kernel, that would be the one I need.

    Thanks for your help !
    Guillaume
  • Hi Guillaume,

    The wl18xx drivers were updated in the linux main line from version 4.1. So, it looks to me that you're using a very very old driver version and may not be even working.

    I would recommend that you use the below version to begin with:
    processors.wiki.ti.com/index.php

    This is the R8.4 release on the 2.6.37 release

    I am aware that some people on this forum have been successful in porting the driver on 2.6.28 kernel - For that, they had to backport some PM related changes from 2.6.37 to 2.6.28.

    Regards,
    Gigi Joseph.