Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Nov 2019 10:59:27 -0700 (MST)
From:      Ross Alexander <rwa@athabascau.ca>
To:        freebsd-arm@freebsd.org
Subject:   re: rpi3 clock drift
Message-ID:  <alpine.BSF.2.21.99999.352.1911271039470.281@autopsy.pc.athabascau.ca>

next in thread | raw e-mail | index | archive | help
On Wed, 27 Nov 2019, IanLepore wrote:

> Date: Tue, 26 Nov 2019 15:48:54 -0700
> From: Ian Lepore <ian@freebsd.org>
> To: James Shuriff <james@opentech.cc>, Bakul Shah
>       <bakul@bitblocks.com>
> Cc: "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
> Subject: Re: rpi3 clock drift
> Message-ID:
>       <486c0bc46deeefb8338f50fe6dfdf7951786e56c.camel@freebsd.org>
> Content-Type: text/plain; charset=3D"UTF-8"
>
> On Tue, 2019-11-26 at 22:34 +0000, James Shuriff wrote:
>> kern.timecounter.tc.ARM MPCore Timecounter.frequency: 54000000
>
> 54 MHz seems like a very strange frequency for a clock in an arm
> system.  Of course, everything about an RPi seems to be strange and
> non-standard.
>
> Can someone else with an rpi3 (which keeps good time) confirm that
> that's the usual number?
>
> -- Ian

Mine does reasonably well; it's disciplined to a local stratum-0 (a
pi2 with a GPS hat supplying PPS).  The timecounter values are

     rpi3:/var/db/ntp # sysctl kern.timecounter

     kern.timecounter.fast_gettime: 1
     kern.timecounter.tick: 1
     kern.timecounter.choice: ARM MPCore Timecounter(1000) dummy(-1000000)
     kern.timecounter.hardware: ARM MPCore Timecounter
     kern.timecounter.alloweddeviation: 5
     kern.timecounter.timehands_count: 2
     kern.timecounter.stepwarnings: 0
     kern.timecounter.tc.ARM MPCore Timecounter.quality: 1000
     kern.timecounter.tc.ARM MPCore Timecounter.frequency: 19200000
     kern.timecounter.tc.ARM MPCore Timecounter.counter: 1547324379
     kern.timecounter.tc.ARM MPCore Timecounter.mask: 4294967295

and the ntpq info looks like

     rpi3:/var/db/ntp # ntpq

     ntpq> lpee
         remote           refid      st t when poll reach   delay   offset =
 jitter
     =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
     *debian2.bogons  .PPS.            1 u   39  512  377    0.759    5.328=
   3.179

     ntpq> rl &1
     associd=3D63559 status=3D961a conf, reach, sel_sys.peer, 1 event, sys_=
peer,
     srcadr=3Ddebian2.bogons, srcport=3D123, dstadr=3D192.168.2.6, dstport=
=3D123,
     leap=3D00, stratum=3D1, precision=3D-19, rootdelay=3D0.000, rootdisp=
=3D1.099,
     refid=3DPPS, reftime=3De18933b7.00541adb  Wed, Nov 27 2019 10:41:11.00=
1,
     rec=3De18933be.acaf7c6a  Wed, Nov 27 2019 10:41:18.674, reach=3D377,
     unreach=3D0, hmode=3D3, pmode=3D4, hpoll=3D9, ppoll=3D9, headway=3D17,=
 flash=3D00 ok,
     keyid=3D0, offset=3D5.328, delay=3D0.759, dispersion=3D14.153, jitter=
=3D3.179,
     xleave=3D5.695,
     filtdelay=3D     0.87    0.76    0.78    0.77    0.79    0.79    0.71 =
   0.80,
     filtoffset=3D    6.01    5.33    4.48    3.45    2.52    1.53    0.75 =
   0.56,
     filtdisp=3D      0.00    7.95   16.10   23.85   31.71   39.74   47.61 =
  55.62

     ntpq> rl
     associd=3D0 status=3D0618 leap_none, sync_ntp, 1 event, no_sys_peer,
     version=3D"ntpd 4.2.8p12-a (1)", processor=3D"arm64",
     system=3D"FreeBSD/13.0-CURRENT", leap=3D00, stratum=3D2, precision=3D-=
21,
     rootdelay=3D0.759, rootdisp=3D23.748, refid=3D192.168.2.3,
     reftime=3De18931ac.ad6bd044  Wed, Nov 27 2019 10:32:28.677,
     clock=3De18933ef.81828f21  Wed, Nov 27 2019 10:42:07.505, peer=3D63559=
, tc=3D9,
     mintc=3D3, offset=3D5.327665, frequency=3D-7.309, sys_jitter=3D0.00000=
0,
     clk_jitter=3D1.121, clk_wander=3D0.013, tai=3D37, leapsec=3D2017010100=
00,
     expire=3D201912280000

     ntpq> quit

This box is drifting a bit right now because I've got a 'make -j 3
buildworld' running; the cheapo little resonators that the Pi folks
use instead of crystals drift madly with thermal stress.  I can see
the house furnace cutting in and out by graphing the loopstats file
:).  While idle it's usually good to less than half a millisecond.

regards,
Ross

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
Ross Alexander, (780) 675-6823 desk / (780) 689-0749 cell, rwa@athabascau.c=
a
                         54.71593 N 113.30835 W

     Order is simply a thin, perilous condition
     we try to impose on the basic reality of chaos.

        -- William Gaddis, _J R_
--
This communication is intended for the use of the recipient to whom it is a=
ddressed, and may contain confidential, personal, and or privileged informa=
tion. Please contact us immediately if you are not the intended recipient o=
f this communication, and do not copy, distribute, or take action relying o=
n it. Any communications received in error, or subsequent reply, should be =
deleted or destroyed.
---



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.21.99999.352.1911271039470.281>