NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
OMAP Wireless Connectivity Suspend Resume
Contents
Suspend Resume[edit]
Suspend Resume in shutdown mode[edit]
On Suspend state, the WL18xx chip will be held in shutdown mode, were the host disable the WLAN portion by keeping the WLAN_Enable signal OFF, in that mode the WL18xx chip consumes minimal current consumption.
How to operate Suspend Resume[edit]
to enable the omap to enter sleep, low voltage, & low power perform the following:
attach the file system "debugfs" which is of type debugfs) at the directory "tmp"
mount -t debugfs debugfs /tmp/
Enabling system for hitting OFF:
By default, retention is the deepest sleep state attempted. To enable power domain transitions to off mode
echo 1 > /tmp/pm_debug/enable_off_mode
To enter suspend mode:
echo mem > /sys/power/state
To Resume from suspend:
Serial console activity or other configured wakeup sources (keypad, touchscreen) will trigger resume
Suspend Resume Example[edit]
Following is the example:
- AM335x EVM with WL18x Assuming to work in station mode
- Connect the station, using WPA supplicant configuration file to commercial AP
- After connection enter the station to suspend mode
- After some time resume from suspend.
to connect to AP (no security), edit the /etc/wpa_supplicant.conf file to the following content
ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ key_mgmt=NONE ssid="TP_Eyal" #optional }
and then run the WPA supplicant
wpa_supplicant -d -Dnl80211 -c /etc/wpa_supplicant.conf -iwlan0 -B
Following that command the Station mode will connect to the AP with the SSID "TP_Eyal"
next step is to enter Suspend mode, by the typing the following command on the terminal console:
echo mem > /sys/power/state
the expecte results, is the following log, and the EVM screen turns 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
Comment: the last 4 lines will be shown only after resume (since suspend happend 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.4.999.A2.129 [ 355.069488] wl12xx: firmware booted (Rev 8.2.0.0.100) [ 355.130493] wl12xx: Association completed. [ 355.153411] PM: resume of devices complete after 861.928 msecs [ 355.216430] Restarting tasks ... done.
Comment: after Resume from Suspend,
After a suspend or after some idle time, use the powerdomain transition stats to check that transitions to off-mode are happening
# cat /tmp/pm_debug/count
the results are:
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
External Link[edit]
for more information use OMAP Power Management
HOME