看门狗在Zynq MPSoC上的使用技巧

1
简介
在zynq mpsoc的器件里,ps (processing system )集成了三个看门狗,分别是csu swdt,lpd swdt和fpd swdt。csu swdt用于保护csu与pmu及其相关连接。
lpd swdt主要用于保护rpu系统及其相关连接。
fpd swdt主要用于保护apu系统及其相关连接。
如果你的程序跑在apu上,并且你需要使用两个看门狗,那么除了fpd swdt外,你是可以使用lpd swdt。
2
对应关系
lpd swdt和fpd swdt是提供给用户的应用程序使用的,csu swdt主要是由pmufw和csu bootrom使用的。所以通常情况下,用户可以在自己的应用程序里使用lpd swdt和fpd swdt。当客户需要使用时,需要在vivado里需要使能相关的swdt。但vivado里的命名是swdt0和swdt1:
而在ug1087的寄存器手册里,swdt有三个代码段csu_wdt, swdt, wdt:
所以有很多用户并不清楚这里面的对应关系。工具命名与手册命名的对应关系可以在ug1085里找到:
3
在petalinux里的使用
在linux里,amd xilinx提供了swdt的驱动,具体的介绍和测试方法可以参考下面wiki页面:
https://xilinx-wiki.atlassian.net/wiki/spaces/a/pages/18842055/cadence+wdt+driver
只需要按照该页面的方法,去使能驱动,修改dts和使能enable_em, 就能在linux里使用lpd swdt或fpd swdt,这里不再详述。
当lpd或fpd swdt超时后,swdt并不会直接复位整个系统,而是把超时错误传达给pmu,由pmu决定下一步的错误处理方式(关于pmu的错误处理机制,可以参考ug1085的第6章)。而enable_em就是使能pmufw里的错误处理模块,如果不使能该模块,当swdt超时后,什么操作也不会发生。
pmufw提供了一套完整的swdt复位方案。当用户使能enable_recovery后,如果fsbl跑在apu上,pmufw会初始化fpd swdt,默认设定时间为60秒。这样在fsbl执行完后,用户自动获取swdt的监控,通常60秒足够用户启动后续的u-boot或linux。如果60秒不够,用户可以在u-boot阶段喂一次狗(重启swdt),或者在pmufw工程里添加一个定义recovery_timeout,把需要的时间定义成recovery_timeout。(注意,这里需要在vivado工程里使能ttc。)
如果cpu在复位过程中出现挂死现象,建议用户把enable_escalation也添加上。如果pmufw还有空间的话,建议把check_healthy_boot也使能上。下表来自ug1137,是系统重启方案的推荐设置以及空间占用情况的总结。
关于enable_recovery,enable_escalation和check_healthy_boot的更多介绍,请用户参考 ug1137。
4
csu wdt的使用
csu wdt的使用比较简单,只需要在pmufw里使能enable_wdt,就能让csu wdt监测pmu的运行。fsbl启动后,csu wdt会设置为90毫秒超时,而pmufw会有一个task每50毫秒喂一次狗。
请注意,如果用户在pmufw里添加了自己的代码,并且使能了csu wdt,那需要注意csu wdt的超时时间。因为如果你在你的代码里添加了延迟(比如sleep),如果延时超过90毫秒,会导致csu wdt触发从而产生异常。


摩托罗拉双核侧滑手机DROID4首次登台
OPPO A55上架:搭载天玑700处理器
高通清库存发起价格战,最高降价两成,不只是应对需求不明朗?
莱迪思推出适用于移动设备语音侦测和识别解决方案
英威腾发布业绩快报,公司2018年1-6月实现营业收入10.35亿元
看门狗在Zynq MPSoC上的使用技巧
骁龙835的小米6太遥远,或许这几款手机才是最好的选择
全球芯片短缺的核心原因是什么
消息称苹果正在研发M1芯片后续产品
尽管人工智能的优点非常明显,但企业也不能鲁莽的做出决策
Equiinet推出Teams Connect助微软用户实现语音落地
互联网下半场,哪些业务更有价值和潜力呢?
我国传感器产业发展史以及全国分布情况介绍
光刻机与半导体之间发展的两大关键是什么?
如何在设计阶段考虑降低XILINX的功耗
法拉利首席执行官:将于2025年后发布首款纯电动车型
智慧公安扫二维码报警定位系统可以解决哪些问题
美国IIHS发布了行人自动紧急制动系统的测试协议首版
HDDY直流电源综合特性测试仪稳压精度测量方法
三大验证关键挑战 AI多方位助力芯片验证