2005-12-09 21:29:08

by Pavel Machek

[permalink] [raw]
Subject: spitz: Real time clock?

Hi!

Is there driver for real time clock for spitz? I seem to get default
time each time I boot. (And thats bad because means fsck "too much time
since last check, check forced).

Pavel
--
Thanks, Sharp!


2005-12-09 22:39:19

by Richard Purdie

[permalink] [raw]
Subject: Re: spitz: Real time clock?

On Fri, 2005-12-09 at 22:28 +0100, Pavel Machek wrote:
> Is there driver for real time clock for spitz? I seem to get default
> time each time I boot. (And thats bad because means fsck "too much time
> since last check, check forced).

There is but its already included with the kernels you have. It doesn't
survive reboots and this is a limitation of the PXA processor. There's
not a lot we can do about it I'm afraid.

Richard

2005-12-09 22:53:35

by Pavel Machek

[permalink] [raw]
Subject: Re: spitz: Real time clock?

On P? 09-12-05 22:39:06, Richard Purdie wrote:
> On Fri, 2005-12-09 at 22:28 +0100, Pavel Machek wrote:
> > Is there driver for real time clock for spitz? I seem to get default
> > time each time I boot. (And thats bad because means fsck "too much time
> > since last check, check forced).
>
> There is but its already included with the kernels you have. It doesn't
> survive reboots and this is a limitation of the PXA processor. There's
> not a lot we can do about it I'm afraid.

Ouch, that's bad :-(. So PXA can't keep time properly... could we do
something like storing time on system shutdown and restoring it on
bootup? That way at least time will be monotonic... Ok, that's
userland problem.

Is there way to reboot without "really" rebooting? That would help at
least in my usage case. (Also reboot really does poweroff, not reboot,
but...)

Pavel
--
Thanks, Sharp!

2005-12-10 00:19:21

by Nicolas Pitre

[permalink] [raw]
Subject: Re: spitz: Real time clock?

On Fri, 9 Dec 2005, Pavel Machek wrote:

> On P? 09-12-05 22:39:06, Richard Purdie wrote:
> > On Fri, 2005-12-09 at 22:28 +0100, Pavel Machek wrote:
> > > Is there driver for real time clock for spitz? I seem to get default
> > > time each time I boot. (And thats bad because means fsck "too much time
> > > since last check, check forced).
> >
> > There is but its already included with the kernels you have. It doesn't
> > survive reboots and this is a limitation of the PXA processor. There's
> > not a lot we can do about it I'm afraid.
>
> Ouch, that's bad :-(. So PXA can't keep time properly...

The RTC count is lost on a hard reset. It survives sleep mode though.

The fact is that PocketPC/WinCE is not meant to be "rebooted" and the
RTC on the PXA was probably designed with that fact. The normal usage
pattern is to go into sleep mode all the time.

> could we do something like storing time on system shutdown and
> restoring it on bootup? That way at least time will be monotonic...
> Ok, that's userland problem.

I'd say so.

> Is there way to reboot without "really" rebooting? That would help at
> least in my usage case.

You should be able to "soft" reboot which will also preserve the RTC
count.


Nicolas

2005-12-10 01:43:33

by Richard Purdie

[permalink] [raw]
Subject: Re: spitz: Real time clock?

On Fri, 2005-12-09 at 19:19 -0500, Nicolas Pitre wrote:
> The RTC count is lost on a hard reset. It survives sleep mode though.
>
> The fact is that PocketPC/WinCE is not meant to be "rebooted" and the
> RTC on the PXA was probably designed with that fact. The normal usage
> pattern is to go into sleep mode all the time.

Which is the aim of the Zaurus kernel although it doesn't help when
developing...

> > could we do something like storing time on system shutdown and
> > restoring it on bootup? That way at least time will be monotonic...
> > Ok, that's userland problem.
>
> I'd say so.

OpenZaurus/OE did have code to try and do this built into its images.
I'm not sure what its status is at the moment.

> > Is there way to reboot without "really" rebooting? That would help at
> > least in my usage case.
>
> You should be able to "soft" reboot which will also preserve the RTC
> count.

Based on past performance, the bootloader (in ROM) will probably
corrupt/reset the RTC but I'd like to be proved wrong.

Russell posted some rough code to linux-arm-kernel recently that allowed
you load a new kernel in a kexec sort of manner and that is probably the
best bet to preserve the RTC. This functionality would be useful on the
Zaurus in general.

Richard