Commit Graph

80 Commits

Author SHA1 Message Date
martin
d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
fvdl
ab4edb55ec Adapt for i386/x86 change. 2003-02-26 22:21:19 +00:00
nakayama
64eb1178ab Share i386/tsc_microtime.c with alpha and sparc64 as kern_microtime.c.
(approved by martin)
2003-02-05 12:18:01 +00:00
perry
c2afe21c94 Change from a hardcoded sanity check date that has to be updated by
hand every few years to code that uses the automatically generated
time value from config_time.h
Fixes an ancient XXX in the code.
2002-12-10 23:24:33 +00:00
kenh
25c20430c3 The day-of-week register in the MC146818 has the value 1-7, but
clock_secs_to_ymdhms() returns dt_wday with a range of 0-6.  Make sure
the DOW register has the correct range.
2002-12-03 16:11:11 +00:00
fvdl
ae4b76c8d3 New interrupt code. The basic idea behind it is to hide the differences
in interrupt controllers in struct pic, and try to keep as much
common code as possible. At the lowest (asm) level, this is done
with CPP macros.

The main structure is now struct intrsource, describing an established
interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic).
For quick masking, there may be a maximum of 32 sources per CPU.
Sources can be assigned to any CPU in the MP case, though currently they
all go to the boot CPU.
2002-11-22 15:23:35 +00:00
thorpej
1ad8e0ff42 Tidy up CFATTACH_DECL() formatting. 2002-10-02 05:47:08 +00:00
fvdl
26ab868e68 Merge Bill Sommerfeld's i386 MP branch. This code has some known
caveats, but works quite well in a lot of MP cases, and all
UP cases that I have tested. Parts of this will hopefully be
reworked in the not-too-distant future.
2002-10-01 12:56:36 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
thorpej
05210534c0 No need for two copies of the i8253 register definitions. Remove the
i386-specific copy, and adjust its users to add in the timer i/o base
as necessary.
2002-08-13 00:50:33 +00:00
perry
259130c9d4 boost up default times for when clocks are insane (as we do every few years.) 2002-01-01 09:14:14 +00:00
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