你好:
板子相关信息:imx6q
内核版本:3.14.52
我在板子启动之后执行reboot命令:
root@imx6qsabresd:/# reboot
The system is going down for reboot NOW! (ttymxc0) (Thu Sep 1 09:57:12 2016)
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
root@imx6qsabresd:/# Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 428)
dropbear.
** (oprofile-server:487): WARNING **: Avahi error: Daemon connection fail[ ok ]
Stopping advanced power management daemon: no /usr/sbin/apmd found; none killed
apmd.
Stopping system message bus: dbus.
stopping mountd: done
stopping nfsd: done
Stopping OProfileUI server
Stopping syslogd/klogd: stopped syslogd (pid 456)
stopped klogd (pid 459)
done
stopping statd: done
Stopping Telephony daemon
ALSA: Storing mixer settings...
Stopping rpcbind daemon...
done.
Stopping Linux NFC daemon
Deconfiguring network interfaces... done.
Sending all processes the TERM signal...
logout
Sending all processes the KILL signal...
Unmounting remote filesystems...
Deactivating swap...
Unmounting local filesystems...
Rebooting... reboot: Restarting system
mxc_restart: Watchdog reset failed to assert reset
就卡在这个了地方。
我的板子运行频率是800Mhz,那个看门狗选择的工作模式是ldo-bypass ,看门狗2。
首先板子应该没有问题的,运行3.0.35的时候是reboot正常的,一切OK。就是3.14.52不成功。
我直接操作寄存器验证如下:
在打断uboot正常启动之后直接:=> mw.w 0x20bc000 0x34,可以正常复位启动,并且打印说Reset cause: WDOG。
在启动系统之后执行:root@imx6qsabresd:~# /unit_tests/memtool -16 0x20bc000=0x34
root@imx6qsabresd:~# /unit_tests/memtool -16 0x20bc000=0x34
Writing 16-bit value 0x34 to address 0x020BC000
root@imx6qsabresd:~#
U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Sep 02 2016 - 18:29:31)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
CPU: Temperature 49 C
Reset cause: WDOG
Board: MX6-SabreSD
I2C: ready
DRAM: 1 GiB
能否给点建议!!谢谢呢!
看们狗超时,挂载不到内核,你内核是通过tftp挂载的,还是烧写的,查看下
谢谢你的回复呢,我的镜像全部是一次性烧写到板子上的emmc,我经过测试追踪,我换了设备树,换成我以前的一个备份就好了,内核其他的都没换,那个是将供电模式是id-bypass,打开的看门狗是第一个呢,参考手册的说这个模式下要使用看门狗2呢,反正调换了下好了,但是同时打开wdg就vpu启动不起来。谢谢回复呢!
&gpc {
/* use ldo-bypass, u-boot will check it and configure */
fsl,ldo-bypass = ;
fsl,wdog-reset = ;
};
很抱歉啊这才回复,你要看看你的设备树imx6qdl-saresd.dtsi文件的这个cp0节点:
原来的是
&cpu0 {
arm-supply = <&sw1a_reg>;
soc-supply = <&sw1c_reg>;
};
你试试修改成这个试试
&cpu0 {
arm-supply = <®_arm>;
soc-supply = <®_soc>;
}
把这个文件的这个节点如下修改:
&gpc {
/* use ldo-bypass, u-boot will check it and configure */
fsl,ldo-bypass = ;
fsl,wdog-reset = ;
};
&wdog1 {
status = "okay";
};
&wdog2 {
status = "disabled";
};
你试试啊,如果不行我们在交流啊,留下我的微信联系方式:AZWBL060310