On 11.06.23 17:11, Alexandre Belloni wrote: > On 11/06/2023 15:38:04+0200, Jan Kiszka wrote: >> On 10.06.23 10:31, Alexandre Belloni wrote: >>> Hello Jan, >>> >>> On 09/06/2023 23:04:12+0200, Jan Kiszka wrote: >>>> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> >>>> >>>> The VL bit in the seconds register remains set only until seconds are >>>> written under main power. As this often happens during boot-up after >>>> picking up a network time, make sure to preserve the low battery state >>>> across this, caching it and returning it via the RTC_VL_BACKUP_LOW bit. >>>> >>>> To permit userspace clearing this state during runtime, also implement >>>> RTC_VL_CLR that works against the cached state. >>>> >>>> This is emulating RTCs which have a battery voltage check that works >>>> under main power as well. >>>> >>> >>> Emulating doesn't work well and I deliberately chose to not implement >>> it. For example, in your scenario, if you boot twice without using >>> VL_READ, you anyway have lost the information. This makes emulating >>> unreliabl. The fix you need is in userspace where you have to ensure you >>> read the status before setting the time. >> >> Then let's make sure the bit is also set in the hardware register. Then >> also the reboot issue (which is practically a minor one) is solved. The >> current situation is far from optimal. > > This doesn't work because then the time will be considered invalid. I'm > not sure why you don't want to fix your userspace. > Nope, that could be easily avoided in software. The actual problem is that the VL bit is not settable (clear-on-write). And that means we can't do anything about losing the low battery information across reboots - but that's no difference to the situation with the existing driver. There is no "fix" for userspace as there is no standard framework to read-out the status early and retrieve it from there when the user asks for it. That's best done in the kernel. In that light, I still believe my patch is an improvement over the current situation without making anything worse. Jan -- Siemens AG, Technology Competence Center Embedded Linux