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.

DM3725 - C64x+ Retention state

Other Parts Discussed in Thread: DM3725, SYSCONFIG

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.