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 suspend with DDR3 at 400MHz

Hi,

I'm working on custom board based on AM335x

I'm having trouble to get suspend working on my board with DDR3 at 400MHz. At 303MHz DDR3 clock it works perfectly: it enters suspend mode with the command

echo mem > /sys/power/state

And it resume correctly with console character or GPIO0

Now I update DDR3 timings on U-boot to get 400MHz frequency. It works perfectly, it goes correctly in suspend mode as before, but when it wakes up, the ram get corrupted.

If I try standby mode:

echo standby > /sys/power/state

The system enters and exits correctly from standby

I make changes only in u-boot DDR3 timings as in http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Tuning_the_DDR3_Timings_on_BeagleBoneBlack

Are there any modifications on the kernel to support DDR3 at 400MHz?

My kernel is a customized version from AM335xPSP_04.06.00.10-rc3

Bye

Matteo

  • Matteo, i would double check all SDRAM_ TIMINGx registers, ensure that you have the correct refresh rate in SDRAM_REF_CTRL, and the correct value for SDRAM_READ_LATENCY.  If you previously had values for these that were optimized for 303MHz, they will need to change for 400MHz.  I think the wiki explains the procedure.  You may also need to rerun the software leveling code at 400MHz.

    Regards,

    James

  • HI,

    I'm already made all the checks and the software leveling, but I double check that for confirmation.

    The memory chip is the same used in BeagleboneBlack, so the timings are all the same. DDR3 routing guideline are also ok.

    The strange thing is that the DDR3 goes in selfrefresh correctly, but it resumes only from "standby", not from "mem".

    Are there any important modification in the kernel from AM335xPSP_04.06.00.10-rc3 ?