This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x DeepSleep 2 needs M3 to wake up?

Hi,

I'm trying to implement a DeepSleep 2 support on my system without the usage of the M3 (not on Linux). The Technical Reference Manual is not clear on this subject and I can't know if the M3 is mandatory to wake up the A8 via a GPIO0 pin.

What I'm doing:

  • enabling my GPIO0 pin (GPIO0_22) as wakeup source
  • disabling all other wakeup sources
  • lauching my suspend routine from SRAM
  • setting the DDR in self refresh mode
  • bypass the MPU, PER, DISP, DDR and CORE clock
  • setting the Master Oscillator to off
  • calling the WFI instruction

The M3 is not used.

What happens when the system goes in suspend:

  • If I connect my JTAG software (DS-5) to the CPU and break. This seems to generate an interrupt and the A8 Program Counter is located just after the WFI instruction. This tends to show that the A8 was Waiting For an Interrupt correctly.
  • When the system is in suspend, if I push the button wired on the wakeup GPIO, nothing happens.
  • When the system is in suspend, if I connect my JTAG software to the A8 without breaking, then if I push the wake up button, the platform wakes up correctly.

Is the M3 mandatory in that case?

Thank you for your help.

Olivier.

  • Hi Oliver,

    Is there a reason you are implementing DS2 without using the M3?  Officially, we are not supporting DeepSleep or Standby modes without M3 firmware.  In fact, we have also recently dropped support for DS2; the latest software releases only have support for DS0/DS1/Standby/RTC-only low power modes, which all utilize the M3 for clock and power domain control.

    Is your master oscillator actually turning OFF when the A8 is in WFI?  Can you verify this on the oscillator output pin with an oscilloscope?

    Regards,

    Hieu