AnsweredAssumed Answered

Suspend/Resume not working on I.MX280?

Question asked by Ankur Patel on Aug 20, 2014
Latest reply on Aug 29, 2014 by Ankur Patel

Hello Friends,

 

We are using I.MX280 series of processor in our product based on 5V only mode. I have tried using the 325-sleep.S at i.MX283 resets during standby in 5V only mode but the evt fails to resume.

 

Below is the console output using 325-sleep.S:

 

imx28evk login: root

root@imx28evk:~# echo standby > /sys/power/state

[  169.297895] PM: Syncing filesystems ... done.

[  169.405838] Freezing user space processes ... (elapsed 0.02 seconds) done.

[  169.434612] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done.

[  169.484880] PM: suspend of devices complete after 14.998 msecs

[  169.496738] PM: late suspend of devices complete after 5.942 msecs

[  169.509180] PM: noirq suspend of devices complete after 6.034 msecs

[  169.516050] 107 do_standby cpu 454736842

[  169.516050] 108 do_standby osc 24000000

[  169.516050] 109 do_standby pll 480000000

[  169.516050] 110 do_standby hbus 151578947

///

/// EVT is hanged and is not resuming on any external event

///

 

Though, interesting point is the same code works for I.MX287 processor on EVK without any issue for number of cycles.

 

Additional thing I found is the suspend/resume works on EVT for atleast 4-5 cycles by doing some modification to Sleep.S. In that, the processor has to be switched to ref_xtal before doing DRAM into self refresh mode and on suspend after putting DRAM into normal mode CPU clock has to switch back to ref_cpu.

 

Please find the attached sleep.S with switching of ref. clock for CPU clock domain. (Line#168 - Switching to XTAL clock and Line#450 - Switching to REF_CPU clock on resume)

 

Console Output with Switching to XTAL clock on Suspend and Back to CPU clock on resume:

 

root@imx28evk:~# echo standby > /sys/power/state

[  101.707717] PM: Syncing filesystems ... done.

[  101.749925] Freezing user space processes ... (elapsed 0.01 seconds) done.

[  101.775009] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.

[  101.800996] wlcore: down

[  101.826305] PM: suspend of devices complete after 26.089 msecs

[  101.838184] PM: late suspend of devices complete after 5.801 msecs

[  101.850484] PM: noirq suspend of devices complete after 5.904 msecs

[  101.857131] 107 do_standby cpu 454736842

[  101.857131] 108 do_standby osc 24000000

[  101.857131] 109 do_standby pll 480000000

[  101.857131] 110 do_standby hbus 151578947

[  101.857131] 149 do_standby Resuming..

[  101.860527] PM: noirq resume of devices complete after 3.064 msecs

 

[  101.873245] PM: early resume of devices complete after 4.489 msecs

[  103.274914] wlcore: PHY firmware version: Rev 8.2.0.0.195

[  103.393093] wlcore: firmware booted (Rev 8.8.0.0.13)

[  103.450657] PM: resume of devices complete after 1571.143 msecs

[  103.463636] Restarting tasks ... done.

root@imx28evk:~#

 

Is there any additional configuration needs to be done to achieve suspend/resume on I.MX280 processor that works consistently?

 

Please feel free to share your thoughts. This issue is show stopper now!

 

Regards,

Ankur.

Original Attachment has been moved to: sleep.S.zip

Outcomes