SWRU561A September   2020  – October 2020 WL1801MOD , WL1805MOD , WL1807MOD , WL1831 , WL1831MOD , WL1835MOD , WL1837MOD

 

  1.   Trademarks
  2. 1Driver Supported Features
  3. 2WL18xx Linux Driver Architecture Overview
  4. 3Platform Integration
    1. 3.1 Configuration required for Board Device Tree (DTS/DTB)
    2. 3.2 Configuring the Kernel for TI WLAN Drivers
    3. 3.3 Configuration required for Board Device Tree (DTS/DTB)
    4. 3.4 Building R8.8 Release Using Build Utilities
    5. 3.5 Building WiLink8 Driver Release Binaries Individually
  5. 4Booting and WLAN Bring-Up
    1. 4.1 Configuring the WiLink8 Target
  6. 5Testing Basic WLAN Functionality
    1. 5.1 STA Mode
      1. 5.1.1 Station Mode Procedure for Unsecured AP
      2. 5.1.2 Station Mode Procedure for Secured AP
      3. 5.1.3 Verifying Connectivity
    2. 5.2 AP Mode
      1. 5.2.1 AP Mode Procedure
      2. 5.2.2 Starting the AP
      3. 5.2.3 Verifying Connectivity
    3. 5.3 Multirole (AP +STA mode)
      1. 5.3.1 General Procedure for Multirole Connection
    4. 5.4 IEEE802.11s Mesh Mode
  7. 6References
  8.   A FAQ and Debug Hints

FAQ and Debug Hints

The following section is intended to provide generic issues faced while integrating and running the WiLink8 drivers on Linux platform. For more comprehensive FAQ list and for additional help, you can reach E2E forum.

Q: How do I know if the Wi-Fi is functional?

A. Bring up the WLAN interface and perform a scan using the “iw” utility:

ifconfig wlan0 up

The following message should be displayed below:

wlcore: PHY firmware version: Rev 8.2.0.0.244
wlcore: firmware booted (Rev 8.9.0.0.84)

Next, perform a scan and look for scan results:

iw wlan0 scan | grep <SSID>
        SSID: IOP_035
        SSID: Demo_24
        SSID: externalhotspot84

If any errors were encountered, follow the steps below:

  1. Check your device configuration.

    Did you remember to use the configure-device.sh script upon initialization?

    Note: This script is located at /usr/share/wl18xx/configure-device.sh.

    Make sure you are using the proper .ini file to match your needs.

    For more information, see WL18xx .ini File.

  2. Try to reproduce on 1-2 other platforms.
  3. Try to reproduce the issue with the latest firmware and software driver version possible (currently R8.8).
  4. Try to reproduce with the Enhanced Low Power (ELP) mode disabled.

    To disable ELP:

    iw wlan0 set power_save off
    echo 0 > /sys/kernel/debug/ieee80211/phy0/wlcore/sleep_auth
  5. Try to reproduce with a different peer vendor.

    For STATION/CLIENT mode - try with a different Access Point vendor.

    For Access Point (AP) mode - try with a different Station vendor.

    For Peer to Peer (P2P) mode - try with a different P2P vendor.

    If still not resolved, find your specific case below.

Q: I am able to bring the interface up using ifconfig but when performing a scan I see a driver crash log.

A. Ensure that you are receiving interrupts from the wl18xx device. This can be done using the following command:

cat /proc/interrupts | grep wl18xx

Following output, or something similar should be seen:

54:         15  44e07000.gpio  27 Edge      wl18xx

If the WL_IRQ pin is configured correctly, you should see a number higher than "0" as shown above. If the value is zero, re-visit your board device tree file and make sure the WL_IRQ GPIO is muxed correctly and no errors are seen when loading the “wlcore_sdio” module.

Q: I’ve checked that I have the right pins are connected and MUXed, but still the WLAN interface does not work.

A: Make sure the power-on and reset sequences are followed based on the design guidelines in the data sheet. For more information, see the Power-Up and Shut-Down States section in the WL18x7MOD WiLink™ 8 Dual-Band Industrial Module – Wi-Fi®, Bluetooth®, and Bluetooth® Low Energy (LE) Data Sheet. In other words, VBAT/VIO voltages and the slow clock (32 kHz) must be stable prior to WLAN_EN being engaged. Once WL_IRQ is reading as logic ‘0’, the module is awake. When the IRQ is triggered for the first time, the host can start communication over the SDIO interface.

Q: I’ve confirmed the power-up and reset sequences are being followed, but the WLAN interface is still not working.

A: Make sure a WLAN card is detected during device enumeration. If the platform integration was done according to the hardware spec guide/platform integration guide, an SDIO device should be detected during kernel boot. Please review your kernel boot log and look for the following message:

[   18.538564] mmc1: new high speed SDIO card at address 0001

Q: I’ve confirmed that the WLAN device is being detected on the SDIO interface, but WLAN is still not working.

A: Make sure that the WLAN drivers are loaded, using the WL8 software build process in the WL18xx processor wiki, or built inside the kernel (in case using a kernel version >= 4.1)

You should see the following modules loaded when using the “lsmod”: command:

Module                  Size Used by
…
wl18xx                 83954  0 
wlcore                186624  1 wl18xx
mac80211              479316  2 wl18xx,wlcore
cfg80211              397999  3 mac80211,wl18xx,wlcore
wlcore_sdio             7829  0 

Q: Yes, I do have the modules built but I still do not see the interface up when using ifconfig, instead I am seeing the following error message?

SIOCGIFFLAGS: No such device

A: This error indicates that the modules are not loaded properly. Try to insert the modules manually and look for errors during the modules loading.

Q: How do I check which versions of WiLink drivers and firmware I have? A: To find out the version of WiLink™ firmware (usually named wl18xx-fw-x.bin), type the following command into the Sitara serial terminal once booted and logged in as root:

grep Rev /lib/firmware/ti-connectivity/wl18xx-fw-4.bin