Date: Wed, 22 May 1996 17:19:18 +1000 From: Stephen McKay <syssgm@devetir.qld.gov.au> To: freebsd-current@freebsd.org Cc: syssgm@devetir.qld.gov.au Subject: Re: Wildly inaccurate clock calibration. Message-ID: <199605220719.RAA22373@orion.devetir.qld.gov.au>
index | next in thread | raw e-mail
Bruce Evans <bde@zeta.org.au> claimed:
>>May 16 17:01:33 stupid /kernel: 63814 Hz differs from default of 1193182 Hz by more than 1%
>
>You are experienced enough to debug it :-). Start by defining option
>CLK_CALIBRATION_LOOP and booting with -v. Each calibration should take
>about 1 second if the mc14* clock is working.
Maybe if I just act dumb long enough, the problem will go away? ;-)
Ok, for my first stab in the dark, I lowered the interrupt frequency (as
in the patch below). This yielded very reasonable calibration values from
1193766 to 1193782 (difference of 16Hz, or 0.0013% variation) over 15 tests.
Perhaps it is working now, or perhaps it has some more subtle systematic
error. I can't tell yet for sure.
If the set_timer_freq() call is necessary, and must be lower for slow 386
CPUs, it could be set based on the probed CPU type.
What observable system feature will change if I accept 1193782Hz vs the
default of 1193182Hz (600Hz difference)? Will I be able to check "date"
vs wall clock and find 43sec difference over 1 day? Is this stuff used
yet?
Stephen.
--- clock.c-1.58 Tue May 14 14:07:09 1996
+++ clock.c Wed May 22 12:13:53 1996
@@ -542,7 +542,7 @@
* Temporarily calibrate with a high intr_freq to get a low
* timer0_max_count to help detect bogus i8254 counts.
*/
- set_timer_freq(timer_freq, 20000);
+ set_timer_freq(timer_freq, 2000);
freq = calibrate_clocks();
#ifdef CLK_CALIBRATION_LOOP
if (bootverbose) {
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605220719.RAA22373>
