Hi,
I am trying to get DM3725 DSP C64xp core into low power state with retention.
I expect the DPLL2 clock to cut & PM_PREPWSTST_IVA2 to report retention state.
void DSP_PowerDomain_Standby()
{
UINT32 sys_pdccmd_val;
UINT32 imask, tmp;
CLI(imask);
gPM_DSPContext.pm_PowerDomainStandBy++;
sys_pdccmd_val = HWREG(IVA_SYS_PDCCMD);
/* PDCCMD IDLE with L1 & L2 memory in low power retention mode */
HWREG(IVA_SYS_PDCCMD) = PDCCMD_STANDBY;
tmp = HWREG(IVA_SYS_PDCCMD);
/* Configure PRCM to put DSP megamodule to standby mode when IDLE instruction is called */
HWREG(SYSC_SYSCONFIG) = 0x1;
tmp += HWREG(SYSC_SYSCONFIG);
/* Enable only GIC while calling IDLE to wakeup when interrupts occurs or pending */
asm(" STW B4, *SP--");
asm(" MVC B4, CSR");
asm(" OR 1, B4, B4");
asm(" MVC B4, CSR");
/* Allow DSP to go to Idle state by calling IDLE instruction */
asm("|| IDLE");
asm(" LDW *++SP, B4");
HWREG(IVA_SYS_PDCCMD) = sys_pdccmd_val;
HWREG(SYSC_SYSCONFIG) &= ~0x1;
STI(imask);
}
I have configuring WUGEN also to wakeup required interrupts . but dont see it entering retention properly. PM_PREPWSTST_IVA2 register report active.
Can any body provide seqeunce for putting DSP to retention properly.