This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:RTC 时间在上电后被覆盖

Guru**** 2933120 points

Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650742/linux-am5728-rtc-time-is-overwritten-after-power-on

器件型号:AM5728

工具/软件:Linux

您好,

好的、我今天使用的是 ti-processor-sdk-linux-am57xx-evm-04.01.00.06-linux-x86-Install.bin、我们构建了一个定制硬件参考 am5728评估板。

现在我要解决 RTC 时间问题,我们使用了 Microchip mcp79410 RTC 芯片。

这是我注意到的事情。

  -我能够 读取/写入 mcp7941的所有寄存器。

 - 提供3V 电压的电池和晶振也运行正常。

 -我在 RTC 中设置的时间是递增的,即使主板已关闭,但当系统重新启动时,RTC 总是在一个恒定的日期之前进行写操作

参考下面提到的 dmesg | grep -in "RTC" out

310:[3.750657]   hctosys:无法打开 RTC 设备(rtc0)
353:[   7.401386] RTC-ds1307 2-006F:读取:92 44 17 3a 18 12 17
354:[   7.401396] RTC-ds1307 2-006F:读取秒=12、分钟=44、小时=17、mday =18、mon=11、 yage=117、wday =1/*  重新启动之前我在 RTC 上设置的日期 18-12-2017 time 17:44*/
355:[   7.401704] RTC-ds1307 2-006F:读取:92 44 17 3a 18 12 17
356:[7.401711]   RTC-ds1307 2-006F:读取 secs=12、mins=44、hours=17、mDay =18、mon=11、 yage=117、wday =1
357:[   7.401864] RTC rtc0:mcp7941x:dev (253:0)
358:[   7.401878] RTC-ds1307 2-006F:RTC 内核:将 mcp7941x 注册为 rtc0
359:[   7.415505] RTC-ds1307 2-006F:'WAKEUP SOURC'被置位、IRQ 请求被禁用!
360:[   7.42391] RTC-ds1307 2-006F:64字节 NVRAM
375:[   7.544625] RTC RTC1:48070000.i2c:tps659:dev (253:1)
376:[   7.544633] Palms-RTC 48070000.i2c:tps659038@58:tps659038_RTC:RTC 内核:已注册48070000.i2c:tps659作为 RTC1
377:[   7.567759] RTC rtc2:48838000.RTC:DEV (253:2)
378:[   7.567771] OMAP_RTC 48838000.RTC:RTC 内核:将48838000.RTC 注册为 rtc2
440:[  11.257945] RTC-ds1307 2-006F:写入秒=55、分钟=42、小时=21、mday =26、mon=8、 Yage=117、wday =2    //* RTC 在某个固定日期之前被写过,时间为2017年9月26日21:42*/
441:[  11.257954] RTC-ds1307 2-006F:写入:D5 42 21 0b 26 09 17
442:[  11.259019] RTC-ds1307 2-006F:读取:D5 42 21 2b 26 09 17
443:[  11.259027] RTC-ds1307 2-006F:读取 secs=55、mins=42、hours=21、mDay =26、mon=8、 yage=117、wday =2

我真的不明白在我给器件上电时、预定义的日期在哪里更新。

请帮助我解决此问题。

此致

Aslam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Aslam、

    根据我的理解、您将此 MCP79410 RTC 芯片连接到 AM572x I2C 接口。

    [引用用户="Mohamed Aslam"]-我在 RTC 中设置的时间是递增的,即使主板已关闭,但当系统重新启动时,RTC 总是在一个固定的日期前进行写操作

    当您说"系统已重新启动"时、您是指 AM572x 器件已重新启动还是 MCP79410 RTC 芯片已重新启动、还是两者都已重新启动?

    能否提供有关如何重新启动系统的更多详细信息? 控制台日志也会有所帮助。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Aslam、

    另请注意、AM572x Beagle X15电路板中使用了 MCP79410 RTC 芯片:

    elinux.org/Beagleboard:BeagleBoard-X15
    github.com/.../BeagleBoard-X15_SRM.pdf
    github.com/.../BEAGLEBOARD_X15_REV_B1.pdf

    您可以将定制板与 Beagle X15板进行比较。

    此外、您还可以检查该默认值是否来自 MCP79410 RTC 芯片驱动程序:

    linux-4.9.41/drivers/rtc/rtc-ds1307.c

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Pavel Botev,

    我的意思是、当我们关闭并打开设备电源或重新启动时。
    它始终写入一个常数日期26-09-17和时间21:42。
    我觉得在启动某些程序大约11秒后、我尝试设置此时间。 但我无法找到它是哪个程序

    我非常感谢就此提供的任何指导。
    此致
    Aslam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    穆罕默德

    AM572x GP EVM 还随 MCP79410 RTC 一起提供、您可以尝试使用它、如果工作正常、则您的定制板会出现硬件故障:

    processors.wiki.ti.com/.../AM572x_General_Purpose_EVM_HW_User_Guide

    关于 SW 侧、我怀疑此默认值是在 MCP79410 RTC 驱动程序中设置的。 您应该调试该驱动程序以查找该值的确切位置。

    linux-4.9.41/drivers/rtc/rtc-ds1307.c


    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我在使用 Linux 4.9.41 RT 的 BeagleBone Black 处遇到相同的故障。 一个外部 MCP79410作为 RTC1连接到 开发板上、并带有许多其他外设器件。

    root@AM335x-EVM:~# dmesg | grep RTC

    [1.462824]  hctosys:无法打开 RTC 设备(rtc0)

    [6.091636]  RTC rtc0:44e3e000。RTC:dev (253:0)

    [6.091681]  OMAP_RTC 44e3e000.RTC:RTC 内核:将44e3e000.RTC 注册为 rtc0

    [6.776695]  链接到:RTC_ds1307 (+) EDT_ft5x06 (+) spidev (+) RTC_OMAP musb_AM335x ti_AM335x_tscadc OMA_WDT sch_FQ_codel uio_module_drv (O) uio cryptodev (O)中的模块

    [6.937900]  RTC-ds1307 2-006F:读取:B5 08 16 2c 07 03 18

    [6.937913]  RTC-ds1307 2-006F:读取 secs=35、mins=8、hours=16、mDay =7、mon=2、 yage=118、wday =3   ##当前日期和时间##

    [6.938273]  RTC-ds1307 2-006F:读取:B5 08 16 2c 07 03 18

    [6.938283]  RTC-ds1307 2-006F:读取 secs=35、mins=8、hours=16、mDay =7、mon=2、 yage=118、wday =3

    [6.938571]  RTC RTC1:mcp7941x:dev (253:1)

    [6.938580]  RTC-ds1307 2-006F:RTC 内核:将 mcp7941x 注册为 RTC1

    [6.938600]  RTC-ds1307 2-006F:64字节 NVRAM

    [10.482313] PM:引导加载程序不支持仅 RTC!

    [10.482622] 链接模块:pm33xx wkup_m3_IPC wkup_m3_rproc remoteppvrsrvkm (O) omap_ae_driver omap_sham prus_soc_bus crypto_engine ti_emif_emph_ds1307 edt_ft5x06 amps dev+) rtc_mosf_cru_c_v3_odr (u_t_mcus_tud_adt_mu_v3_tudc (u_v3_amtudc)

    [19.094109] RTC-ds1307 2-006F:写入 secs=41、mins=6、hour=15、mDay =5、mon=2、 yage=118、wday =1  ##旧日期重新输入###

    [19.094130] RTC-ds1307 2-006F:写入:C1 06 15 0A 05 03 18

    [19.095405] RTC-ds1307 2-006F:读取:C1 06 15 2a 05 03 18

    [19.095421] RTC-ds1307 2-006F:读取 secs=41、mins=6、hour=15、mDay =5、mon=2、 yage=118、wday =1

    无需拔下电源。 要复制按住8秒钟的断电按钮。 然后再次按下断电按钮、启动至 SD 卡。 回写日期是 SD 卡创建的日期。

    RTC 作为微芯片数据表由电池供电。 我可以使用 i2cget 命令检查 RTC、并验证晶体是否正在运行。

    附加的完整 dmesg。

    期待收到您的来信。

    e2e.ti.com/.../2500.dmesg.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Naseer、

    您可以针对 BBB AM335x 问题打开新的 e2e 线程。

    此致、
    帕维尔