打印
[i.MX]

imx6的开门狗WDOG1问题

[复制链接]
1980|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leochenllx|  楼主 | 2017-9-29 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想使用CPU内部自带的WDOG1开门狗,折腾了一下午,虽然调试通了,但有些疑问请大牛帮忙解答。

dts中配置的复位狗为WDOG2,而WDOG2是TZ专用的,不能用作系统复位。不明白为什么默认用WDOG2???
此处需要修改为WDOG1
&gpc {
        /* use ldo-bypass, u-boot will check it and configure */
        fsl,ldo-bypass = <1>;
        fsl,wdog-reset = <2>;
};

通过阅读内核看门狗源码,内核在注册watchdog设备时,只在/dev/watchdog下面注册一个设备。
而dts文件中配置两个wdog设备时,每次都注册WDOG2,而WDOG1却注册不上。源码中只注册id为0的wdog,不知道内核怎么决定这个id的,导致每次都注册WDOG2.
        if (watchdog->id == 0) {
                old_wdd = watchdog;
                watchdog_miscdev.parent = watchdog->parent;
                err = misc_register(&watchdog_miscdev);
                if (err != 0) {
                        pr_err("%s: cannot register miscdev on minor=%d (err=%d).\n",
                                watchdog->info->identity, WATCHDOG_MINOR, err);
                        if (err == -EBUSY)
                                pr_err("%s: a legacy watchdog module is probably present.\n",
                                        watchdog->info->identity);
                        old_wdd = NULL;
                        return err;
                }
        }
最后不得已,在内核的dtb中删掉了WDOG2,解决这个问题。

相关帖子

沙发
leochenllx|  楼主 | 2017-9-29 17:33 | 只看该作者
好吧,对dts文件理解有误,原因找到了。

使用特权

评论回复
板凳
秋水一梦| | 2017-10-23 14:30 | 只看该作者
leochenllx 发表于 2017-9-29 17:33
好吧,对dts文件理解有误,原因找到了。

怎么解决的?

使用特权

评论回复
地板
秋水一梦| | 2017-12-7 18:29 | 只看该作者
请教,目前DTS确认使用WDOG1,但是reboot的时候,还是会失败。u-boot里面测试WDOG1是可以的。硬件WDOG_B没有使用.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝