I have a custom i.MX53 board where suspend-to-RAM is not working properly, i.e. the board won't wake up; and I believe it crashes even before going to suspend anyway.
Linux Standby mode works and the board wakes up again.
I use 2.6.35, from 11.05 ER Freescale BSP.
Stepping through the assembly code before the WFI instruction is executed within DS-5, I found that the problem is in cpu_do_suspend_workaround(), file arch/arm/mach-mx5/suspend.S.
More detail, the mx53_force_ddr_selfrefresh section goes wrong when the FDVFS bit in M4IF_CR0 register is set.
PM_SET_ADDR_REG MX53_M4IF_CR0_FDVFS_ADDR, r4
ldr r5, [r4]
orr r5, r5 , #0x800
str r5, [r4]
The processor locks up so I need to power-cycle it; and the debugger disconnects. I believe, sending low-power request to the fast channel of the EXTMC should not influence the JTAG clocks/connection. Who knows better?
Is there an idea by anyone what could go wrong? The manual's information about the FDVFS bit is rather sparse; I don't know what the M4IF does in background before it should acknowledge the low power state.