Suspend/Resume not working on I.MX280?

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

Suspend/Resume not working on I.MX280?

1,923 Views
B_K_Ankur
Contributor IV

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

Labels (1)
0 Kudos
3 Replies

862 Views
JorgeRama_rezRi
NXP Employee
NXP Employee

Hi Ankur,

I'm checking the standby functionality in the iMX28 EVK. The board is resumed by pressing KEY1, KEY2 or KEY3 buttons connected all to LRADC1. If your SW was taken from the iMX28 BSP, then your file is configured to respond to an event at LRADC1 too. Is this the case? What do you have connected to LRADC1 in your system? If you need assistance to adjust your SW for your system to respond to a different event, please let me know and I'll check with the SW team if they can help you.

Best regards.

Jorge.

0 Kudos

862 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Jorge I have tried the KEY resuming method too and it is working. It seems that the problem the customer is facing is related to the internal regulator configuration.

Do you think it could be also a hw problem?.

Ankur, I wonder if it is possible to share your schematics and power prep modifications.

Best Regards,

Alejandro

0 Kudos

862 Views
B_K_Ankur
Contributor IV

Hello Jorge and Alejandro,

Thank you for your comments and suggestions. I agree that the wakeup thing works perfect on I.MX28EVK board. But I am facing issue with prototype having 5V power mode.

I am using u-boot to boot prototype with 5V mode. I have modified powerprep to generate library and using the same under u-boot. Find the attached patch file I uses on top of default provided.

Default Patch from Freescale:

  • 0001-MX28-imx-bootlets-adds-the-most-robust-support-for-VDD5V-only-configuration.patch
  • 0002-MX28-imx-bootlets-Fix-repeated-boot-issue-with-5V-only-configuration.patch
  • 0003-MX28-imx-bootlets-5V-only-configuration-bug-fixes-and-improvement.patch

Additional Patch:

  • 0004-MX28-imx-bootlets-add_support_for_u-boot_to_use_powerprep.patch

Using powerprep_start() function of powerprep into mxs_power_init function under spl_power_init.c of u-boot.

My only concern is, could anyone test the standby functionality on board with 5V power supply and check if that works ?

In addition, the standby thing works on prototype but not consistent. What can be the possibilities that fail to bring the micro back after certain 4-5 cycles of suspend/resume?

Following Power supply circuit is used in the prototype:

powersupply.jpg

Please feel free to share your concern.

Regards,

Ankur

0 Kudos