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 and i.MX6Q problem

Other Parts Discussed in Thread: WL1837, WL1271, WL1835MOD, WL1837MOD

Hello everyone!

I am trying to integrate a wl1837 chip with MX6Q processor.
I did everything from http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts

The command

./sudo_build_wl18xx.sh

took a long time and finised with

Verifying filesystem skeleton...

Database signature verification failed.

Please update your public key used to verify the DB

Wifi Package Build Successful

 

I see this modules in my rootfs

/lib/modules/3.10.53-g560ad3d-dirty/updates/compat/compat.ko

/lib/modules/3.10.53-g560ad3d-dirty/updates/drivers/net/wireless/ti/wlcore/wlcore.ko

/lib/modules/3.10.53-g560ad3d-dirty/updates/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko

/lib/modules/3.10.53-g560ad3d-dirty/updates/drivers/net/wireless/ti/wl18xx/wl18xx.ko

/lib/modules/3.10.53-g560ad3d-dirty/updates/net/wireless/cfg80211.ko

/lib/modules/3.10.53-g560ad3d-dirty/updates/net/mac80211/mac80211.ko

 

But I get this messages while booting:

UIM SYSFS Node Found at /sys/./devices/soc0/regulators.19/kim.25/install

Starting uim-sysfs daemon.

uim:@ main

uim:Path to sysfs node too long

(stk) :ldisc installation timeout

(stk) :ldisc_install = 0

(stk) :timed out waiting for ldisc to be un-installed

(stk) :ldisc_install = 1

Loading modules backported from Linux version R8.6-0-g3f5b34f /* compat.ko module loaded */

Backport generated by backports.git R8.6-0-g4677dc3

wl1271_sdio: probe of mmc2:0001:2 failed with error -12  /* why 1271??? */

(stk) :ldisc installation timeout

(stk) :ldisc_install = 0

(stk) : timed out waiting for ldisc to be un-installed

(stk) :ldisc_install = 1(stk) :ldisc installation timeout

(stk) :ldisc_install = 0(stk) : timed out waiting for ldisc to be un-installed

(stk) :ldisc_install = 1Sending discover...

(stk) :ldisc installation timeout

(stk) :ldisc_install = 0(stk) : timed out waiting for ldisc to be un-installed

(stk) :ldisc_install = 1(stk) :ldisc installation timeout

(stk) :ldisc_install = 0

(stk) : timed out waiting for ldisc to be un-installed

Bluetooth: st_register failed -22

 

When I do "lsmod" I see a compat and wlcore_sdio modules loaded.

I successfully load a missing modules cfg80211, mac80211, wlcore and wl18xx and nothing happened.

 

ifconfig wlan0 up

ifconfig: SIOCGIFFLAGS: No such device

 

/usr/sbin/wlconf script changes nothing.

BT_EN pin also low and hciconfig falling with timeout.

Best Regards, Ivan Nikolaenko

  • Hi Ivan,

    For the BT failure (uim logs above), can you please make the below change in "uim.c"

    From:

    static char install_sysfs_entry[48];
    static char dev_name_sysfs[48];
    static char baud_rate_sysfs[48];
    static char flow_cntrl_sysfs[48];

    To:

    static char install_sysfs_entry[255];
    static char dev_name_sysfs[255];
    static char baud_rate_sysfs[255];
    static char flow_cntrl_sysfs[255];


    For the WLAN failure, can you please confirm if you have followed the steps from: processors.wiki.ti.com/.../WL18xx_First_Time_Getting_Started_Guide_(IMX6)

    Regards,
    Gigi Joseph.
  • Hi, Joseph!

    I did as you advised, made "./sudo_build_wl18xx.sh uim" and nothing changed.

    Regarding to wifi:
    I made a "./sudo_build_wl18xx.sh update R8.5" and modules installed correctly.
    But when I try "ifconfig wlan0 up" I get "ifconfig: SIOCSIFFLAGS: Operation not possible due to RF-kill".
    I did the following:
    "rfkill unblock all"
    and got:
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR firmware boot failed despite 3 retries
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR firmware boot failed despite 3 retries

    I tried to follow this way: e2e.ti.com/.../932756
    But link "lists.meego.com/.../000674.html" is dead.

    UPDATE

    I found this messages in compilation log:

    Copy original source files ...
    Apply patches ...
    Failed to apply changes from backport-adjustments/flow_dissector.patch
    > patching file compat/net-core-flow_dissector.c
    > Hunk #1 FAILED at 177.
    > 1 out of 1 hunk FAILED -- saving rejects to file compat/net-core-flow_dissector.c.rej
    Failed to apply changes from collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch
    > patching file net/bluetooth/hidp/core.c
    > Hunk #1 succeeded at 268 with fuzz 1 (offset 45 lines).
    > Hunk #2 succeeded at 353 with fuzz 2 (offset 45 lines).
    > Hunk #3 FAILED at 396.
    > Hunk #4 succeeded at 474 with fuzz 2 (offset 65 lines).
    > Hunk #5 FAILED at 739.
    > 2 out of 5 hunks FAILED -- saving rejects to file net/bluetooth/hidp/core.c.rej
    Failed to apply changes from collateral-evolutions/network/86-qdisc_tx_busylock/ieee802154.patch
    > patching file net/ieee802154/6lowpan.c
    > Hunk #1 FAILED at 530.
    > Hunk #2 FAILED at 545.
    > 2 out of 2 hunks FAILED -- saving rejects to file net/ieee802154/6lowpan.c.rej
    Modify Kconfig tree ...
    Rewrite Makefiles and Kconfig files ...
    Done!

    I hope on your help! Thank You!
    Ivan.

  • Hi Ivan,

    Do you see that the 'wlan0' interface is created when you issue the 'ifconfig -a' command?
    I have not seen the " Operation not possible due to RF-kill" error before. But I think you can try: "rfkill unblock all" command after toggling the WLAN_EN low (and see if it helps)

    Regards,
    Gigi Joseph.
  • Hi Joseph,

    "ifconfig -a" prints:
    wlan0 Link encap:Ethernet HWaddr 20:C3:8F:90:6A:DA
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

    WLAN_EN is low before "rfkill unblock all".
    When I do "rfkill unblock all" it toggles high and I see a "wlcore: ERROR".

    Regards, Ivan
  • Hi Ivan,

    Can you please share the complete boot logs? And also the result of the below (after boot up).

    > rfkill list
    > rfkill unblock wlan
    > ifconfig wlan0 up

    On my setup, I get the below:

    ***
    root@am335x-evm:~# rfkill list
    0: hci0: bluetooth
    Soft blocked: no
    Hard blocked: no
    1: phy0: wlan
    Soft blocked: no
    Hard blocked: no
    root@am335x-evm:~# rfkill block wlan
    root@am335x-evm:~# rfkill list
    0: hci0: bluetooth
    Soft blocked: no
    Hard blocked: no
    1: phy0: wlan
    Soft blocked: yes
    Hard blocked: no
    root@am335x-evm:~# ifconfig wlan0 up
    ifconfig: SIOCSIFFLAGS: Operation not possible due to RF-kill
    root@am335x-evm:~# rfkill unblock all
    root@am335x-evm:~# ifconfig wlan0 up
    [ 341.585048] wlcore: PHY firmware version: Rev 8.2.0.0.224
    [ 341.686886] wlcore: firmware booted (Rev 8.9.0.0.31)
    ***

    The "timeout waiting for the hardware" error generally indicates successive wlan turn ons without toggling the WLAN_EN.

    Regarding the bluetooth - uim error, its very unusual that you get the same error - can you confirm that the new "uim" binary was also pushed to the target?

    Any way, the full boot log will help check that as well...

    Regards,
    Gigi Joseph.
  • Hi, Joseph,

    Thank you for your support!

    There is mine:

    root@imx:~# rfkill list
    0: hci0: bluetooth
            Soft blocked: yes
            Hard blocked: no
    1: phy0: wlan
            Soft blocked: yes
            Hard blocked: no
    root@imx:~# rfkill unblock wlan
    root@imx:~# wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR timeout waiting for the hardware to complete initialization
    wlcore: ERROR firmware boot failed despite 3 retries

    BootLog related to wl18xx:

    Loading modules backported from Linux version R8.5-0-gcb51164
    Backport generated by backports.git R8.4-0-g0d46f43
    cfg80211: Calling CRDA to update world regulatory domain
    Starting Bootlog daemon: cfg80211: World regulatory domain updated:
    cfg80211:  DFS Master region: unset
    cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
    cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
    cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
    cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
    wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    wlcore: loaded
    wlcore: driver version: R8.5
    wlcore: compilation time: Thu Jul  9 14:24:45 2015
    /*!!!!At this place WLAN_EN switches from high to low!!!*/

    BootLog related to Bluetooth:

    UIM SYSFS Node Found at /sys/./devices/soc0/kim.25/install

    Starting uim-sysfs daemon.

    uim:@ main

    uim:install = /sys/./devices/soc0/kim.25/install

    uim:dev_name = /sys/./devices/soc0/kim.25/dev_name

    uim:baud_rate = /sys/./devices/soc0/kim.25/baud_rate

    uim:flow_cntrl = /sys/./devices/soc0/kim.25/flow_cntrl

    uim:install set previously...

    uim:@ st_uart_config

    uim: signal received, opening /dev/ttymxc4

    uim:@ set_baud_rate

    uim:set_baud_rate() done

    uim:Setting speed to 3000000

    uim:@ read_command_complete

    uim: Command complete started

    uim:@ read_hci_event

    uim: read_hci_event

    uim:Invalid response

    I found that i don't see any action on the WL_IRQ pin, while pinout in device tree is correct.

    Best Regards, Ivan

  • Hi Ivan,

    Can you verify your hardware schematics? You can refer to: processors.wiki.ti.com/.../WL18xx_Module_Schematic_Checklist and fill out the table.

    Regards,
    Gigi Joseph.
  • Hi Joseph!

     

    Wi-Fi works after the following manipulations:

    1. I deleted all firmware from /lib/firmware/ti-connectivity at my target

    2. ./sudo_build_wl18xx.sh update R8.5

        After that I got two files in /lib/firmware/ti-connectivity: wl1271-nvs.bin and wl18xx-fw-4.bin

        At this step I had my WiFi working, but  I got this messages while booting:

         wl18xx_driver wl18xx.0.auto: Direct firmware load failed with error -2

         wl18xx_driver wl18xx.0.auto: Falling back to user helper

         wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2

    3. I copied wl18xx-conf-default.bin from /usr/sbin/wlconf to the /lib/firmware/ti-connectivity and renamed it as wl18xx-conf.bin

    4. I have WL1837 module, so I downloaded WL1837MOD_INI_FCC_CE file from  .INI/wlconf Overview - Texas Instruments Wiki.

         I copied the contents of this file in /usr/sbin/wlconf/official-inis/WL1835MOD_INI.ini (additionally I had to remove blank lines), but You just can copy WL1837MOD_INI_FCC_CE anywhere at the target.

    5. After all I moved to the /usr/sbin/wlconf and do this:

         /usr/sbin/wlconf# ./wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin -I /path/to/ini/WL1835MOD_INI.ini

     

    Best Regards, Ivan

  • Hi Ivan,

    Good news regarding WLAN. So I believe what is pending is to turn on BT. From your latest post regarding this, I see that you are seeing the below logs:

    ***
    Starting uim-sysfs daemon.
    uim:@ main
    uim:install = /sys/./devices/soc0/kim.25/install
    uim:dev_name = /sys/./devices/soc0/kim.25/dev_name
    uim:baud_rate = /sys/./devices/soc0/kim.25/baud_rate
    uim:flow_cntrl = /sys/./devices/soc0/kim.25/flow_cntrl
    uim:install set previously...
    uim:@ st_uart_config
    uim: signal received, opening /dev/ttymxc4
    uim:@ set_baud_rate
    uim:set_baud_rate() done
    uim:Setting speed to 3000000
    uim:@ read_command_complete
    uim: Command complete started
    uim:@ read_hci_event
    uim: read_hci_event
    uim:Invalid response
    ***

    This means that the uim utility cannot get any response from the device. So you would want to check if the BT_EN line is going high, and also check proper power up sequence/UART functionality.

    Regards,
    Gigi Joseph.