Am335x, 在uboot下,使用mw向DRAM中写入数据,写完用md查看可以看到所写的数据。但输入reset命令后,再到uboot中,md查看,DRAM之前被写的数据已经丢失。uboot下的reset是warm reset,为什么会导致DRAM的数据丢失?
是mw写的数据实际并没有写到DRAM中吗?
Nancy Wang:
看一下这个帖子。
e2e.ti.com/…/361870
xixiguo:
回复 Nancy Wang:
Hi Nancy,
这个帖子内容很有用。但里面又有个问题,就是他是用外部的reset button去做的warm reset,并且提到需要按下button保持一段时间,以确保DDR已经自我刷新,否则就会丢失数据。后面他也提到了也可以往寄存器PRM_RSTCTRL写warm reset,但是没具体说明这种情况需要怎么去保证DDR已经自我刷新。因为我的板子没有外部Reset button,只能通过uboot中输入reset,也就是他提到的往PRM_RSTCTRL写值的方式。
目前我测试下来就是DDR里面的数据会丢失,看了这个贴子,感觉可能是没有保证DDR已经自我刷新。但不知道怎么去保证DDR的自我刷新?Best Regards
xixiguo
xixiguo:
回复 Nancy Wang:
另外还想追问一下,只看到“Warm reset: it is a partial reset which doesn’t affect all the logic in a given entity”是说warm reset可以只针对部分的外设来做吧,但怎么配置具体的某个外设对warm reset(指控制寄存器PRM_RSTCTRL的方式,不是外部用Reset Button的方式)不敏感呢?
yongqing wang:
回复 xixiguo:
在uboot直接输入reset应该没办法像外部按键那样延时等待一段时间
xixiguo:
回复 yongqing wang:
所以是表示如果用写PRM_RSTCTRL寄存器的方式来做warm reset,就没办法保证DDR的数据不丢失了吗
yongqing wang:
回复 xixiguo:
这个我也不确定,你可以看看有啥办法reset 后保持一段时间