龙芯rtc时间关机重启后不能保存问题分析

问题点:rtc断电重启时间不能保存。

这里使用的是cpu的rtc功能。
首先检查下硬件是否接得有问题,如果不会查看,请硬件佬帮忙,并且测量下rtc电池电压,一般是3v就是正常的。

查看log如下:

[root@vclustersBMC-ls2k ~]# dmesg | grep rtc
[    2.195835] rtc rtc0: 1fe07800.rtc: dev (254:0)
[    2.195854] ls-rtc 1fe07800.rtc: rtc core: registered 1fe07800.rtc as rtc0
[    2.852887] drivers/rtc/hctosys.c: unable to open rtc device (y)

date看一下发现系统时间是初始化的时间:

[root@vclustersBMC-ls2k ~]# date
Thu Jan  1 08:03:50 CST 1970

而使用命令 hwclock --show查看rtc的时间是正常时间:

[root@vclustersBMC-ls2k ~]# hwclock --show
Tue 17 Nov 2020 11:06:47 AM CST  -0.852446 seconds

测量rtc电池是3v,也正常,结合当前的log说明rtc驱动在起来的时候没有把rtc时间设置到系统时间。按照以下的修改即可。

在defconfig文件指定了设置rtc时间到系统时间的设备,这里指定是rtc0设备

+++ b/arch/mips/configs/loongson2k1000_defconfig
@@ -2235,7 +2235,7 @@ CONFIG_RTC_LIB=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_HCTOSYS=y
 CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_HCTOSYS_DEVICE="y"
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
 CONFIG_RTC_DEBUG=y

扩展:

1、对应设备节点、dts
dts:pmon-loongson3/Targets/LS2K/conf/LS2K.dts

dts设备节点信息:

	rtc0: rtc@1fe07800{
                         compatible = "loongson,ls-rtc";
                        reg = <0x1fe07800 0x100>;
                         interrupt-parent = <&icu>;
                         interrupts = <60>;
                 };

驱动:loongson/linux-3.10/drivers/rtc/rtc-ls.c

ls_rtc_read_time //调用该接口读取rtc的时间数据,读寄存器TOY_READ1_REG(0x30)得到年份,读寄存器TOY_READ0_REG(0x2c)得到月份,日,时分秒等数值
ls_rtc_set_time //调用该接口设置rtc的时间,把年份的数值写入寄存器TOY_READ1_REG(0x30),把月份,日,时分秒等数值写入寄存器TOY_READ0_REG(0x2c),更新rtc时间。

[    2.942419] ls-rtc 1fe07800.rtc: setting system clock to 2020-11-17 02:50:43 UTC (1605581443)
[root@vclustersBMC-ls2k ~]# hwclock --show
Tue 17 Nov 2020 10:51:58 AM CST  -0.108106 seconds

log显示的时间跟实际的时间不一致,说明系统进行了数值的修正,从而得到了正确的时间值。

文件:./drivers/rtc/hctosys.c
rtc_hctosys //调用该接口把rtc时间设置到系统时间

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零意@

您的打赏将是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值