RK平台Watchdog硬件看门狗验证

一.环境

以下是基于3588例子,3328其他的RK平台同理,参考TRM即可,将寄存器基地址改一下就可以进行排查验证。

二.配置

1.dts

&wdt{

status = "okay";

};

2.config

CONFIG_WATCHDOG=y

CONFIG_WATCHDOG_CORE=y

CONFIG_DW_WATCHDOG=y

3.应用层APP

/system/bin/watchdogd

三.验证

1.基本寄存器

3588在配置了WTD之后,如果没有人去打开这个设备,看门狗设备内核是不会使能的

0xfeaf0000 第0个bit 是开关。可以看到下面是关闭状态。

0xfeaf0008是计数器,count到0会产生reset中断(驱动会配置)

./io -4 0xfeaf0008

feaf0008: 0000ffff

./io -4 0xfeaf0000

feaf0000: 00000008

2.内核喂狗

打开WTD(open /dev/watchdog),如果喂狗'V',那么内核会开启自动喂狗,看如下结果,WTD counts 已经在计数,并且毫无疑问enable=1,当feaf0008到0就会reset系统,但是这个计数永远不会到0,猜猜为啥?因为开了 V...IP(🐶)

echo 'V' > /dev/watchdog

io -4 0xfeaf0000

feaf0000: 00000009

io -4 0xfeaf0008

feaf0008: 2773d61c

3.应用层喂狗

打开WTD 后,但凡喂的不是V,那么就需要自己去喂狗,这个时候内核是不会自动喂狗的,count会计数到0,那么会reset。

echo '' > /dev/watchdog

./io -4 0xfeaf0008

feaf0008: 3d099539

./io -4 0xfeaf0000

feaf0000: 00000009

./io -4 0xfeaf0008

feaf0008: 17436391

./io -4 0xfeaf0008

feaf0008: 0c5830ce

./io -4 0xfeaf0008

feaf0008: 00000000

......err

IO命令问题可以参考

IO命令问题https://blog.csdn.net/weixin_47822507/article/details/155752417?fromshare=blogdetail&sharetype=blogdetail&sharerId=155752417&sharerefer=PC&sharesource=weixin_47822507&sharefrom=from_link

一键三连,欢迎提问

相关推荐
流浪00112 分钟前
Linux系统22:——文件(六):目标文件与ELF深度解析:从编译到加载的全景揭秘
linux·运维·服务器
kidwjb30 分钟前
Linux内核-内核信号处理函数
linux·内核·信号处理
其实防守也摸鱼1 小时前
镜像校验完成iso完整操作流程(Windows 环境,适配 Ubuntu 22.04 / 24.04)
linux·服务器·windows·学习·ubuntu·教程
努力努力再努力wz1 小时前
【分布式系统与 RPC 框架系列】从单机瓶颈到远程调用:一文理解分布式架构与 RPC 原理
linux·网络·c++·分布式·网络协议·rpc·架构
艾莉丝努力练剑1 小时前
【MYSQL】MYSQL学习的一大重点:基本查询(下)
android·数据库·学习·mysql·面试·八股文
三少爷的鞋1 小时前
Android 中coroutineScope 和 supervisorScope 到底怎么选?先搞清楚 Exception 和 Result
android
寒水馨3 小时前
Linux下载、安装 Codex CLI(附安装包codex-x86_64-unknown-linux-musl.tar.gz)
linux·openai·终端·ai编程·codex·智能体·codex cli
其实防守也摸鱼3 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·运维·网络·人工智能·学习·安全·macos
YM52e8 小时前
鸿蒙Flutter Padding内边距:EdgeInsets详解
android·学习·flutter·华为·harmonyos·鸿蒙
冰封之寂12 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算