On Sun, 29 May 2005, genosensor wrote:
> Jim,
>
> I just upgraded one of my TS7200's to the ts8 kernel to get
> rid of the multi-percent clock drift. My experience is
> exactly as you describe. 16 seonds lost in 20 hrs.
> Changing the divisor from 5085 to 5084 makes the clock
> acceptably accurate. Thanks. Maybe this fix can
> go into ts9 :-)
And using adjtimex (I compiled it into the version of busybox I use, I
seem to remember it wasn't part of the onboard busybox set) I've got it
tuned to be accurate to about 1 sec in 5 days. Which is more than accurate
enough for my uses.
cheers
Jim
>
>
> --- In Jim Jackson <> wrote:
> >
> > Jesse et al.
> >
> > I've found sometime to patch the kernel with this and try it out.
> > I've found that the value "5085" caused about 8 secs to be lost in just
> > over 10 hours (about 1 sec in 4500 lost) so I have used a value of 5084
> > which gives a better accuracy - at least for my crystal and board.
> >
> > cheers
> > Jim
> >
> > On Wed, 1 Dec 2004, Jesse Off wrote:
> >
> > >
> > > It looks like the following patch to the kernel fixes (for the
> most part)
> > > the horrible time drift. Apply this patch to
> > > include/asm-arm/arch-ep93xx/time.h and recompile a kernel to fix.
> > >
> > > //Jesse Off
> > >
> > > Index: time.h
> > > ===================================================================
> > > RCS file:
> /cvsroot/ts-7200/dist/linux24/include/asm-arm/arch-ep93xx/time.h,v
> > > retrieving revision 1.1
> > > retrieving revision 1.2
> > > diff -u -r1.1 -r1.2
> > > --- time.h 22 Jul 2004 19:50:54 -0000 1.1
> > > +++ time.h 1 Dec 2004 20:03:07 -0000 1.2
> > > @@ -26,12 +26,6 @@
> > > /* First timer channel used for timer interrupt */
> > >
> > > /*
> > > - * We want the timer interval setup for 10,000 uSec.
> > > - */
> > > -#define TIMER_INTERVAL 10000 /* uSeconds */
> > > -
> > > -
> > > -/*
> > > * IRQ handler for the timer
> > > */
> > > static void ep93xx_timer_interrupt(int irq, void *dev_id, struct
> pt_regs *regs)
> > > @@ -66,8 +60,8 @@
> > > * the timer load value is the timer interval
> > > * divided by 2.
> > > */
> > > - outl( (TIMER_INTERVAL >> 1), TIMER1LOAD );
> > > - outl( (TIMER_INTERVAL >> 1), TIMER1VALUE); /* countdown */
> > > + outl( 5085, TIMER1LOAD );
> > > + outl( 5085, TIMER1VALUE); /* countdown */
> > >
> > > /*
> > > * Set up Timer 1 for 508 kHz clock and periodic mode.
> > >
> > >
> > >
> > >
> > >
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> > >
> > >
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|