Harald Krapfenbauer

Suspend-to-RAM debugging

Discussion created by Harald Krapfenbauer on Jul 5, 2012
Latest reply on Jul 6, 2012 by Vincent Chen

Hello,

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.

mx53_force_ddr_selfrefresh:
    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.

Thanks!

Outcomes