Project

General

Profile

AM62Px: DeepSleep/MCU Only LPM fails to resume

Added by Connor Larmer 2 days ago

Hello,

We have a Critical Link development board with an AM62Px SOM (4GB). Currently, we are attempting to validate suspend/resume functionality in DeepSleep and MCU only modes.

Our procedure is as follows, using the prebuilt SDK 11.00.09.04 image hosted on the CL Wiki.

1. Allow the device to boot fully into a clean state
2. run the following commands on the target (in Linux)

echo 100000 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us # Per TISDK docs section 3.3.5.5
echo N > /sys/module/printk/parameters/console_suspend # Verbose output
echo mem > /sys/power/state # Enter MCU only mode

The resulting output (from linux) is:

[   54.953764] PM: suspend entry (deep)
[   54.977942] Filesystems sync: 0.020 seconds
[   54.989338] Freezing user space processes
[   54.995818] Freezing user space processes completed (elapsed 0.002 seconds)
[   55.002851] OOM killer disabled.
[   55.006092] Freezing remaining freezable tasks
[   55.011998] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)

At this point, the SOM+Devboard appears to enter a low power state, with an observed ~100mA decrease in current draw at the 12v supply.
The MCU R5F output also indicates this:

[IPC RPMSG ECHO] Next MCU mode is 1
[IPC RPMSG ECHO] Suspend request to MCU-only mode received
[IPC RPMSG ECHO] Press a single key on this terminal to resume the kernel from MCU only mode

At this point both serial connections (linux and MCU R5F) appear to become unresponsive. However, performing this sequence with an XDS110 debug
probe attached to the devboard reveals that the MCU R5F does not freeze, and indeed does respond to user input, but anything that occurs after
the suspend sequence can only be viewed with the XDS110.

Through the XDS110, we see the following (after entering a key on the unresponsive ttyUSB0 terminal):

[IPC RPMSG ECHO] Key pressed. Notifying DM to wakeup main domain

The main system never actually resumes, and the MCU R5F hangs beyond this point. After some time, the SoC resets
itself (possibly due to TIFS watchdog starving?) and the system reboots.

Using the XDS110 to probe the MCU R5F's registers reveals that the function call SOC_triggerMcuLpmWakeup() succeeds in writing the expected 0x00000011
to the CSL_MCU_CTRL_MMR_CFG0_IPC_SET0 register, however nothing indicates that the DM R5F exits WFI and begins the resume sequence. Is there another way
we could force the DM to wake up?

Is this an issue that CriticalLink has encountered previously, and does this mean that DeepSleep/MCU only LPM modes are unsupported on the AM62Px SOMs?
Are we missing a step or modification needed to resume from deep sleep? So far, we have not succeeded in getting the system to resume at all.

Thanks,
Connor


Replies (5)

RE: AM62Px: DeepSleep/MCU Only LPM fails to resume - Added by Jonathan Cormier 1 day ago

Connor Larmer wrote:

Hello,

We have a Critical Link development board with an AM62Px SOM (4GB). Currently, we are attempting to validate suspend/resume functionality in DeepSleep and MCU only modes.

Hi Connor, were you able to test just Deepsleep mode?

When we were trying this, I don't think we tested MCU only mode but TI presumably supports it. I will see if I can reproduce your results.

RE: AM62Px: DeepSleep/MCU Only LPM fails to resume - Added by Jonathan Cormier about 22 hours ago

Hi Connor, please review the following redmine. https://support.criticallink.com/redmine/projects/mitysom_am62x/wiki/Important_Notes_for_DeepSleep_For_MitySOM-AM62

We have a ECR pending, based on the way the USB hub is connected to the SOM which breaks sleep mode. The work around is posted in that redmine.

There seems to be an issue with the sleep, if the USB_VBUS is pulled low or partly low.

I just tested SDK 11 with an unmodified devkit and a modified one and verified it only worked after removing those three resistors.

R6, R140, and R143

If its helpful I can get someone to highlight where the three resistors are.

RE: AM62Px: DeepSleep/MCU Only LPM fails to resume - Added by Jonathan Cormier about 5 hours ago

Jonathan Cormier wrote in RE: AM62Px: DeepSleep/MCU Only LPM fails to resume:

I just tested SDK 11 with an unmodified devkit and a modified one and verified it only worked after removing those three resistors.

R6, R140, and R143

If its helpful I can get someone to highlight where the three resistors are.

I added two pictures to the linked redmine to help locate these resistors. Note removal of these resistors should have no affect on the functionality of the usb ports.

RE: AM62Px: DeepSleep/MCU Only LPM fails to resume - Added by Connor Larmer about 3 hours ago

Hi Jonathan,

After removing the resistors, Deepsleep is functioning now. As for MCU only mode, we have been able to trigger a system resume through the example R5F IPC firmware, however the debug console still becomes unresponsive until the system wakes up. This isn't really an issue, but still interesting to see.

Thanks for your support,
Connor

RE: AM62Px: DeepSleep/MCU Only LPM fails to resume - Added by Jonathan Cormier about 1 hour ago

Connor Larmer wrote in RE: AM62Px: DeepSleep/MCU Only LPM fails to resume:

Hi Jonathan,

After removing the resistors, Deepsleep is functioning now. As for MCU only mode, we have been able to trigger a system resume through the example R5F IPC firmware, however the debug console still becomes unresponsive until the system wakes up. This isn't really an issue, but still interesting to see.

Do you mean the A53 console or the MCU console?

Thanks for your support,
Connor

Good to hear.

    (1-5/5)
    Go to top
    Add picture from clipboard (Maximum size: 1 GB)