System clock reset to Jan 2000 on resume from sleep

We are encountering a sporadic but frequent issue with system time reseting to Jan 2000 when resuming from sleep.

We have set the battery backed-up RTC as described by Toradex (configuring m41t0), and that often works, but there are issues with the kernel seemingly using a different RTC when coming up and resuming (rtc0). This is an issue regardless of sleep since at startup the time jumps back and forth, but eventually does restore to the RTC, but at resume from sleep, the time remains on Jan 2000.

At resume we can see the following:

[  100.159817] hdmi_state_machine_handle_hpd_l: ignoring bouncing hpd
[  100.159906] nct1008_nct72 4-004c: success in enabling rail vdd_nct72
[  100.165260] as3722-rtc as3722-rtc.1: as3722_rtc_resume() 100 0 1 0 20 0
[  100.165832] Wake18 for irq=118
[  100.165838] Disabling wake18
[  100.354091] ata1: SATA link down (SStatus 0 SControl 300)
[  100.357980] PM: resume of devices complete after 316.545 msecs
[  100.358711] alarmtimer: old system time 2018-02-11 09:00:21.595383298 UTC
[  100.359025] as3722-rtc as3722-rtc.1: setting system clock to 2000-01-01 00:20:01 UTC (946686001)
[  100.359318] Wake39 for irq=52
[  100.359325] Disabling wake39
[  100.362114] usb 2-2: USB disconnect, device number 2
[  100.359551] Restarting tasks ... done.
[  100.409368] tegra_soctherm: resumed
[  100.410738] tegra_dvfs: resumed
[  100.420559] Tegra cpufreq resume: restoring frequency to 1044000 kHz
[  100.443091] PM: suspend exit 2000-01-01 00:20:01.584069499 UTC
[  100.768105] usb 2-2: new high-speed USB device number 6 using tegra-xhci
[  100.781097] usb 2-2: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 255, changing to 11
[  100.781112] usb 2-2: New USB device found, idVendor=058b, idProduct=0041
[  100.781121] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  100.810295] usbcore: registered new interface driver bb_usb_chr
[  102.082895] usb 2-2: USB disconnect, device number 6
[  102.084346] baseband_usb_driver_disconnect: no baseband_usb_chr
[  103.259282] usb 2-2: new high-speed USB device number 7 using tegra-xhci
[  103.286118] usb 2-2: New USB device found, idVendor=1bc7, idProduct=0021
[  103.286138] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  103.286148] usb 2-2: Product: 6 CDC-ACM
[  103.286156] usb 2-2: Manufacturer: Telit
[  103.286163] usb 2-2: SerialNumber: 359180080185827
[  103.334174] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[  103.344848] cdc_acm 2-2:1.0: ttyACM0: USB ACM device

We haven’t been able to identify what triggers the problem but we have reproduced it on several boards.

As mentioned before I would expect this to be resolved by disabling all but the RTC driver that you actually intend to use (e.g. the battery backed m41t00 one).

By “disabling” do you mean recompiling the kernel with a trimmed down device tree?
We looked into this and it seems like there is some hardcoding of this behavior in the kernel.

No, I mean disabling the resp. RTC driver(s) in the kernel configuration.

Hi @sagism,

Did you manage to solve this issue?

Another thing… I saw that you are using BSP 2.8.1, which is quite old already.

I strongly recommend you move to BSP 3.0.4, which is our current BSP, ok?

Best regards,
André Curvello