Forums › Reference, Evaluation, and Development Boards › OSD32MP1-BRK › Low power modes using Debian on OSD32MP1-BRK
Tagged: debian low power
Hi,
I’m having issue entering low power modes on Debian (OD32MP1_BRK_Debian10_RELEASE_V1_2).
This is the command sequence that I have tried:
sudo -i
echo enabled > /sys/devices/platform/soc/40010000.serial/tty/ttySTM0/power/wakeup
echo enabled > /sys/devices/platform/soc/40010000.serial/power/wakeup
echo mem > /sys/power/state
I get the following error message:
[ 189.662478] PM: suspend entry (s2idle)
[ 189.664809] PM: Syncing filesystems … done.
[ 189.685252] Freezing user space processes … (elapsed 0.001 seconds) done.
[ 189.693131] OOM killer disabled.
[ 189.695867] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
[ 189.703446] Suspending console(s) (use no_console_suspend to debug)
[ 189.712160] dwc2 49000000.usb-otg: suspending usb gadget configfs-gadget
[ 189.750402] stm32-dma 48000000.dma: Suspend is prevented by Chan 0
[ 189.750437] dpm_run_callback(): platform_pm_suspend+0x0/0x48 returns -16
[ 189.750448] PM: Device 48000000.dma failed to suspend: error -16
[ 189.750460] PM: Some devices failed to suspend, or early wake event detected
[ 189.760349] dwc2 49000000.usb-otg: resuming usb gadget configfs-gadget
[ 189.803989] OOM killer enabled.
[ 189.807128] Restarting tasks … done.
[ 189.811705] PM: suspend exit
-bash: echo: write error: Device or resource busy
Am I missing something or doing something wrong?
Thanks
If you refer to the DMA driver in stm32-dma.c, the suspend code checks the EN bit (Stream Enable) in register DMA_SxCR. See page 1217 of the RM0436 which states:
Bit 0 EN: stream enable / flag stream ready when read low
This bit is set and cleared by software.
0: stream disabled
1: stream enabled
This bit may be cleared by hardware:
– on a DMA end of transfer (stream ready to be configured)
– if a transfer error occurs on the AHB master buses
– when the FIFO threshold on memory AHB port is not compatible with the size of the burst
So something related to the DMA controller. Of interest is the AHB. By any chance, do you have a ST-LINK debugger connected to BRK board?
Carlos
Stjepan,
The low power modes were not fully implemented in OpenSTLinux 1.x. Can you try upgrading the image by generating a new image from Debian SDK here: https://github.com/octavosystems/osd32mp1-debian.
Best,
Neeraj
Hi,
I don’t have ST-LINK debugger.
I also have issue building Debian as described in issues on https://github.com/octavosystems/osd32mp1-debian/issues/2
What could be the cause to the build problem?
Thanks
Stjepan,
Please see reply to the issue on the repo. Please make sure you are running Docker and that you have all the dependencies isntalled.
Best,
Neeraj
The suspend to “s2idle” is interesting. I would expect “deep” for the low power modes. Transitioning to low power is a bit more complicated because it includes coordination between the MPU and MCU. Are you running an app (firmware) on the M4 that happens to be using DMA? Try stopping the firmware and see if you can duplicate the behavior.
I can confirm that i don’t have issue building the image using latest debian. I can see that only RED raw image is generated..can this be used on BRK or do I need to do some extra steps?
Thanks
Stjepan,
Debian SDK can build images for BRK and RED boards. In order to set it to build for BRK, please change this line: https://github.com/octavosystems/osd32mp1-build-tools/blob/master/Makefile#L26 to stm32mp157c-osd32mp1-brk and set BOOT_EMMC = 0 as BRK does not have an eMMC on board. We will update the README to make this clear.
Best,
Neeraj
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields