On 27/07/2020 16:24:39+0100, Russell King - ARM Linux admin wrote: > On Mon, Jul 27, 2020 at 04:49:38PM +0200, Alexandre Belloni wrote: > > On 27/07/2020 10:45:53+0100, Russell King - ARM Linux admin wrote: > > > > This is but this shouldn't be a DT property as it has to be changed > > > > dynamically. I'm working on an ioctl interface to change this > > > > configuration. > > > > > > Why does it need to be changed dynamically? If the hardware components > > > are not fitted to allow the RTC to be safely used without DSM, then > > > why should userspace be able to disable DSM? > > > > For RTCs with a standby mode, you want to be able to return to standby > > mode. > > > > That would happen for example after factory flashing in that common use > > case: > > - the board is manufactured > > - Vbackup is installed, the RTC switches to standby mode > > - the board is then booted to flash a system, Vprimary is now present, > > the RTC switches to DSM. > > > > At this point, if the board is simply shut down, the RTC will start > > draining Vbackup before leaving the factory. Instead, we want to be able > > to return to standby mode until the final user switches the product on > > for the first time. > > I don't think you're understanding what's going on with this proposed > patch. The cubox-i does work today, and the RTC does survive most > power-downs. There are situations where it doesn't. > > So, let's take your process above. > > - the board is manufactured > - Vbackup is installed, the RTC switches to standby mode > - the board is then booted to flash a system, Vprimary is now present > - the board is powered down. the RTC _might_ switch over to battery > if it notices the power failure in time, or it might not. A random > sample of units leaving the factory have the RTC in standby mode. > Others are draining the battery. > > I'm not saying what you propose isn't a good idea. I'm questioning > why we should expose this in the generic kernel on platforms where > it's likely to end up with the RTC being corrupted. > Note that I didn't say we should expose settings that are not working but it is a different discussion. I was explaining why we need to be able to change it dynamically. > Now, I question your idea that units should leave the factory without > the RTC being programmed. We know that lovely systemd goes utterly > bonkers if the system time is beyond INT_MAX. If the RTC leaves > standby mode containing a date which we translate beyond INT_MAX, > systemd will refuse to boot the system, and the user will have no > way to set the correct time. The user returns the device to the > supplier as faulty... This is doesn't happen since v4.17. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com