SWRU576 January   2021 WL1801MOD , WL1805MOD , WL1807MOD , WL1831MOD , WL1835MOD , WL1837MOD

 

  1.   Trademarks
  2. Introduction
    1. 1.1 Acronyms Used in This Document
  3. Peer to Peer (P2P) Mode
    1. 2.1 P2P Device
      1. 2.1.1 Searching Phase
      2. 2.1.2 Negotiation
      3. 2.1.3 Group Formation
    2. 2.2 PSP Client
    3. 2.3 P2P GO
    4. 2.4 P2P Commands
      1. 2.4.1 P2P Commands Detailed Information
        1. 2.4.1.1 p2p_find
        2. 2.4.1.2 p2p_connect
        3. 2.4.1.3 p2p_listen
        4. 2.4.1.4 p2p_group_add
        5. 2.4.1.5 p2p_group_remove
        6. 2.4.1.6 p2p_peer
        7. 2.4.1.7 p2p_invite
      2. 2.4.2 P2P Event Details
    5. 2.5 P2P Use Cases
      1. 2.5.1 P2P Connection in PBC (Push Button Control)
      2. 2.5.2 Create Autonomous 1:2 P2P Group (Push button Control)
        1. 2.5.2.1 Assigning IP Address in P2P Mode Using DHCP Method
        2. 2.5.2.2 Create 1:2 P2P Group - Connect With PIN Code
        3. 2.5.2.3 P2P Invitation Procedure - Create Autonomous 1:2 P2P Group, (Push button Control)
  4. Access Point (AP) and Peer-to-Peer (P2P) Multirole
    1. 3.1 Errata/Limitations
  5. Multi BSSID (mBSSID)
    1. 4.1 Setup and Configuration
    2. 4.2 User Guide and Examples
  6. Access Point (AP) Enhanced Low Power (ELP) Mode
    1. 5.1 Setup and Configuration
    2. 5.2 User Guide and Examples
    3. 5.3 Errata/Limitations
  7. WiLink8 Wake on WLAN (WoWLAN) Feature
    1. 6.1 Mode of Operation
    2. 6.2 Adding "Suspend/Resume" WoW Mode to AM335x EVM
      1. 6.2.1 Patch Description
    3. 6.3 WoWLAN (Wake on WLAN) Mode Enable Procedure
      1. 6.3.1 Commands and Expected Output
      2. 6.3.2 Rx Filter Configuration
        1. 6.3.2.1 Rx Filter Configuration Examples
    4. 6.4 WoWLAN - Magic Packet
    5. 6.5 Block Acknowledgement (BA) Filter Setting
    6. 6.6 Hardware Modification Engineering Change Order (ECO) Request for AM335x EVM
  8. WiLink8 Suspend Resume Mode
    1. 7.1 Suspend Resume Example With AM437x SDK
  9. Access Point (AP) Dynamic Frequency Selection (DFS) Master Support
    1. 8.1 Setup and Configuration
    2. 8.2 User Guide & Examples
    3. 8.3 Errata/Limitations
  10. Station Mode - Alternative Method, With iw Commands, Explained
    1. 9.1 Step 1- Check if the wlan0 Interface is Already Running
    2. 9.2 Step 2- Bringup wlan0 Interface if Not Running
    3. 9.3 Step 3 - Connect Device to Available Acces Point
  11. 10References

Suspend Resume Example With AM437x SDK

The following section details the suspend/resume example with AM437x SDK. The general procedure is detailed below:
  1. Load wlcore module.
  2. Start station mode.
  3. Connect to AP.
  4. Enter suspend mode.
  5. After some time, resume from suspend.

First, load the wlcore module, start the station and connect to an AP with the following commands:

cd /usr/share/wl18xx
./load_wlcore.sh
./sta_start.sh
./sta_connect-ex.sh OpenSSID

To verify if the EVM is connected use the following command, which will output the AP settings and RSSI:

iw wlan0 link

The "Suspend" mode can be entered by evoking:

echo mem > /sys/power/state

The expected results are as shown below and the EVM screen turning off:

[  344.900146] PM: Syncing filesystems ... done.
[  347.304138] Freezing user space processes ... (elapsed 0.01 seconds) done.
[  347.324859] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[  347.344879] Suspending console(s) (use no_console_suspend to debug)
[  347.359039] wl12xx: down
[  347.492248] PM: suspend of devices complete after 139.892 msecs
[  347.494049] PM: late suspend of devices complete after 1.708 msecs
[  354.081787] GFX domain entered low power state
[  354.081848] Successfully transitioned all domains to low power state
[ 1599.585723] PM: Syncing filesystems ... done.
[ 1602.515808] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 1602.539642] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[ 1602.559600] Suspending console(s) (use no_console_suspend to debug)
[ 1602.567535] wl12xx: down
[ 1602.706909] PM: suspend of devices complete after 139.770 msecs
[ 1602.708557] PM: late suspend of devices complete after 1.556 msecs
[ 1634.825073] GFX domain entered low power state
Note: The last 4 lines will be shown only after resume (since suspend happened before the print task was completed).

After hitting the terminal console - in order to resume from suspend mode, the EVM screen will be active again, following the logs below:

[  354.290771] PM: early resume of devices complete after 208.465 msecs
[  354.606018] net eth0: CPSW phy found : id is : 0x4dd074
[  354.610931] wl12xx: state: 0
[  355.069427] wl12xx: PHY firmware version: Rev 8.2.0.0.245
[  355.069488] wl12xx: firmware booted (Rev 8.9.0.0.86)
[  355.130493] wl12xx: Association completed.
[  355.153411] PM: resume of devices complete after 861.928 msecs
[  355.216430] Restarting tasks ... done.

After a suspend or after some idle time, use the power domain transition stats to check that transitions to off-mode are actually happening:

root@am335x-evm:~# cat /tmp/pm_debug/count
[  611.886413] pwrdm state mismatch(cefuse_pwrdm) 3 != 0
cefuse_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0
mpu_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0
per_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:7,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0
rtc_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:0,RET-LOGIC-OFF:0
gfx_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
l4_cefuse_clkdm->cefuse_pwrdm (0)
gfx_l4ls_gfx_clkdm->gfx_pwrdm (0)
gfx_l3_clkdm->gfx_pwrdm (1)
l4_rtc_clkdm->rtc_pwrdm (1)
mpu_clkdm->mpu_pwrdm (1)
l4_wkup_aon_clkdm->wkup_pwrdm (3)
l3_aon_clkdm->wkup_pwrdm (1)
l4_wkup_clkdm->wkup_pwrdm (5)
clk_24mhz_clkdm->per_pwrdm (1)
lcdc_clkdm->per_pwrdm (1)
cpsw_125mhz_clkdm->per_pwrdm (2)
pruss_ocp_clkdm->per_pwrdm (0)
ocpwp_l3_clkdm->per_pwrdm (0)
l4hs_clkdm->per_pwrdm (1)
l3_clkdm->per_pwrdm (10)
l4fw_clkdm->per_pwrdm (2)
l3s_clkdm->per_pwrdm (4)
l4ls_clkdm->per_pwrdm (19)

The counter that will advance each suspend resume cycle is: per_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:7,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0.