参考了坛上一位高人的贴子,到内核里打开watchdog,但是结果仍然无法重启。
由于项目需要,于是用了奋战了一个晚上到3点,终找到了问题所在, 其实就是watchdog的寄存器偏移不对,最后只要修改sunxi-f1c100s.dtsi
把wdt: watchdog@1c20ca0 {
compatible = "allwinner, suniv-f1c100s-wdt",
"allwinner, sun4i-a10-wdt";
reg = <0x1c20ca0 0x20>;
}
改为
wdt: watchdog@1c20ca0 {
compatible = "allwinner, suniv-f1c100s-wdt",
"allwinner, sun6i-a31-wdt";
reg = <0x1c20ca0 0x20>;
}
这样就能正常重启了,我使用的是5.2的内核,其它的内核有可能不存在这个情况
存储器使用的是TF卡,如果是SPI NAND,请修改驱动退出4byte模式
离线
感谢分享!
其他关于 F1C100s 软重启的讨论:
1. F1C100S linux-4.15 无法软件重启的问题原因 @by 阿黄
2. f1c100s使用linux4.19可以正常reboot,但是otg该怎么配置才正确啊?
3. 全志F1C100S LicheePi Nano 4.14版 kernel 无法reboot
离线
"allwinner, sun4i-a10-wdt";
"allwinner, sun6i-a31-wdt";
我怎么没有发现地址不同呢, 只发现上面这一行有点差异.
最近编辑记录 raspberryman (2020-05-06 14:54:20)
离线
还真是的啊,把"allwinner, sun4i-a10-wdt";改成"allwinner, sun6i-a31-wdt";之后,5.2 TF重启成功了,谢谢楼主~~~
离线
冷重启是硬件电路让SPI flash重新上电。在restart函数使reset
pin 输出reset电压!热重启是给SPI flash/NAND/emmc/sdmmc一个指令让访问flash的地址,扇区为0?
离线