Review your favorite Linux distribution.
Go Back > Forums > Linux Forums > Linux - Hardware > Linux - Embedded & Single-board computer
User Name
Linux - Embedded & Single-board computer This forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.


  Search this Thread
Old 02-14-2014, 04:21 PM   #1
LQ Newbie
Registered: Feb 2014
Posts: 1

Rep: Reputation: Disabled
ARM1136 suspend CPU and DDR2 in Linux


What's the correct way to suspend an ARM1136 CPU (i.MX35) and its external DDR2 memory in Linux? I tried the following sequence:

1. reserve space in the CPU's internal memory, copy the core assembler function there and jump to it
2. disable interrupts (cpsid if) and I/D cache
3. set the SDRAM controller into precharge power down mode
4. execute a precharge all command and access memory with A10 high (e.g. 0x400) to effectively close all banks
5. suspend the CPU by executing a WFI instruction

Everything works as expected, I can verify code execution with the JTAG debugger. But at the point where memory is accessed with a dummy write, a data abort exception occurs and the CPU gets lost. If I leave this part out, the DDR2 doesn't seem to be put into low power mode, because the current consumption doesn't go down. I also tried to disable the MMU and work with physical addresses, but then the CPU gets lost immediately.

Now I'm totally stuck and out of ideas here. Could someone please give me a hint what I'm doing wrong or what I'm missing?

Thanks a lot!


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
CPU Governor defaults after resume or suspend G-Known Linux - Software 4 08-19-2013 11:00 PM
High CPU temp after resume from suspend.... STDOUBT Slackware 6 03-27-2013 06:51 PM
High CPU usage after suspend/resume michal017 Linux - Software 4 03-18-2011 04:06 AM
Use 512mb DDR2 as 64mb DDR2 kusanagiyang Linux - Newbie 9 11-11-2009 08:57 PM
What is the difference between DDR2 667 and DDR2 675? abefroman Linux - Hardware 2 11-02-2005 03:11 AM

All times are GMT -5. The time now is 05:42 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration