赛灵思
直播中

泰瑞堡

3年用户 8经验值
私信 关注
[问答]

求助,zynq 7015 中linux下reboot会卡住

板子是我们自己做的,在uboot中reset是没有问题的, 但是在linux系统下reboot就不行。

我查过源代码,不论是uboot还是linux下,最终都是往0xf8000200 的PSS_RST_CTRL中写1来完成soft reset的。 我还尝试过直接用devmem工具直接写这个寄存器,结果是linux下直接卡住,uboot下倒是可以通过mm命令直接重启成功。

我还使用xsct工具进行rst命令操作,同样的结果,如果系统当前在uboot中,是可以重启的,等linux启动完成后,就不行了。
使用xsct的rrd命令可以看到,linux下reboot后,cortex a9的两个core的 pc寄存器分别是0xffffff28,  0xffffff38, 并没有自动归零。 实在是没思路了,求论坛大佬帮助。

回帖(1)

泰瑞堡

2021-5-13 17:31:37
解决了。自问自答吧,linux下是会自动把flash分区挂起来的,我们用的flash是32m的。后来发现只要关机前最后一次访问是flash的后16m,就会让flash在重置时处于一种不正确的状态。这种状态下f***l和系统都能去访问,唯独zynq的bootrom不能正常访问它,结果就是重启时卡死在bootrom里面了。 了解到问题后也在网上搜到了对应的解决方法,就是flash的驱动里在shutdown之前加入重置flash位置的命令即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分