系统自动重启问题

我在k1开发板上运行我们自己的RTOS,发现板卡不定期会进行复位,可能与pmic模块有一定关系。
请问我应当如何维护pmic,让板卡不会自动复位?或者pmic的自动复位功能能否禁用,我们的RTOS不需要此功能。

求助求助:sos:

您好,K1的sdk中默认是没有自动复位的逻辑的。复位源包括看门狗和pmic,能否分享下您的使用方法吗?不定期复位是指出现复位现象时没有时间上和操作上的规律?

好的,我是在k1开发板上运行了我们自己的操作系统。

使用方法是板卡上电,按s打断自动启动,设置环境变量,用tftpboot命令加载我们操作系统的映像,然后go跳转到我们的操作系统入口点,引导操作系统的启动。

目前在操作系统初始化阶段,我已经将看门狗定时器的计数清零,并进行了关闭,0xD40800B8寄存器的值已经为0了。但操作系统的确没有对PMIC进行管理。

现在的现象是:
如果我没有做看门狗的禁用,那么每次操作系统运行一段时间后,板卡均会复位。
如果做了看门狗的禁用,操作系统启动后板卡会偶发的复位,有几次运行会复位有几次没有。

我认为这个问题与看门狗有一定关联,与pmic也有一定关联,但是pmic的部分我们没有做到位,但是具体应当如何维护我们暂时还没摸清楚。

有可能是这种启动方式没有把uboot中维护的wdt关掉,可以执行命令试下
wdt list #查看wdt设备
wdt dev wdt-name(这里改成list出来的名称) #选择设备
wdt stop #关掉wdt
后面再启动系统

用wdt的命令试了一下,发现这样做完以后系统还是会复位,还有哪些可以尝试的动作吗?我感觉可能和pmic有一定关系,pmic内部是不是也内置了一个看门狗,怎么禁用它呢?

不好意思,是命令的问题,后续版本会解决。pmic的看门狗也是抽象成了看门狗设备,问题修复后用命令是可以的

好的,请问能否提供一下关闭pmic看门狗的代码,我们想在操作系统里直接用代码把pmic的看门狗也关一下,这样就能解决我们的现有问题了

只需要告知我们需要操作哪颗寄存器以及如何操作,把pmic的看门狗关掉即可

两个wdt都需要重启,按着下面的命令试一下
=> wdt list
PMIC_WDT (pm8xx_wdt)
[ 5.580] watchdog@D4080000 (spacemit_wdt)
=> [ 6.429] wdt dev PMIC_WDT
=> wdt stop
=> wdt dev watchdog@D4080000
=> wdt stop
后面再进行启动的操作,在本地测试2min没有重启

将两个看门狗全部禁用以后,果然不再复位了,十分感谢!!!

我之前无论是通过软件操作的方式,还是通过uboot命令的方式,都只是将watchdog@d4080000这个设备禁用了,漏掉了PMIC_WDT设备,这就是板卡会复位的关键所在。

(不小心被手滑删了)