工具/软件:
您好、使用命令“echo mem >/sys/power/state “后、我无法正常从休眠中唤醒。 在硬件方面、我将 AM62L-EVM 电路板上的 LPDDR 替换为 DDR4。 在休眠期间、它会在以下代码中的 while 循环处停止、并且无法正常退出循环。 我想知道它是否与 DDR4 兼容、以及如何通过修改它来解决这个问题。
__wkupsramfunc void enter_lpm_self_refresh(struct emif_handle_s *h)
{
uint32_t lp_status = 0;
mmio_write_32(h->ctl_cfg_base_addr + DENALI_CTL_158__SFR_OFFS, (LP_MODE_LONG_SELF_REFRESH << 8));
/* Poll for Self Refresh Mode change */
while (lp_status != 0x4E) {
lp_status = ((mmio_read_32(h->ctl_cfg_base_addr + DENALI_CTL_167__SFR_OFFS) & 0x7F00) >> 8);
}
}
此函数位于 BL31 中 plat/ti/k3/board/am62l/lpm/目录下的 DDR.c 文件中。 通过测试、当前读取的 LP_STATUS 值为 0x49、这可以防止 while 循环退出。 如何解决此问题? 谢谢!
