Subject: Re: Would setting the CONFIG_RTC option break the powerpc kernel on your machine ?

From: Tom Rini <[email-masked]>
Date: Wed, 17 Dec 2003 09:47:40 -0700

On Wed, Dec 17, 2003 at 10:51:39AM +0100, Sven Luther wrote:
> BTW, should this discussion not be moved to linuxppc mailing lists ?
>
> On Wed, Dec 17, 2003 at 06:27:37PM +1100, Benjamin Herrenschmidt wrote:
> > On Wed, 2003-12-17 at 18:17, Lee Braiden wrote:
> > > On Wednesday 17 Dec 2003 6:24 am, Benjamin Herrenschmidt wrote:
> > > > CONFIG_RTC will definitely break a pmac
> > >
> > > I think I heard something about clock/timer problems on PPC a long time ago,
> > > but could never track down an issue.  Wouldn't it be best to remove RTC on
> > > PPC or document the problem with a (read help) or something?
> > >
> > > Is the PPC RTC (as opposed to GENERIC_RTC) stuff automatically in there, or
> > > something?  Or is it this PPC_RTC that's broken?
> >
> > Well... CONFIG_RTC enables the "PC style" RTC driver that taps IO ports
> > to look for an RTC chip of the kind found in x86 machines. Such a chip
> > doesn't exist on powermac and this random IO port tapping can actually
> > crash the machine.
>
> And i guess that this PC style RTC is found on the southbridge, right ?
> Let me check the VIA docs. Yep, it indeed is there, and i doubt that
> there is another clock on the system. Not sure though.
>
> > CONFIG_PPC_RTC/CONFIG_GENERIC_RTC is a different driver that provides
> > the /dev/rtc interface but relies on hooks provided by the platform
> > code for actually getting/setting the RTC content. The PowerMac platform
> > provides hooks for the different kind of RTC chips found on Macs (that
> > is basically  access to the RTC via via-cuda or via-pmu). CHRP or
>
> Mmm, these are external via chips on mac hardware used for clocks ?
>
> > PReP machines should provide their own hooks, it's possible that what
> > CHRP provides doesn't work properly on the Pegasos, in which case we'd
> > have to fix this.
>
> Another solution would be to :
>
>   1) build a pegasos specific config with CONFIG_RTC, but not the other
>   two. <= Not good, since it would mean over one hour compil more, and
>   one more binary packages. Already like that the ftp-masters are not
>   happy.
>
>   2) build all RTC stuff as modules, and let userland choose the one it
>   needs.
>
>   3) have CONFIG_RTC check the subarch or something and not work if it
>   recognize hardware it doesn't know about or something.

4) Use CONFIG_GEN_RTC and be happy.  What _might_ be happening right now
is that chrp_get_rtc_time is 'funky' and not quite right for anything
other than an IBM OpenFirmeware'd CHRP box.  What I would suggest is
looking at include/asm-generic/rtc.h in 2.6 and moving much of that code
into 'chrp_get_rtc_time' and 'chrp_set_rtc_time'.

--
Tom Rini
http://gate.crashing.org/~trini/

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/