[i.MX8 Mini EVKB][88W8987] How to put WiFi/BT module into power save or sleep mode

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[i.MX8 Mini EVKB][88W8987] How to put WiFi/BT module into power save or sleep mode

1,688 Views
michal_oleszczyk
Contributor II

[i.MX8 Mini EVKB][88W8997] How to put WiFi/BT module into power save or sleep mode

Hello NXP!

We are using i.MX8 Mini EVKB with standard image. I need to make power saving mode test for WiFi/BT module. Unfortunately I was not able to find any manual explaining how to trigger power save or sleep mode or deep sleep mode in AW-CM358SM (88W8987) module.

The only doc I have found is UM11490 (Rev. 2 - 29 January 21) where there is an instruction how to put module into 'suspend state'. I have tried that by modifying /lib/firmware/nxp/wifi_mod_para.conf file as following:

SD8987 = {
        cfg80211_wext=0xf
        wfd_name=p2p
        max_vir_bss=1
        cal_data_cfg=none
        drv_mode=7
        ps_mode=1
        auto_ds=1
        fw_name=nxp/sdiouart8987_combo_v0.bin
}

but I have not realized any change in module power consumption. It consumes at least ~7mA no matter what. Based on this document chip 88W8987 should consume ~20-40uA in sleep mode.

My question is: how could I trigger sleep (or deep sleep) mode in 88W8987 to confirm power saving capabilities?

Best regards,
Michal Oleszczyk

Labels (1)
0 Kudos
6 Replies

1,659 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi @michal_oleszczyk 

Sorry! 

I mistook your wifi chip to be 8997.  I saw the first line of your orginal post:

'[i.MX8 Mini EVKB][88W8997] How to put WiFi/BT module into power save or sleep mode'

OK, for I.MX8MP/8MM/8MN + 8987, follow the steps below, please!

====================================

1. modprobe moal mod_para=nxp/wifi_mod_para.conf
2. wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant_5g.conf
3. wpa_supplicant -B -i mlan0 -c /etc/wpa_supplicant_5g.conf -D nl80211
4. udhcpc -i mlan0
5. iw phy#0 wowlan enable any
6. Enable sdio controllor wakeup function:
# echo enabled > /sys/bus/platform/devices/30b40000.mmc/power/wakeup
7. cd /usr/share/nxp_wireless
8. ./mlanutl mlan0 hssetpara 2 0xff 0xc8 3 400                       
9. Connect a test laptop to same AP with same local network
10. Check connectivity to DUT from test laptop, and vice versa
11. Put system into suspend status:
# echo mem > /sys/power/state
12. Ping to DUT from test laptop to wakeup IMX

==================================

Regards,

weidong

0 Kudos

1,654 Views
michal_oleszczyk
Contributor II

Hi @weidong_sun 

I have tested it. This instruction works but only with the latest image: LF_v5.15.32-2.0.0_images_IMX8MMEVK.zip.
In kernel 5.10.35 (image LF_v5.15.32-2.0.0_images_IMX8MMEVK.zip) file /sys/bus/platform/devices/30b40000.mmc/power/wakeup is not existing.

Anyway: confirming "WoWLAN" feature actually does not answer my original questions.
Please refer to my original questions:
1. Is system suspension (# echo mem > /sys/power/state) really puts 88W8987 into sleep mode (significantly lowering its current consumption) or not?
2. What is a minimal 88W8987 power consumption achievable, measured by you in reality with i.MX8M Mini EVKB?

What I have been able to measure (even when "WoWLAN" is working!) when Linux system is suspended then 88W8987 still consumes ~7mA which is far away from expected ~20-40uA stated in 88W8987 datasheet. So from my observations 88W8987 IS NOT in sleep mode at all.
So the question is: is moal driver and sdiouart8987_combo_v0.bin firmware actually supports real sleep mode?

Best regards,
Michał Oleszczyk

0 Kudos

1,647 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello @michal_oleszczyk 

 

Yes, right. Only latest bsp support it. 

5.10.x bsp supports PCIe wakeup, and SDIO was supported later.

 

Regards,

weidong

Tags (1)
0 Kudos

1,645 Views
michal_oleszczyk
Contributor II

Hi @weidong_sun 

What is a minimal 88W8987 power consumption achievable and measured by you in reality with i.MX8M Mini EVKB with latest BSP?

My measurements show that when Linux system is suspended then 88W8987 still consumes ~7mA which is far away from expected 20-40uA stated in 88W8987 datasheet. So from my observations 88W8987 IS NOT in sleep mode at all.

Please give me a simple answer: is the latest BSP supports 88W8987 sleep mode or not?

Best regards,
Michal Oleszczyk

0 Kudos

1,677 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello @michal_oleszczyk ,

 

8997 configuration is also in wifi_mod_para.conf.

PCIE8997 = {
cfg80211_wext=0xf
max_vir_bss=1
cal_data_cfg=none
ps_mode=1
auto_ds=1
host_mlme=1
fw_name=nxp/pcieuart8997_combo_v4.bin
}

ps_mode=1 & auto_ds=1 means that Power Saving & Deep Sleep mode are both ENABLED.

Below is test steps:

========================

1. modprobe moal mod_para=nxp/wifi_mod_para.conf
2. wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant_5g.conf
3. wpa_supplicant -B -i mlan0 -c /etc/wpa_supplicant_5g.conf -D nl80211
4. udhcpc -i mlan0
5. iw phy#0 wowlan enable any
6. cd /usr/share/nxp_wireless   (mlanutl tool directory)
7. ./mlanutl mlan0 hssetpara 2 0xff 0xc8 3 400 
8. Connect a test laptop to same AP with same local network
9. Check connectivity to DUT from test laptop, and vice versa
10. echo mem > /sys/power/state
11. Ping to DUT from test laptop to wakeup IMX

======================================

Regards,

weidong

 

 

0 Kudos

1,662 Views
michal_oleszczyk
Contributor II

Hello @weidong_sun,

thank you for your quick response. I have made a typo in a question topic. Of course I meant 88W8987 (not 8997). Nevertheless I suppose your test steps should be also applicable to 88W8987.

I have tested it with i.MX8M Mini EVKB flashed with 2 different images downloaded from here:
1. LF_v5.15.32-2.0.0_images_IMX8MMEVK.zip  (Linux version 5.15.32-lts-next+gfa6c3168595c)
2. LF_v5.10_2.0.0_images_IMX8MMEVK.zip (Linux version 5.10.35-lts-5.10.y+gef3f2cfc6010)

Given example does not work on both of them - IMX did not wake up on ping.
I am also attaching logs from both tests. You can check there correctness of 88W8987 configuration.

Could you please confirm on your EVK board sample if this feature actually works and 88W8987 goes to sleep mode? To be honest right now I do not care about "Wake On WLAN" feature so much - I need to confirm that 88W8987 is put to sleep mode (deep sleep mode) or any other power saving mode to confirm its minimal current consumption.

ALSO: could you please confirm how low it is possible to go with 88W8987 power consumption? Can you quote some real measurements (measured on real device, not datasheet values)?

Best regards,
Michał Oleszczyk

0 Kudos