"Fossies" - the Fresh Open Source Software Archive

Member "PPSkit-2.1.7/NEWS" (26 Aug 2006, 36262 Bytes) of package /linux/misc/old/PPSkit-2.1.7.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 (Emacs: -*- indented-text -*-)
    2 
    3 				What's new?
    4 		 Copyright (c) 1997 - 2006 by Ulrich Windl
    5 
    6 			      NEWS for 2.1.7
    7 
    8 * Merged patch to Linux-2.4.33.2. Even though the last release was
    9   announced to be the last release forLinux-2.4, here's a re-merge for the
   10   current Linux-2.4 kernel.  There are no functional changes nor bug fixes,
   11   but it is believed (by the author) that ``update_nanoscale()'' in
   12   ``arch/*/kernel/time.c'' is bad for PPS frequency calibration.  You are
   13   invited to prove that the time offset is smaller when it's replaced by a
   14   "do nothing routine".
   15 
   16 			      NEWS for 2.1.6
   17 
   18 * Merged patch to Linux-2.4.32. This will be the last patch for Linux
   19   kernel 2.4 (as it is virtually bug-free).
   20 
   21 * Changed source to compile with "gcc-4.0.2 20050901 (prerelease)"
   22 
   23 			      NEWS for 2.1.5
   24 
   25 * Merged patch to Linux-2.4.29.
   26 
   27 			      NEWS for 2.1.4
   28 
   29 * Make sure that failed parameter exchanges from and to user space always
   30   set error to -EFAULT.
   31 
   32 			      NEWS for 2.1.3
   33 
   34 * Do not add a definition for ``CIOGETEV'', because it's not implemented
   35   any more.
   36 
   37 			      NEWS for 2.1.2
   38 
   39 * Merged patch for Linux-2.4.21.  Some architectures may no longer be
   40   working because of modifications in timing code that I don't understand.
   41   Intel Pentium does work however.
   42 
   43 * Revised ``INSTALL''.  I still think it's worth reading.  Revised
   44   ``README''.
   45 
   46 * This release has been sponsored (see CREDITS).
   47 
   48 			      NEWS for 2.1.1
   49 
   50 * ``EXPORT_SYMBOL(i8253_lock)'' moved from ``arch/i386/kernel/time.c'' to
   51   ``arch/i386/kernel/ksyms.c''.  Fixed assembler constraints regarding
   52   early clobber.  Fixed compilation problem where ``CONFIG_X86_TSC'' isn't
   53   defined.  Use macro calls instead of writing explicit inline assembler.
   54 
   55 			      NEWS for 2.1.0
   56 
   57 * Updated ``Documentation/kernel-time.txt''.
   58 
   59 * Fixed bug where adjtime() emulation would treat microseconds as
   60   nanoseconds, thus never making the desired adjustment.  To avoid
   61   restricting the range of the broken adjtime() emulation to 2.1 seconds,
   62   ``tickadj'' had to be converted back to microseconds (affects sysctl()
   63   interface).
   64 
   65 * Added new Perl script ``PPSspy.pl'' that reads and displays the PPS
   66   variables from the kernel (using the experimental ``pps'' sysctl).
   67 
   68 * Revised priority of kernel logging messages (used for debugging) when
   69   conditions ``STA_PPSERROR'' or ``STA_PPSWANDER'' are detected.
   70 
   71 * Merged patch for Linux-2.4.20.
   72 
   73 * Added missing permission check for ``sys_clock_settime()'', and added
   74   strategy routine to implement proper permission checks for sysctl in
   75   ``kernel/time.c''.
   76 
   77 * Fixed wrong arguments to ``do_gettimeofday()'' in ``drivers/atm'', and
   78   ``drivers/sbus/char''.
   79 
   80 * Fixed two bugs reported by Reg Clemens: ``arch/i386/kernel/apm.c'' had
   81   illegal ``KERN_WARN'', declaration of ``wall_jiffies'' in
   82   ``kernel/timer.c'' did not match declaration in <linux/time.h>.  Updated
   83   ``INSTALL'' as suggested by Reg Clemens.
   84 
   85 			    NEWS for 2.0.2
   86 
   87 * Updated ``patch-ntp-4.0'' for ntp-4.1.1.
   88 
   89 * New entry ``Hz'' (read-only) in ``/proc/sys/kernel/time'' contains the
   90   value of HZ (hz).  Updated ``Documentation/sysctl/kernel.txt''.
   91 
   92 * Avoid overflow into sign for ``MOD_OFFSET'' when converting microseconds
   93   to nanoseconds.  Found by Petr Sumbera <petr.sumbera@artisys.cz>.
   94 
   95 * Fixed compilation problems when ``CONFIG_X86_TSC'' was not defined
   96   (e.g. Cyrix 6x86).
   97 
   98 * Merged kernel patch with Linux-2.4.19.  APM produces warnings if
   99   get_time_diff() would be called.
  100 
  101 * Merged kernel patch with Linux-2.4.18.  Fortunately some of my
  102   modifications magically went into the standard sources ;-)
  103 
  104 			    NEWS for 2.0.1
  105 
  106 * Fix returning non-normalized timevals in very rare cases (do not
  107   round microseconds).  Reported by "Jean Cyr" <jcyr@dillobits.com>.
  108 
  109 * Undo changes for CPU-specific time-keeping (that was not working
  110   well yet).
  111 
  112 * Merged patch for 2.4.7 (not yet released) to Linux 2.4.16: The
  113   sysctl number had to be changed again (to 55).
  114 
  115 * Updated ``ppsctl.c'' (Removed obsolete warning. Added new formatting
  116   option 'l' to print logical level of event as number).
  117 
  118 			    NEWS for 2.0.0
  119 
  120 * Revised and improved permission checking for PPS API and debugging
  121   messages in serial driver.
  122 
  123 * Added new routine ``update_nanoscale()'' to fine-tune interpolation
  124   between ticks.  Added at least a template to ``arch/*/kernel/time.c''.
  125 
  126 * Updated patch for ntpd-4.0.99k to compile and work without
  127   ``CIOGETEV''.
  128 
  129 * Prepared support for different devices being defined as PPS API's
  130   ``kernel consumer'' (state variables no longer reside in serial
  131   driver).
  132 
  133 * Merged ``pre6'' patch for Linux-2.4.2 to Linux-2.4.3.  Removed
  134   unneeded code from ``update_rtc()'' in ``arch/i386/kernel/time.c''.
  135   Added generic complaint (debugging message) if CPU has negative time
  136   warp.  Piggy-back the CPU number on the lower nanoseconds when
  137   debugging SMP machines (This will introduce a 32ns inaccuracy).
  138 
  139 * Finally dropped ``enable_pps.c'' as it would not work without
  140   modification with the current code.  Use ``ppsctl.c'' instead.  The
  141   latter has been updated not to use ``stdin'' any more.
  142 
  143 * Modified ``serial.c'' to ensure that ``PPS_TSFMT_TSPEC'' is the default
  144   setting (RFC 2783 says something like that in section 3.3).  Implemented
  145   enforcement of file open mode read/write to change settings.
  146 
  147 * Removed unneeded code from ``update_rtc()'' in ``arch/i386/kernel/time.c''.
  148 
  149 * Fixed SMP problems for i386: ``exact_nanotime_quotient'' is no longer
  150   ``static'' (although I don't like the idea).  Declare ``cpu_khz'' and
  151   ``exact_nanotime_quotient'' in ``<asm-i386/timex.h>'' and remove explicit
  152   external declarations.  Update ``one_usec'' to ``quarter_usec'' in
  153   ``arch/i386/kernel/smpboot.c'' as nanoseconds require a tighter coupling
  154   of CPUs (now 0.5 microseconds instead of two).  TSC skew printed in
  155   nanoseconds now.
  156 
  157 * Added new ``ppsctl.c'' to control PPS API (derived from
  158   ``enable_pps.c'').  This utilitiy is designed to control the PPS API
  159   only.  Removed all NTP-related code.  Implemented flexible formatting for
  160   monitor option.
  161 
  162 * Updated clock model to nanokernel dated 2000-10-25.  Clearing
  163   ``STA_PLL'' will reset the PPS calibration interval.
  164 
  165 * Merged changes with Linux-2.4.2. Fixed problem with strange time
  166   warps (newly introduced in Linux-2.4). Added additional debugging
  167   facilities in ``drivers/char/serial.c''. Added extra message if
  168   kernel fixes negative time warps.
  169 
  170 * Merged changes with Linux-2.4.1. Nobody did contribute any feedback
  171   so far...
  172 
  173 * Fixed old bug with clobbered static variable in ``do_poor_nanotime()''.
  174 
  175 * Merged changes with Linux-2.4.0 (final).
  176 
  177 * ``enable_pps.c'' was changed to show the raw offset as delivered
  178   from PPS API.  Don't ignore events when monitoring jitter with both
  179   events enabled.
  180 
  181 * Updated ``INSTALL'', ``README'', ``TODO''.
  182 
  183 * Adjusted handling of wait queue ``ewait'' for Linux 2.4 in
  184   ``include/linux/timepps.h'' and ``drivers/char/serial.h''.
  185 
  186 * Changed wrong constraint ``g'' for ``mull'' to ``rm'' in
  187   ``arch/i386/kernel/time.c'' to avoid problems with recent versions
  188   of gcc (like 2.96).  Fixed range and accuracy of ``cpu_khz''.
  189 
  190 * Merged ``PRE1 patch'' with ``Linux-2.4.0-test12'' as previous kernel
  191   corrupted my file system [CVS repository was damaged, and I had to
  192   recover]
  193 
  194 * Finally removed support of ``CIOGETEV'' from
  195   ``drivers/char/serial.c''.  Removed ``include/linux/ppsclock.h''
  196   likewise.  Updated ``enable_pps.c'' accordingly.
  197 
  198 * Remove traditional code for determining time in microseconds from
  199   ``arch/i386/kernel/time.c'' and other architectures.
  200 
  201 * Cleanup uses of ``<linux/timex.h>'' where ``<asm/timex.h>'' is
  202   needed.  Fixed direct use of ``xtime'' (assuming it is ``struct
  203   timeval'', e.g for the ATM drivers).  Fixed RTC clock updates for
  204   more architectures.
  205 
  206 * Added documentation for ``/proc/sys/kernel/time/*'' to
  207   ``Documentation/sysctl/kernel.txt''.
  208 
  209 * Merged ``PPSkit-1.0.1'' into ``Linux-2.4.0-test11''. Changed value
  210   for ``N_PPSCLOCK'' in ``<asm/termios.h>'' as there was a conflict
  211   with ``N_SYNCPPP''.  Sysctl number for ``KERN_TIME'' had a conflict
  212   with ``KERN_MSGMNI'' and has been changed to ``50'' (from ``42'').
  213 
  214 * [The development system got upgraded: The Asus/Intel VX BAT board
  215   has been replaced with a Spacewalker/VIA Apollo Pro ATX board
  216   (AV11), fast-page RAM has been upgraded to 8ns SDRAM, and the
  217   genuine Pentium-100 was replaced by a Celeron-500.  Finally the PCI
  218   Mach64 was replaced by an AGP Geforce2 MX graphics board.  This
  219   means that old performance data are no longer reproducible.  Let's
  220   see how the new hardware performs...]
  221 
  222 * Fixed host name of primary site in ``PPSkit.lsm''.
  223 
  224 			    NEWS for 1.0.1
  225 
  226 * Added declaration for ``adjtimex()'' to ``include/linux/timex.h''.
  227 
  228 * Fixed compilation problem in ``arch/i386/kernel/smp.c'' (fix
  229   provided by Andrew Bray).
  230 
  231 * Updated ``status.html'' for Alpha architecture.  Re-merged
  232   ``do_exact_microtime()'' to fix compilation problem in
  233   ``arch/alpha/kernel/time.c''.
  234 
  235 			    NEWS for 1.0.0
  236 
  237 * Dropped obsolete ``ASYNC_PPS_CD_POS'' from ``<linux/serial.h>''.
  238 
  239 * Updated ``BUGS'', ``INSTALL'', ``PPSkit.lsm'' (I could need some new
  240   hardware), ``README'', ``TODO'', ``status.html''.
  241 
  242 * Changed default ``trigger'' in ``enable_pps.c'': do not set up PPS API.
  243 
  244 * Improved accuracy in case of delayed timer interrupts.  Fixed
  245   accuracy when converting TSC to nanoseconds.  Currently we can only
  246   resolve 16 CPU cycles.
  247 
  248 * Updated NTP clock clock model according to a recent stream of
  249   nanokernels #4 (2000-08-16, 2000-08-21, 2000-08-29, 2000-09-21).
  250   With the new model the time offsets will appear significantly larger
  251   (typically 127 times) while being more realistic.
  252 
  253 		     NEWS for 0.9.3 (2nd edition)
  254 
  255 * Added missing files (``ppsclock.h'', ``timepps.h'', ``l_fp.h'',
  256   ``kernel-time.txt'') to patch.
  257 
  258 			    NEWS for 0.9.3
  259 
  260 * Merged with Linux-2.2.16 (10 conflicts).
  261 
  262 * Merged with Linux-2.2.15: Updated ``CREDITS'', ``Configure.help'',
  263   and ``kernel-time.txt''.  Adapted ``arch/i386/kernel/smp.c''.
  264 
  265 * Revised ``sysctl()'' interface: Fixed incorrect entry for
  266   "rtc_runs_localtime".  Added range checking for ``sysctl()'', making
  267   ``time_tick'' and ``tickadj'' writable.
  268 
  269 * Removed broken feature introduced in PPSkit-0.6 (a year ago):
  270   ``adjtime()'' will work even if ``STA_PLL'' is set in
  271   ``time_status''.
  272 
  273 * Internal variable ``tickadj'' has been converted to nanoseconds, but
  274   external interface still uses microseconds.
  275 
  276 * Modified ``hardpps()'' to use a dynamic limit for ``STA_PPSWANDER''.
  277   Actually the last estimate for stability is used.  Revised debugging
  278   output.
  279 
  280 * Moved ``lost_ticks'' calculation out from ``do_nanotime()'' and
  281   ``do_microtime()'' routines.  Updated other architectures,
  282   especially ``arch/alpha/kernel/time.c'' and
  283   ``arch/sparc/kernel/pcic.c'' to reflect this.  Removed unneeded
  284   functions form ``arch/mips/dec/time.c''.
  285 
  286 * Replaced one forgotten occurrence ``do_nanotime()'' with result of
  287   ``do_clock_gettime()''.
  288 
  289 			    NEWS for 0.9.2
  290 
  291 * Optimized computation used to convert timer register to nanoseconds
  292   for i386.  Avoid duplicate call to ``do_nanotime()'' when capturing
  293   timestamps in the serial driver (Modified ``do_clock_gettime()'' to
  294   return the time offset to make this possible).  These changes should
  295   save some CPU cycles.
  296 
  297 * Streamlined ``INSTALL''.  Updated ``ntp.conf.PPS'', ``CREDITS'', and
  298   ``MANIFEST''.  Added patch for ntp-4.0.98e (and possibly later) to make
  299   PPS and ATOM run out-of-the-box.
  300 
  301 * Updated ``enable_pps.c'' to display capabilities of PPS API.  Stop
  302   if ``time_pps_create()'' failed.
  303 
  304 * Modified PPS API implementation to accept disabling a nonexistent
  305   binding for the kernel consumer.  Previously this was EINVAL.
  306   However, if a valid binding exists for a different PPS source,
  307   EINVAL is still returned (People use ``edge == 0'' erroneously to
  308   say that a binding is not to be established, but RFC 2783 specified
  309   this as ``clearing the binding'').
  310 
  311 * Added table with release overview ``status.html''.
  312 
  313 * Fixed bug in ``hardpps()'' that caused frequency spikes after bad
  314   pulses (should have happened quite rarely however).  Fixed problem
  315   in ``update_wall_time_one_tick()'' when a fractional number for
  316   ``time_tick'' causes accumulated phase errors (e.g. DEC Alpha).
  317   Thus ``time_tick'' is no longer used when ``CONFIG_NTP'' is defined!
  318 
  319 * Added fix for arch/alpha/kernel/time.c suggested by John Sager
  320   <jcs@zoo.bt.co.uk> (modified a bit by myself).  Fixed stupid syntax
  321   error in same file.
  322 
  323 * Added fix to arch/alpha/kernel/osf_sys.c (reported by Karlo Gross).
  324   Should compile now.
  325 
  326 * Merged patch for Linux-2.2.14 (manually updated ppc, sparc64).
  327 
  328 * Merged changes for new ``S390'' architecture (only
  329   ``kernel/{irq,time}.c'', untested).
  330 
  331 			    NEWS for 0.9.1
  332 
  333 + Provide GPG signature in addition to PGP signature.  New key
  334   1024D/1339BE4B has fingerprint
  335   1303 DDEE 2E94 0A40 A50D  EE89 BA98 F5F1 1339 BE4B
  336 
  337 + Fixed bug in ``adjtimex()'' to allow compilation when
  338   ``CONFIG_NTP_PPS'' is not defined (reported by Petri Mattila
  339   <petri@prihateam.fi>, thanks!).
  340 
  341 + Fixed an old and stupid bug in ``net/sunrpc/svcauth_des.c'' (there
  342   is still ``tv_usec'').
  343 
  344 + Fixed bug in ``ktime_to_rtc()'' that added an extra non-existing day
  345   on 2000-01-01.  Thanks to Harald Koenig for the solution! Updated
  346   ``CREDITS'' and ``README''.
  347 
  348 			    NEWS for 0.9.0
  349 
  350 + Merged changes into Linux-2.2.13.
  351 
  352 + Added new option ``-P#'' to ``enable_pps.c'': Set the maximum PPS
  353   calibration interval (up to 32768s or 9h).
  354 
  355 + Updated ``TODO''.  Updated ``README'' (added performance data).
  356   Updated ``MANIFEST''.
  357 
  358 + Modified ``change_speed()'' in ``drivers/char/serial.c'' not to
  359   clear ``UART_IER_MSI'' when the PPS API is set up (just to make
  360   sure).
  361 
  362 + Added new ``time'' subdirectory (``pps'', ``rtc_runs_localtime'',
  363   ``rtc_update'', ``tickadj'', ``time_tick'', ``timezone'') to
  364   ``/proc/sys/kernel''.  Kind of experimental, mostly for debugging...
  365 
  366 + Added new variables ``rtc_update'' and ``rtc_update_slave'' to
  367   control updating of the real-time clock (RTC).  Now the updating of
  368   the RTC can be turned off by setting ``rtc_update'' to zero.  When
  369   setting the system time, the RTC will be updated once now.  The
  370   period for updating the RTC is also controlled by ``rtc_update''.
  371 
  372 + Implemented complete update of the RTC, including hour and date
  373   (replaced ``set_rtc_mmss()'' with ``update_rtc'').  Added new
  374   variable ``rtc_runs_localtime'' to control the timezone for the RTC
  375   (together with ``sys_tz'').
  376 
  377 + Tried to update non-i386 architectures as well (alpha, arm, m68k,
  378   mips, sparc, sparc64), all untested.  Please send feedback and
  379   patches!
  380 
  381 + Removed ``time_tolerance'' variable and use new ``pps.frange''
  382   instead.  The dynamic tolerance seen in ``adjtimex()'' is gone to be
  383   more compatible with the rest of the world (Well, it depends on what
  384   ``tolerance'' should be).  ``MAXWANDER'' is constant and quite
  385   large, accepting worse samples now.  Promoted ``time_esterror'' and
  386   ``time_maxerror'' to nanoseconds to allow small increments (I had
  387   0.2PPM for a longer time).
  388 
  389 + Merged changes for ``nanokernel #3'' (dated 1999-08-29).  Changed
  390   some spinlocks to be more correct (I hope).  Enforce ``MOD_PPSMAX''.
  391 
  392 			    NEWS for 0.8.1
  393 
  394 + Updated ``BUGS'' and ``INSTALL''.
  395 
  396 + As I got no majority in the API working group to enforce setting the
  397   ``api_version'' to the proper value when using
  398   ``time_pps_setparams()'', I enforce it before the kernel is entered.
  399   This will fulfil what the draft says: ``This field is present to
  400   enable binary compatibility with future versions of the API.''
  401 
  402 + Avoid possible overflow situation when interpolating ticks using the
  403   timer chip's register in ``arch/i386/time.c''.
  404 
  405 + Updated ``enable_pps.c'' to fix some bugs when reporting events and
  406   times.  Changed format of output to show both sequence numbers.
  407   Added new option '-J' to monitor jitter only when a PPS or clock
  408   error is signalled.  Made event detection algorithm more reliable if
  409   both events are monitored.
  410 
  411 			    NEWS for 0.8.0
  412 
  413 + Updated documentation: ``INSTALL'' (prefer ntp-4.0), ``MANIFEST'',
  414   ``README''
  415 
  416 + Updated ``enable_pps.c'' to support new PPS API.  Added more error
  417   checking.
  418 
  419 + Updated documentation ``magic-number.txt'' to include ``PPSCLOCK_MAGIC''.
  420   Updated ``ioctl-number.txt'' to document the used numbers.
  421 
  422 + Updated PPS API to ``draft-05'' (dated 1999-08-17), causing severe
  423   incompatibilities (the older draft had expired).  Implemented new
  424   ``time_pps_kcbind()'' with ``PPS_TSFMT_TSPEC'' and ``PPS_KC_HARDPPS''.
  425 
  426 			    NEWS for 0.7.2
  427 
  428 + Implemented ``PPS_ECHOASSERT'' and ``PPS_ECHOCLEAR'' via UART's RTS
  429   bit (documented in README).  Fixed bug for ``CLEAR'' events
  430   (actually ``ASSERT'' events had been captured before).
  431 
  432 + Added and updated future plans in ``TODO''.
  433 
  434 + Updated ``enable_pps.c'' for draft conformance.  Added option to set
  435   PPS offset (``-oXY'').  Added option to enable event echo (``-EX'').
  436 
  437 + PPS API consolidation (draft "03" dated 1999-02-11): Added some
  438   comments to ``timepps.h''.  Tightened permission checking in serial
  439   driver for maximum conformance to the specification.
  440 
  441 + Added dynamic jitter threshold (``PPS_POPCORN'') and an extra error
  442   condition for bad pulses in ``hardpps()'' (Taken from
  443   nanokernel-19990829).
  444 
  445 + Added little optimizations in ``kernel/time.c'' that may reduce
  446   extra jitter under heavy load.  Warning message about
  447   ``update_wall_time: ticks is >1'' suppressed unless debugging (I had
  448   seen values up to 5).
  449 
  450 + Updated patch for ntp-4.0.97.  Updated NTP sample configuration
  451   file.  Updated README with some details about the PPS activation.
  452 
  453 + Merged patch for Linux-2.2.12: Some extra blanks removed in
  454   ``arch/ppc/kernel/time.c'' (untested).  ``kernel/time.c'' needs
  455   ``linux/config.h'' now (well, it always did).  Heavily tested the
  456   code for i386 architecture (386SX and Pentium).  Corrected spelling
  457   in ``kernel-time.txt''.
  458 
  459 			    NEWS for 0.7.1
  460 
  461 + Merged changes for Linux-2.2.11 and tested with proven configuration
  462   (PPSkit-0.7.0 performed quite well).  Modified ``adjtimex()'' in
  463   kernel to clamp invalid values instead of rejecting them.  This is
  464   because ``ntpd'' does not care much about failing system calls, and
  465   after very long thought I think avoiding the ``Ariane V'' failure
  466   would not be bad.
  467 
  468 + Added a note about compilation problems and ``<sys/timex.h>'' (see
  469   file ``BUGS'').  Added a not about system include files and symbolic
  470   links for glibc-2.1 in ``INSTALL''.
  471 
  472 + Updated ``enable_pps.c'' to compile with glibc-2.1 (glibc-2.1 uses
  473   an ugly forward declaration of ``struct timeval'').  Added version
  474   of C library to compiled binary.
  475 
  476 + Fixed patch for ``ntpd/refclock.c'' to return success if PPS API was
  477   set up correctly (Stupid bug found by David Schwartz).
  478 
  479 			    NEWS for 0.7.0
  480 
  481 + ``madtime.txt'' is finally gone.  Updated ``ntp.conf.PPS'' example
  482   (used with ntpd-4.0.92h).
  483 
  484 + The behavior for late pulses in ``hardpps()'' was too aggressive: Be
  485   more careful now (silently start a new calibration interval).
  486   Changes merged into Linux-2.2.9.
  487 
  488 + Occasional time warps worth one tick were observed on an i386/SX
  489   16MHz.  The problem could be caused by ``lost_ticks'' being changed
  490   while the time offset is being composed.  Tried to reduce the
  491   probability by reading the variable earlier.
  492 
  493 + Added workaround when ``time_constant'' exceeds its allowed range.
  494 
  495 + Added dynamic adjustment of ``time_tolerance'', because the default
  496   worst-case estimate (500PPM) was too high: Simply monitor the PPS
  497   frequency (the normal PLL/FLL frequency is not trusted enough).  Do
  498   some trickery for the first estimate to avoid excessive
  499   ``STA_PPSWANDER'' conditions.
  500 
  501 + Implemented ``time_pps_wait()'' to wait for events non-busily (My
  502   first try with scheduling, interrupts and wait queues).
  503   ``enable_pps.c'' now uses this function to wait for events.
  504   Enhanced jitter monitor.
  505 
  506 + Updated the test program ``enable_pps.c'' to use the PPS API.
  507   Changed the option ``-p'' for ``polarity'' to ``-t'' for
  508   ``trigger'': To specify the event to capture use one of `a', `c', or
  509   `b' for ``assert'', ``clear'', or ``both'' respectively.  To connect
  510   the captured event to ``hardpps()'' add an extra `h'.
  511 
  512 + Use a new method to capture timestamps: This should reduce jitter,
  513   and should improve accuracy.  In addition, it's easier now to
  514   capture other events like received characters.  Added a more
  515   effective way to enable interrupts for status changes on the modem
  516   lines (read: the mysterious jitter is gone!)
  517 
  518 + Updated patch for Linux 2.2.7.  Merged in code contributed by Reg
  519   Clemens to implement the (still draft status) PPS API (Experiments
  520   with my Pentium 100 and ntpd-4-0.92h showed that we need
  521   sub-microsecond resolution).  Move closer to the standard
  522   ``hardpps()''.  Adedd a new ``include/linux/timepps.h'' for the PPS
  523   API.  The old ``CIOGETEV'' is still present, but a separate
  524   parameter setup is required now.  The old constants
  525   ``ASYNC_PPS_CD_*'' are gone.
  526 
  527 + Added patch to support ``LDISC_PPS'' in ``ntp_refclock.c'' (a hack
  528   that is no longer necessary in ntpd-4.0.92h).  Updated
  529   ``patch-ntp-4.0''.
  530 
  531 			    NEWS for 0.6.1
  532 
  533 + Merged into Linux 2.2.6, basically without conflict (read: should
  534   still work with 2.2.5).  Increased speed of adjtime from 0.5ms/s to
  535   50ms/s.
  536 
  537 + Avoid potential negative spikes in time (architecture independent).
  538   Rewrote algorithm for ``do_clock_getres()'' (for fun).
  539 
  540 + Fixed minor problem with uninitialized data in ``enable_pps.c''.
  541 
  542 + Added enhanced nanokernel support for ntp-4.0.92g (ntpdc, ntptime,
  543   tickadj).
  544 
  545 + Added a reminder that applications must be recompiled for some
  546   features of ``adjtimex()''.
  547 
  548 + Fixed a potential instability in ``hardpps()'', related to the FLL
  549   when pulses arrive doubled.  ``STA_PPSSIGNAL'' is set with greater
  550   care now.
  551 
  552 + Several minor fixes: ``time_adjust'' is a private variable now.
  553   NTP's precision adjustments (actually ``STA_PPSTIME'' and
  554   ``MOD_OFFSET'') will cancel any remaining correction left from a
  555   preceding adjtime() call.  This is specifically important because of
  556   the slow adjustment in Linux (0.05%).
  557 
  558 + Removed unnecessary code in ``arch/sparc/kernel/pcic.c''.
  559 
  560 + Fixed compilation for i386 architecture where ``CONFIG_X86_TSC'' is
  561   not defined.  The variable is referenced also in ``smp.c'', so it's
  562   always there now, even if the value is zero.
  563 
  564 			    NEWS for 0.6.0
  565 
  566 + Updated BUGS about the ``mysterious jitter'' effect.  Updated patch
  567   for Linux-2.2.5 after extensive debugging runs.  Several tests passed
  568   without problems.
  569 
  570 + ``adjtimex()'' accepts any offset for ``MOD_OFFSET'', but
  571   ``hardupdate()'' will clamp the offsets.
  572 
  573 + Fixed bug with possibly persistent ``TIME_ERROR'' in ``adjtimex()''.
  574   Moved time functions that are not architecture dependent to common
  575   ``kernel/time.c''.
  576 
  577 + Added nanosecond time resolution (at least for i386 architecture).
  578 
  579 + Fixed problem in ``arch/i386/kernel/time.c'' when ``CONFIG_X86_TSC''
  580   was defined, but the processor was buggy (uninitialized variables
  581   would be used then).
  582 
  583 + Major cleanups with renaming: instead of calling ``get_fast_time()''
  584   you are expected to use ``get_exact_time()'' now (the ``fast''
  585   version wasn't faster than the ``normal'' version).  Likewise the
  586   ``slow'' versions are called ``poor'' now.  To avoid future
  587   confusion, ``[get]timeoffset'' has been renamed to ``microtime'',
  588   because it returns microsecods.  Functions returning nanoseconds will
  589   have ``nanotime'' instead.  ``<linux/time.h>'' won't include
  590   ``<linux/timex.h>'' any longer; only ``<asm/timex.h>'' will be
  591   included.  ``<linux/timex.h>'' will only include the NTP interface
  592   stuff.
  593 
  594 + Updated serial driver to use ``do_clock_gettime()''.  Fixed memory
  595   leak associated with ``CIOGETEV''.
  596 
  597 + Added new POSIX.4 compatible functions ``do_clock_gettime()'',
  598   ``do_clock_settime()'', and ``do_clock_getres()'' that deal with
  599   nanoseconds.  Several related cleanups.
  600 
  601 + Merged the new ``nanokernel'' stuff into ``kernel/time.c'' (took
  602   over 4 hours without being complete).  Several cleanups and changes
  603   done.
  604 
  605 + Merged the new ``nanokernel'' stuff into ``<include/linux/timex.h>''.
  606   As some new bit definitions clash with older Linux extensions, the
  607   latter had to be relocated.  This will definitely break binary
  608   compatibility (``adjtime()'' is affected), so that I'll possibly
  609   clean up all the old mess.  ``<timex.h>'' is purely for
  610   ``adjtimex()'' now.
  611 
  612 + Updated ``INSTALL'' about xntp.  Updated ``enable_pps.c'' to support
  613   new nanokernel.  Added several new options.  Completely rewritten
  614   logic.
  615 
  616 			    NEWS for 0.5.0
  617 
  618 + Prepare for new ``nanokernel'' by moving closer to Dave Mills'
  619   naming convention, even if there are problems with namespaces:
  620   Renamed ``hardware_pps'' back to ``hardpps''. Re-introduced
  621   ``hardupdate'' as inline function.
  622 
  623 + Added test in adjtimex() to reject unsupported mode bits
  624   (``~ADJ_SERVED_MODE_BITS'') with ``EINVAL''.
  625 
  626 + Increased year in LSM file; it's 1999 for several days now :)
  627 
  628 + Moved kernel time related code from ``sched.c'' to ``time.c''
  629   (likewise for the header files ``sched.h'' and ``time.h'').
  630 
  631 + Added ``#ifdef CONFIG_NTP'' to remove unneeded code where NTP is not
  632   needed.
  633 
  634 + Split ``CONFIG_PPS_SYNC'' into ``CONFIG_NTP_PPS'' (basic PPS
  635   support) and ``CONFIG_NTP_PPS_SERIAL'' (support for PPS signal on
  636   serial port).  Added new ``CONFIG_NTP'' for basic NTP support
  637   (embedded systems might not want it).  Updated ``Configure.help'',
  638   all ``config.in''s and ``defconfig''s to have compatible defaults.
  639 
  640 + Merged patch into Linux 2.2.1 and included fix.
  641 
  642 			    NEWS for 0.4.2
  643 
  644 + Fixed registering the line discipline in ``drivers/char/tty_io.c''
  645   (was wrong in ``/proc/tty/ldiscs'').  Added a `+' to the serial
  646   driver's ``serinfo''.
  647 
  648 + Updated patch for Linux 2.2.0 (parts of the PPSkit went into the
  649   standard kernel).
  650 
  651 			    NEWS for 0.4.1
  652 
  653 + Merged changes into Linux 2.1.132.  ``N_PPSCLOCK'' had to be changed
  654   in ``asm/termios.h'' again; the current value is ``13'' now.
  655   Revised ``Documentation/kernel-time.txt'' to correct the outdated
  656   interface description.  Added missing patch for
  657   ``include/asm-sparc/termios.h''.
  658 
  659 + Notes from the merge: ``N_MASC'' (8) and ``N_R3964'' (9) are missing
  660   in ``include/asm-{alpha,i386,m68k,mips,sparc64}/termios.h''
  661 
  662 
  663 + Updated ``enable_pps.c'' to work even if ``STA_UNSYNC'' is set.
  664   Numerous related changes to improve the usefulness.  Fixed bug when
  665   ADJ_SINGLE_SHOT should be used.
  666 
  667 			    NEWS for 0.4.0
  668 
  669 + The patch has been created by CVS-1.9.28 with ``rdiff''.  Manually
  670   edited patch to remove erroneously changed RCS keywords due to lack
  671   of ``-ko''.
  672 
  673 + Use new patch for kernel 2.1.131 (also known previously as
  674   PPSkit-0.4.0pre1.diff.bz2).  Basically this patch merges the recent
  675   time changes from Linux 2.0 and PPSkit-0.3.8.  ``N_PPSCLOCK'' had to
  676   be changed from 9 (5 very early) to 11 to avoid conflicts in
  677   Linux-2.1.  As all ``dot zero'' revisions, this code has not been
  678   tested by many people...
  679 
  680 + Added new files ``CREDITS'' (from ``README'') and ``MANIFEST''.
  681   Updated ``README'' for the new version.  Updated ``INSTALL''.
  682 
  683 + Updated enable_pps.c to provide better tests (hopefully).
  684 
  685 			    NEWS for 0.3.8
  686 
  687 + Updated README.  Updated INSTALL.
  688 
  689 + Checked xntp3-5.93: Unpatched version works with ATOM and CIOGETEV.
  690   Replaced bad patch for xntp with new one (`patch.xntp3').
  691 
  692 + Updated file <ppsclock.h> to work with glibc2 (libc6) and xntp-3-5.93.
  693 
  694 + Added a fix (and warning) for glibc2 (libc6) to compile enable_pps.c
  695 
  696 + Added a warning about SMP in madtime.txt.
  697 
  698 + Updated patch for kernel 2.0.36. Patch for `completely mad time'
  699   still needs no changes.
  700 
  701 			    NEWS for 0.3.7
  702 
  703 + Changed numeric value for ``N_PPSCLOCK'' in <asm/termios.h> to avoid
  704   a conflict with ``N_AX25'' in linux-2.0.35.  The new value has been
  705   negotiated with Alan Cox.
  706 
  707 			    NEWS for 0.3.6
  708 
  709 + Updated patch for xntp3-5.92, but you should use a more recent
  710   version of xntp (3-5.92 has a severe bug)
  711 
  712 + Minor changes to INSTALL to reflect current versions of xntp.
  713 
  714 + Updated patch for `completely mad time'.
  715 
  716 + Merged in patch for adjustable `tickadj', thereby discovering that
  717   my patch had a broken format.  Updated README to reflect that.
  718 
  719 + Updated Documentation/Configure.help similar to a suggestion of
  720   Martin Spott <martin@quickstep.dirnet.com> (already sent on Nov '97)
  721 
  722 + Merged patch into 2.0.34.  arch/sparc/kernel/time.c needed manual
  723   patching.
  724 
  725 			    NEWS for 0.3.5
  726 
  727 + Partially replaced patch for SPARC architecture. The current patch
  728   was provided by Nigel Metheringham
  729   <Nigel.Metheringham@theplanet.net> on 1998-01-26 for kernel 2.0.33
  730   (arch/sparc/kernel/time.c, drivers/char/time.c). Untested by me.
  731 
  732 + Corrected minor bug in enable_pps.c and gen_pps.c to make gcc-2.8.0
  733   happy.
  734 
  735 			    NEWS for 0.3.4
  736 
  737 + Added bug fix to update CMOS clock (interval was too short,
  738   especially for ``tick % 2 != 0''). Patch extended for all
  739   architectures, but untested for non-i386.
  740 
  741 + Updated patch for "completely mad time" for kernel 2.0.32 (renamed
  742   patch file).
  743 
  744 + Updated patch for kernel 2.0.32 (Parts of the previous patch are
  745   included in the standard kernel now). Architectures other than i386
  746   still need some work.
  747 
  748 			    NEWS for 0.3.3
  749 
  750 + Added ``ntp.conf.PPS'' as an example configuration file for xntpd
  751   and PPS usage (uses ATOM driver)
  752 
  753 + Updated INSTALL to have numeric steps (I hope you'll get lost a bit
  754   harder now)
  755 
  756 + Modified ``hardware_pps'' to reset calibration interval when
  757   ``STA_PPSWANDER'' is detected. Dave Mills did not fully confirm the
  758   problem: ``I gotta put you on hold. It's been awhile since I last
  759   danced with that code and I have a couple of heavy conferences to
  760   survive. However, I recall the intent of the code was not
  761   necessarily to ignore jitter or even wander, as long as the
  762   calibration interval could safely increase while avoiding a slip of
  763   the tick, which could cause severe error. The idea is to discipline
  764   the frequency in a closed- loop system, not necessarily to calculate
  765   the exact frequency. Once the frequency has been measured and the
  766   interval increased to the max, it's pretty hard to kick the loop out
  767   of lock, unless the PPS jitter becomes much larger than the tick
  768   interval.''
  769 
  770 + Updated xntpd/ntp_refclock patch to give better status messages.
  771 
  772 + Changes to the serial driver have been minimized.
  773 
  774 + Patch has been updated for Linux-2.0.31.
  775 
  776 + Updated kernel patch to include architectures (alpha, m68k, mips,
  777   ppc, sparc), but did not test anything at all:
  778 
  779     - alpha, m68k, mips, sparc have no ``do_gettimeoffset'' function.
  780 
  781     - mips and sparc have different structure of their
  782       ``include/asm-<arch>'' directories; they still lack CIOGETEV
  783 
  784 			    NEWS for 0.3.2
  785 
  786 + Updated patch for linux-2.0.31pre10.
  787 
  788 + Added new flags to adjtimex(): ``ADJ_TICKADJ'' allows to get/set the
  789   value of ``tickadj'' within reasonable bounds. As one of the
  790   reserved fill-ups has been used the size of ``struct timex'' should
  791   be unchanged, and binary compatibility should be fine.
  792 
  793 + Updated ``enable_pps.c'' to print time state and messages for state
  794   changes.  State changes are written in comprehensible format now.
  795 
  796 + Removed most of the ``patch-xntp3-5.90.4'' because it's included in
  797   ``xntp3-5.91''.  In fact the complete patch has been replaced by a
  798   different one that makes the PPS driver (ATOM) work (tested in
  799   xntp3-5.90.4).
  800 
  801 + Updated patch for ``Completely Mad Time'' (use CONFIG_M586, added
  802   debug statements, detect lost timer interrupts).  Descriptive text
  803   is in a new file ``madtime.txt'' now.  Paths in patch follow usual
  804   conventions.
  805 
  806 + Updated my own description in CREDITS.  Updated documentation files
  807   as suggested by users.
  808 
  809 + Removed `#define DEBUG_PPS_SYNC' to turn off debugging in serial.c
  810 
  811 			    NEWS for 0.3.1
  812 
  813 + A new version of enable_pps.c with more consistent status reporting
  814   and some new options is provided.
  815 
  816 + Minor cosmetic changes.
  817 
  818 + Fixed some bugs in adjtimex():
  819 
  820     * STA_UNSYNC causes TIME_ERROR to be returned (as per memorandum).
  821 
  822     * Using ADJ_FREQUENCY automatically adds pps_freq (as per
  823       memorandum).
  824 
  825     * When not doing a plain old adjtime() the required offset is
  826       returned in the corresponding field now (as per memorandum).
  827 
  828     * The time returned by adjtimex() will include the time offset to
  829       improve the resolution (as per memorandum).
  830 
  831     * The jitter returned will be in microseconds and no longer in
  832       scaled microseconds (as per memorandum).
  833 
  834 + Changed constant ``MAXFREQ'' in <linux/timex.h> to really 200ppm.
  835 
  836 + Included file with patch and description for "completely mad time".
  837 
  838 + Include a patch to make xntpd's PPS driver work for Linux.  This
  839   patch is an ugly hack, but it seems to do the job until we have
  840   solved all the other problems.
  841 
  842 			    NEWS for 0.3.0
  843 
  844 + I decided to break the single text file with everything into a more
  845   friendly archive, even if I'll surely exceed 20kB for the first
  846   time. The version number will present ``political version
  847   numbering'' (as opposed to ``chronological or automated version
  848   numbering''.  So we have `0', a version that's not yet perfect;
  849   `3', the third major attempt to make things better; finally we have
  850   `0', a release that wants testing.
  851 
  852 + new ioctl CIOGETEV was implemented in the hope it can be used from
  853   xntpd.  I used a trimmed-down version of Harald Koenig's patch
  854   (k-dcf.patch-1.3.58).  The time stamps are used for both, the PPS
  855   routine and the line discipline.
  856 
  857 + implementation of TIOCDCDTIMESTAMP was removed again because of the
  858   change to serial struct.  Furthermore the new CIOGETEV can do things
  859   even better (it has an event counter)
  860 
  861 + Much improved testing program (I hope; in fact it's almost
  862   completely rewritten).  User-visible changes include better error
  863   reporting and edge detection selectable from command line.
  864 
  865 + Possibly improved pulse generator including emulations for common
  866   errors (see BUGS).
  867 
  868 + CONFIG_HARD_PPS is CONFIG_PPS_SYNC now (for no very good reason)...
  869 
  870 + Major corrections to the kernel, especially `adjtimex':
  871 
  872     * All parameters are checked now.  Previously several parameters
  873       were unchecked.
  874 
  875     * It's no longer allowed to change read-only status bits, but
  876       still no error is returned, because it seems that's how xntpd
  877       expects things to work (it's easier that way).
  878 
  879     * A plain old `adjtime()' can be done independent of any
  880       STA_-settings (that's what the memorandum says about
  881       compatibility with existing applications)
  882 
  883     * Avoided some `if's by grouping checking and setting of values
  884       together (where it was easy ;-))
  885 
  886     * `adjtimex' now returns an error depending on several status bits
  887       (e.g. when you enable STA_PPSFREQ when there is no
  888       STA_PPSSIGNAL)
  889 
  890 + (kernel/sched.c) If the clock's maximum error reached
  891   NTP_PHASE_LIMIT (16 seconds as per memorandum), the clock is
  892   declared STA_UNSYNC, and the time state will be TIME_ERROR. The
  893   specification is not too clear on the latter point.
  894 
  895 + The CMOS clock is now updated if STA_UNSYNC is cleared (and no
  896   longer if time_state is not TIME_ERROR).
  897 
  898 + The `hardware_pps' (hardpps) routine has two parameters now, the
  899   timeval and the hardware counter (microtime).  Changed for no good
  900   reason.  Fixed a bug that required 5 good calibrations before the
  901   interval was increased (memorandum talks about 4).  
  902 
  903 + Added some comments (at various places), reformatted some lines,
  904   added debugging code, etc.
  905 
  906 + (arch/i386/kernel/time.c) The code to update the CMOS clock is
  907   broken!  I was unsure how to fix it, so I added a warning message if
  908   the code fails.  This has to be fixed soon!
  909 
  910 + (drivers/char/serial.c) The version of the driver has been changed
  911   by adding a 'a'.  In addition the option `PPS' has been defined for
  912   CONFIG_PPS_SYNC.  The code to print the startup message has been
  913   improved (a matter of taste).
  914 
  915 	       BAD NEWS: There are no NEWS before 0.3.0