This is by design, I think. If you look at the schematic of the carrier board:
The battery is connected to RTC_VBAT
. Then RTC_VBAT
is connected to the STM32 MCU:
The battery is not connected to the EIC7700 SoC. Thus, only the RTC clock inside the STM32 MCU can be kept running. I confirmed this with my board and each power cycle the EIC7700 SoC resets the RTC date/time, even if the power cord is still attched (5V standby from ATX power is always ON). From the MCU console, I can see the MCU date/time is being properly preserved and updated both with and without the power cord connected. Conclusion: this is a limitation of the carrier board by design. Only way to implement the feature I can think of is for the es-bmcd
daemon to fetch the MCU time from the SoC side, but I did some reverse engineering of the binary, and currently this SoC > MCU request channel is not there. There’s the channel the other way around – MCU → SoC, where MCU can request some hwmon information from Linux, or request orderly shutdown of Linux.
My advice is not to waste time on this. systemd can already set the wall clock to the the last shutdown time on boot. After boot, timesyncd can use NTP to sync time. If you indeed need it, use a dedicated RTC instead.