Home | History | Annotate | Download | only in hp300
History log of /src/sys/arch/hp300/hp300/clock.c
RevisionDateAuthorComments
 1.41  29-May-2020  rin For struct timecounter, use C99 initializers.
Compile tested. No functional changes intended.
 1.40  08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.39  07-Jan-2008  joerg branches: 1.39.32; 1.39.38; 1.39.40;
Garbage collect !__HAVE_TIMECOUNTER code.
 1.38  09-Sep-2006  tsutsui branches: 1.38.30; 1.38.36; 1.38.44;
Switch hp300 to timecounter with MC6840 interval timer, which is
used for hardclcok(9). Old code is still left for reference.

XXX: possibly problematic if hardclock(9) is blocked more than 1/HZ,
XXX: but old microtime(9) implementation also had the similar problem.
 1.37  04-Sep-2006  tsutsui branches: 1.37.2;
Switch hp300 to MI todr.
 1.36  08-Mar-2006  lukem Use the SI capitalization for "Hz", "kHz", and "MHz" in comments and strings.
Add a space between numbers and Hz unit.
 1.35  24-Dec-2005  perry branches: 1.35.4; 1.35.6; 1.35.8; 1.35.10;
bare asm -> __asm
 1.34  11-Dec-2005  christos merge ktrace-lwp.
 1.33  02-Jun-2005  tsutsui branches: 1.33.2;
Add workaround for volatile struct timeval time vs. todr_*() function
prototype mismatch. Based on sparc64 fixes.
 1.32  23-May-2005  tsutsui Make sure that microtime(9) returns time greater than the previous value
like other ports. This may close port-hp300/10571.
 1.31  28-Aug-2004  thorpej Use ANSI function decls, static, and const.
 1.30  17-Nov-2003  tsutsui TAB/space cleanup.
 1.29  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.28  19-Jul-2003  tsutsui Rename clockattach() to todr_attach().
 1.27  15-Mar-2002  gmcgarry branches: 1.27.12;
Add RCSIDs.
 1.26  08-Dec-2001  gmcgarry Remove placeholder for event counter; it's done elsewhere
 1.25  03-Dec-2001  gmcgarry Fix path to clockvar.h.
 1.24  17-Nov-2001  gmcgarry Use new RTC attachment.
 1.23  10-Nov-2001  tsutsui Add some definitions for battery backed clock register 5,
and fix one spelling nit.

Mostly from port-hp300/8824, which had already pointed out
y2k (and y2k+1) bugs before 2000, but they were not fixed
till the last month. (I noticed this PR today. Oops)
 1.22  11-Oct-2001  tsutsui branches: 1.22.2; 1.22.4;
Cleanup TOD clock functions:
- Adapt MI functions/structures in sys/dev/clock_subr.[ch]
- Fix year-2001 problem

XXX Maybe TOD clock should be attached as an independent device.
 1.21  12-Oct-1997  thorpej branches: 1.21.26; 1.21.30;
Move the prototype of hp300_calibrate_delay() to cpu.h
 1.20  27-Apr-1997  thorpej branches: 1.20.4;
#include <machine/hp300spu.h>
 1.19  01-Apr-1997  scottr Add prototypes, and make this compile with -Wall. Remove register
modifier from all declarations.
 1.18  13-Oct-1996  christos backout previous kprintf changes
 1.17  11-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.16  05-Oct-1996  thorpej Cast a volatile pointer to caddr_t for a call to badbaddr().
 1.15  04-Oct-1996  thorpej At the end of the delay calibration routine, explcitly reset the timer.

This fixes a critical bug where a clock interrupt would happen sometime
between the call to hp300_calibrate_delay() and when proc0 is initialized.
This ends up dereferencing a bad pointer in itimerdecr(), which scribbles
over the first page of kernel text, specifically vectors 46 and 47 (decimal).

To complicate matters, the way the bug manifested itself was different
depending on whether or not DDB was configured into the kernel. When
DDB is in the kernel, kernel text is mapped read/write. When DDB is not
in the kernel, kernel text is mapped read-only. Note that the kernel
scribble happens early, typically before the console is initialized.

In the non-DDB case, the kernel will hang as soon as it's loaded because
the access causes a fault (before the console is initialized, so you
don't see the trap).

In the DDB case, the access does _not_ cause a fault. However, the
mechanism used to enter the kernel debugger is to issue a "trap #15".
Conveniently, this is one of the corrupted vectors (47), thus rendering
DDB useless (it actually caused a recursive panic/trap loop).

This _WILL_ be in the first 1.2 official patch.
 1.14  18-May-1996  thorpej branches: 1.14.4;
Implement a real delay calibration routine, adapted from Chuck Cranor's
mvme68k delay calibration algorithm.
 1.13  29-Dec-1994  mycroft microtime() returns void.
 1.12  26-Oct-1994  cgd new RCS ID format.
 1.11  23-May-1994  mycroft Merge with 4.4-Lite.
 1.10  17-May-1994  cgd prototyping foo, and kill profclock stuff
 1.9  05-May-1994  mycroft Most of the changes needed to make this continue to run.
 1.8  08-Apr-1994  hpeyerl Remove "MAP_FILE". okey-dokey'd by Charles.
 1.7  04-Feb-1994  mycroft Use CLKF_PC(), rather than decomposing the frame ourselves.
 1.6  04-Feb-1994  mycroft profclock() takes a pointer to clockframe.
 1.5  06-Dec-1993  mycroft Dummy clockattach() for new config.
 1.4  12-Nov-1993  cgd new specfs.h and fifo.h locations
 1.3  01-Aug-1993  mycroft Add RCS identifiers (this time on the correct side of the branch), and
incorporate recent changes in netbsd-0-9 branch.
 1.2  22-May-1993  cgd add rcsids to everything and clean up headers
 1.1  13-May-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  13-May-1993  cgd add hp300 kernel files. generic kernel files might need some help...
 1.14.4.1  14-Nov-1996  thorpej Pull up from trunk: make sure clock interrupt is disabled at the end
of the delay calibration routine, in order to avoid getting a bad
pointer reference, causing a crash very early in kernels without DDB.
 1.20.4.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.21.30.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.21.30.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.21.26.1  12-Nov-2001  he Pull up revision 1.22 (via patch, requested by tsutsui):
Fix two bugs, one Year 2000 bug, one Year 2001 bug, related
to usage of two-digit BCD year in TOD clock.
 1.22.4.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.22.4.2  08-Jan-2002  nathanw Catch up to -current.
 1.22.4.1  11-Oct-2001  nathanw file clock.c was added on branch nathanw_sa on 2002-01-08 00:24:39 +0000
 1.22.2.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.27.12.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.27.12.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.27.12.3  18-Sep-2004  skrll Sync with HEAD.
 1.27.12.2  03-Sep-2004  skrll Sync with HEAD
 1.27.12.1  03-Aug-2004  skrll Sync with HEAD
 1.33.2.3  21-Jan-2008  yamt sync with head
 1.33.2.2  30-Dec-2006  yamt sync with head.
 1.33.2.1  21-Jun-2006  yamt sync with head.
 1.35.10.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.35.8.2  14-Sep-2006  yamt sync with head.
 1.35.8.1  13-Mar-2006  yamt sync with head.
 1.35.6.1  22-Apr-2006  simonb Sync with head.
 1.35.4.1  09-Sep-2006  rpaulo sync with head
 1.37.2.1  18-Nov-2006  ad Sync with head.
 1.38.44.1  08-Jan-2008  bouyer Sync with HEAD
 1.38.36.1  18-Feb-2008  mjf Sync with HEAD.
 1.38.30.1  09-Jan-2008  matt sync with HEAD
 1.39.40.1  17-Feb-2011  bouyer Sync with HEAD
 1.39.38.1  06-Jun-2011  jruoho Sync with HEAD.
 1.39.32.1  05-Mar-2011  rmind sync with head

RSS XML Feed