Commit Graph

69 Commits

Author SHA1 Message Date
lukem 95c969f245 add RCSID 2001-11-15 07:03:28 +00:00
jdolecek 1a92fabcb3 Don't print any warning if the time base was not provided (i.e. given as zero).
Fixes port-i386/1413 by David Carrel.
2001-11-03 11:16:25 +00:00
jdolecek 7c9c35e3e7 Move the inclusion of 'mca.h' so that it doesn't depend on pcppi. The clock
interrupts are properly reset on PS/2 now.

Handle the slighly different PS/2 CMOS layout and get/set century
byte as appropriate. The check for valid CMOS CRC checksum is not implemented
yet; I don't currently know algorithm they use.

The info about PS/2 CMOS was taken from the Padgett Peterson's
x86/MSDOS Interrupt List, release 60.
2001-04-23 09:35:12 +00:00
wiz c79d6f4378 Fix typo in comment reported by Yuji Yamano in kern/12391. 2001-03-12 17:26:37 +00:00
jdolecek 8fedbd8497 Add i386-specific part of MicroChannel Architecture bus support, as
found in some older IBM PS/2 machines.

This code is based upon work by Scott D. Telford, with some minor bits
in arch/i386/mca/mca_machdep.c taken from FreeBSD.

XXX this is still very experimental and development version; use at your
XXX own risk
2000-05-11 16:38:10 +00:00
mycroft 468985f608 Adjust asm statement for newer GCCs. 2000-05-03 21:32:59 +00:00
minoura 93d494f9a5 Take care of National Geode (Cyrix MediaGX) built-in clock module bug.
Patch supplied by INOUE Yoshinari <pf5y-inue@asahi-net.or.jp>, kern/8654.
2000-02-02 15:26:27 +00:00
enami de37487d49 - Export initrtclock().
- Call it from apm_resume().

This fixes timer problem on some laptop after hybernation (PR#4808).
Reviewd by: fvdl@netbsd.org
1999-11-06 01:14:00 +00:00
mycroft 7c33a450ba Recalculate delaytab[]. We need to round up in case we were on the edge of a
tick and the hardware mysteriously responds fast enough that the delay ends
up being 1 tick short.  An unlikely event, but just in case anything actually
relies on this...
1999-03-29 17:54:34 +00:00
mycroft c40877ff9d delay(): For small values of n, use a fixed lookup table. Also use
rtclock_tval as the limit, since this is what we actually programmed the chip
for.
1999-03-29 17:33:29 +00:00
christos 21485fd1d6 noise reduction. 1999-02-13 16:45:28 +00:00
drochner b2c4a7b933 use mi data conversion functions, simplify inittodr() and resettodr() 1999-02-07 17:29:26 +00:00
drochner 0f145938b4 put all century related code into an own function clock_expandyear(),
touch the CMOS century byte only if the CMOS contents passes a
checksum test which qualifies it as "known compliant"
1999-02-07 16:18:00 +00:00
drochner 67589898ca Be more cautious about writing to the CMOS century byte. Update it only
if it contained a "19" before. There are machines (in particular PS/2
descendants) which have a checksum at this place.
Introduce a patchable kernel variable "rtc_update_century" to modify
the behaviour: 1="always update" (for testing and if one wants to set
the clock back) or -1="never touch".
1999-01-18 10:50:23 +00:00
perry 3a86ff1e67 Fix a stupid bug -- an if that was supposed to be nested but wasn't. 1998-10-13 15:14:13 +00:00
perry 37cb095897 1) Change "dectohexdec" and "hexdectodec" to "bintobcd" and
"bcdtobin". The old names were bogus.
2) Make the code grok the NVRAM's century field. This code is, to say
the least, poorly tested. It should make NetBSD play nicer with other
OSes that care about the century field, however.
1998-10-12 15:41:11 +00:00
perry e7340f0ed3 Fix a potential Y2K bug on some clock chips: we were loading invalid
BCD into the year field of the RTC in years > 1999. It seems to have
worked just fine on my old broken down test machine, but apparently
some others actually get hurt. Suckage. We now make sure that we load
valid BCD.

Other ports should check for variations on this theme.
1998-10-06 05:52:23 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
perry 54f97ab9d1 bzero->memset, bcopy->memcpy 1998-08-05 02:28:26 +00:00
perry bf0943278c Fix a problem first noticed by a user with a screwed up real time
clock past the End of Time.

If time_t is 32 bits, then the "End of Time" is Jan 18/19 2038
(depending on time zone).

This code copes with RTC's past the end of time if time_t is an int32
or less. It just forces the time back to 2037.  This will let users
with screwed up clocks to at least boot and function long enough to
set their clocks to something sane.

This kludge is conditioned on an
	if (sizeof(time_t) <= sizeof(int32_t))
which will automatically optimize the code out once we switch time_t
to a 64 bit quantity, which should happen well before 2037.

Patch based on code from Michael C. Richardson, with help from
Allen Briggs who pointed out a fencepost error.
1998-08-05 01:21:54 +00:00
perry 04b3a6bd4a Tweak more. 1998-06-27 02:55:10 +00:00
perry 9209250625 Oops. fix typo. 1998-06-27 02:51:56 +00:00
perry 39b77211e9 Boost base year to 1995. 1985 was over 12 years ago. 1998-06-27 02:51:18 +00:00
drochner 46f77d75da Make sysbeep() use dev/isa/pcppi. (sysbeep0 at pcppi?)
Remove findcpuspeed() - it's useless and was commented out for a while.
1998-04-16 20:15:10 +00:00
drochner ac884fce95 Allow DELAY() to be called anytime:
-don't enable interrupts at the end of gettick(), restore the previous
 state instead
-start timer/counter 0 from delay() if necessary
-comment out "findcpuspeed()", it would clobber the timer again, and it
 is unused anyway
1998-02-05 19:59:54 +00:00
jonathan a7b2815a55 Import Dennis Ferguson's i386 clock change request from PR 2785:
* Add table-driven assembly-coded microtime().

   * add boot-time computation of the interpolation table,
     allowing the hand-coded microtime() to work with locally-tuned
     nonstandard values of HZ or TIMER_FREQ.

   * delete old C version of microtime().
1997-02-13 00:59:12 +00:00
perry b89a3425b7 Eliminate obsolete TIMEZONE and DST options.
Eliminate obsolete global kernel variable "struct timezone tz"
Add RTC_OFFSET option
Add global kernel variable rtc_offset, which is initialized by
RTC_OFFSET at kernel compile time.
on i386, x68k, mac68k, pc532 and arm32, RTC_OFFSET indicates how many
minutes west (east) of GMT the hardware RTC runs. Defaults to 0.
Places where tz variable was used to indicate this in the past have
been replaced with rtc_offset.
Add sysctl interface to rtc_offset.
Kill obsolete DST_* macros in sys/time.h
gettimeofday now always returns zeroed timezone if zone is requested.
settimeofday now ignores and logs attempts to set non-existant kernel
timezone.
1997-01-15 01:28:28 +00:00
thorpej a0dffcafc2 Use bitmask_snprintf(). 1996-11-13 07:00:30 +00:00
christos bd73314ed9 backout previous kprintf changes 1996-10-13 03:19:38 +00:00
christos 06555645c2 printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:24:36 +00:00
mycroft eda98d375d Use intr.h. 1996-05-12 23:11:54 +00:00
christos 099b45aa2a - Add missing prototypes.
- Fix gcc warnings
1996-05-03 19:14:50 +00:00
cgd 79e0a8a2b9 update for addition of a machine-dependent cookie as the first argument
to isa_intr_{,dis}establish().
1996-04-11 22:15:08 +00:00
mycroft 46c087980e Add explicit return types. 1996-04-03 08:55:20 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
mycroft c8e379015c Fix sysbeep() for the case of pitch == 0, and garbage collect a useless
variable.
1995-08-13 04:06:29 +00:00
cgd 2b71eae2c7 note that most of dev/ic's contents have changed names 1995-06-28 04:30:30 +00:00
cgd 59e990a56b check CMOS time against base time, for sanity. if CMOS time invalid,
warn user and user base time.  if base time < 1985, warn the user.
if base time 5 or more years different than clock time, warn user,
and if it's base time that's greater, use it.  (The latter case is
handy if one has a machine in which the CMOS battery is dead... I do.)
1995-06-26 10:14:05 +00:00
cgd 2e0e8fc49d use the machine-independent definitions for the mc146818.
wrap the various uses of the chip (including the uses of the NVRAM on it)
around the new defintions, structures, and functions specified in the header.
1995-05-04 19:39:08 +00:00
cgd 8a640328ed clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration.  more work still needs to be done,
but it's getting better...
1995-04-17 12:06:30 +00:00
mycroft b5cf1b5ddd Add interrupt sharing types. 1995-01-03 01:30:14 +00:00
mycroft b7acf321cd No longer needs icu.h. 1994-11-04 18:59:34 +00:00
mycroft 29414c5a0a Change all of the uses of IRQ{0-15} and bit masks to use plain numbers
rather than bit shifting.
1994-11-04 18:34:50 +00:00
cgd 022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
mycroft 8328e78454 Don't allow the clock chip to be reset if the time hasn't been initialized. 1994-07-25 00:19:47 +00:00
cgd a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
mycroft 0ee51c2c8b Forgot to munge the #includes in last commit. 1994-05-03 20:32:22 +00:00
mycroft 884168ce49 Move beep junk to clock.c. 1994-05-03 08:23:55 +00:00
mycroft 2f66816d8b Rename two files. 1994-04-24 01:34:05 +00:00
mycroft 3f5e4f423f Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
1994-04-07 06:48:19 +00:00