Yes, I have read through that article. My understanding is that system clock gets updated from hardware clock at boot time. Right?
Yes, the Linux kernel usually does so from
rtc0 which it logs during boot as follows:
root@colibri-imx6:~# dmesg | grep rtc
[ 1.567008] rtc-ds1307 2-0068: rtc core: registered m41t0 as rtc0
[ 1.575788] snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc1
[ 2.572771] rtc-ds1307 2-0068: setting system clock to 2017-06-30 20:34:10 UTC (1498854850)
The system clock works fine when the module is inserted into the Colibri EvalBoard. When it is inserted into our own custom board, it’s not working properly. Below are commands issued on our customer board.
That really indicates another difference in the overall systems.
The external RTC on custom board appears working just fine. But the system clock does not get updated.
Maybe it does get updated however the system later decides that this can not be a valid time (e.g. for monotonic reasons) or simply sets the time from a time server over the network.
Interesting would be the full boot log as well as the journal output indicating what it is doing exactly:
root@colibri-imx6:~# journalctl -b 0 | grep timesyncd
Jun 30 20:34:17 colibri-imx6 systemd-timesyncd: Network configuration changed, trying to establish connection.
Jun 30 20:34:47 colibri-imx6 systemd-timesyncd: Synchronized to time server 126.96.36.199:123 (time3.google.com).