Commit Graph

4043 Commits

Author SHA1 Message Date
Tor Egge
f811abf08c Bring in some improved bootp support for netboot submitted by Luigi:
- TFTP is not needed any longer.
Add some other improvements:
      - swapsize is now detected if no value was specified.
      - resvport is used by default
      - merged code for setting/showing mount options for root/swap.
Submitted by:   Luigi Rizzo <luigi@labinfo.iet.unipi.it>
1997-05-14 02:44:27 +00:00
Satoshi Asami
b1671e460a Add ${CFLAGS} to makerom command line. Note: don't add ${LDFLAGS} here,
it has a bunch of extra stuff defined above.

While I'm here, change "$(CFLAGS)" to "${CFLAGS}" to make all the rules
uniform.
1997-05-13 06:23:21 +00:00
Tor Egge
472ac7f0bd save/restore %ebx, %esi and %edi when calling bios routines.
Don't save/restore %ecx and %edx.
Reset segment limits when going to real mode.
Reviewed by:	phk (briefly)
1997-05-12 23:00:32 +00:00
Andreas Klemm
99f962423c - fixed typo
- merged SMP option SMP_AUTOSTART from LINT
- enabled SMP_AUTOSTART, since it's the desired working mode and it's
  reported to work now.
PR:
Reviewed by:
Submitted by:
Obtained from:
1997-05-11 19:01:24 +00:00
Tor Egge
432aad0e98 Bring in some kernel bootp support. This removes the need for netboot
to fill in the nfs_diskless structure, at the cost of some kernel
bloat. The advantage is that this code works on a wider range of
network adapters than netboot. Several new kernel options are
documented in LINT.
Obtained from: parts of the code comes from NetBSD.
1997-05-11 18:05:39 +00:00
Bruce Evans
b8dbeb6b4d Fixed initialization of ldt[]. Unused entries were garbage. A comment
was stale.

Fixed initialization of gdt[] for the BDE_DEBUGGER case.  APM entries
clobbered debugger entries if the debugger was loaded (APM is incompatible
with BDE_DEBUGGER) and unused entries were garbage if the debugger wasn't
loaded.
1997-05-11 12:39:43 +00:00
Steve Passe
a56fb4ee60 Documented SMP_AUTOSTART to be working. 1997-05-10 17:40:53 +00:00
Joerg Wunsch
28d90c30ee Add the D_DISK flag to the cdevsw structs of various CD-ROM drivers. 1997-05-10 12:13:17 +00:00
John Hay
02c186c9bf Remove IPXPRINTFS, it is now a sysctl knob. 1997-05-10 11:16:22 +00:00
John-Mark Gurney
5719a93caf forgot to add the "longer" description of bktr and add an example device
line.
1997-05-10 09:23:55 +00:00
John-Mark Gurney
6baab37637 add a line for bktr (Bt848 base capture cards) to LINT. 1997-05-10 09:18:46 +00:00
Bruce Evans
1cbeae88a4 Cleaned up #includes. Lite2 cleaned up <sys/mount.h> so no kludges
are required for NFS now.

Ifdefed SMP #defines.
1997-05-10 08:01:13 +00:00
Kenjiro Cho
68713f97a1 merge ATM driver 1997-05-09 12:19:06 +00:00
Peter Wemm
4d37268944 Fatal trap 13: Brain fault, commit botched.
Current task:     transcribing patch
Time:             for a coffee
Faulting address: bde
1997-05-09 09:46:50 +00:00
Peter Wemm
230ebd9559 Bandaid old register offset code after md_regs changed type..
Submitted by: Eivind Eklund <perhaps@yes.no>
1997-05-09 04:02:58 +00:00
Peter Wemm
894c517fd6 Add _BSD_CLOCKID_T_ and _BSD_TIMER_T_ for posix clock/timer support
Obtained from: NetBSD
1997-05-08 13:45:43 +00:00
Steve Passe
c2855f6e47 fix bug in get_isa_apic_mask() where EISA bus was ignored.
Submitted by:	 Peter Wemm <peter@spinner.DIALix.COM>
1997-05-07 22:25:27 +00:00
Peter Wemm
d021fc112b Don't allow access to illegal addresses in /dev/kmem to panic kernel
(eg: above 0xffc00000).  Programs using /dev/kmem are implicitly racing
the kernel, and can get right up high in memory.  I've been running
these for some time now, but with printfs.  It's saved two panics at
least that I can remember.
1997-05-07 20:32:41 +00:00
Peter Wemm
1f8745a9c3 clean up forked child creation. This is simplified also by having
md_regs being struct trapframe *.  Do a npxsave() if needed and copy the
pcb rather than use the increasingly defunct savectx().  Copy %edi and
%ebp explicitly.

Submitted by: bde

XXX npxproc could be declared in npx.h so the externs with smp fruit
are not needed.
1997-05-07 20:19:18 +00:00
Peter Wemm
914970e6e9 md_regs is struct trapframe * now, rather than int []
Remove TF_REGP() macro and use.  The original reason (address space
problems due to having UPAGES in mapped into user space) is gone.  It
looks cleaner without it.
1997-05-07 20:12:47 +00:00
Peter Wemm
835834c085 md_regs is now a struct trapframe * 1997-05-07 20:08:53 +00:00
Peter Wemm
8359d00f20 forgotten comment 1997-05-07 20:07:25 +00:00
Peter Wemm
213fdd8050 md_regs is a struct trapframe * now, not int [] 1997-05-07 20:05:45 +00:00
Peter Wemm
36428e6100 simplify IOPL gain/remove privs code. It's easier with md_regs
being a trapframe.
1997-05-07 20:02:38 +00:00
Peter Wemm
06884fd04e remove now redundant (struct trapframe *) cast 1997-05-07 19:58:13 +00:00
Peter Wemm
6f486a5552 Convert md_regs from an int[] to a struct trapframe *. It simplifies
some code.
1997-05-07 19:55:13 +00:00
Peter Wemm
2263dd148e remove #include "opt_smp.h"
remove declarations for the SMPcurproc[NCPU] etc arrays. There was no
need to mention NCPU there, and they've been moved to their normal home.
1997-05-07 19:53:20 +00:00
Peter Wemm
f40e607832 remove #include "opt_smp.h" and <machine/smp.h>. Slightly elaborate on
a comment.
1997-05-07 19:51:59 +00:00
Peter Wemm
b34b547455 remove #include "opt_smp.h" 1997-05-07 19:50:31 +00:00
Peter Wemm
503c887bae remove #include opt_smp.h
declare SMPcurpcb[] next to #define and uniprocessor counterpart
1997-05-07 19:49:32 +00:00
Peter Wemm
53815e2fe6 Round 1 of a long series of commits..
Move SMP and APIC_IO from opt_smp.h to opt_global.h
1997-05-07 19:39:16 +00:00
Doug Rabson
cea6c86c11 This is the kernel linker. To use it, you will first need to apply
the patches in freefall:/home/dfr/ld.diffs to your ld sources and set
BINFORMAT to aoutkld when linking the kernel.

Library changes and userland utilities will appear in a later commit.
1997-05-07 16:05:47 +00:00
Kazutaka YOKOTA
df25dec0e5 Now that we have replaced video-related block copy calls with
sc_bcopy(), which is generic_bcopy() in reality, there is no point in
retaining bcopyw() calls in the source code.
OKed by : sos
1997-05-07 10:42:06 +00:00
Steve Passe
f258030f39 Force user to config SMP kernel with "options APIC_IO".
Reviewed by:	Peter Wemm <peter@spinner.DIALix.COM>
1997-05-06 21:29:57 +00:00
Steve Passe
113656909f Make ident equal file name, ie SMP-GENERIC. 1997-05-06 20:40:52 +00:00
Steve Passe
53850c2fb0 A *little* more descriptive test for options. 1997-05-06 18:24:17 +00:00
Steve Passe
3cc17cf950 Added a generic config file for SMP kernels. 1997-05-06 18:18:51 +00:00
Steve Passe
2479ac60b9 Code to handle SMP/APIC_IO mapping of ISA INTs to APIC pins above IRQ15.
- doesn't break my system.
 - NOT yet verified on the affected motherboard.

Submitted by:	"John S. Dyson" <toor@dyson.iquest.net>
1997-05-05 22:56:37 +00:00
Steve Passe
08896efb1a Code to handle SMP/APIC_IO mapping of ISA INTs to APIC pins above IRQ15.
- doesn't break my system.
 - NOT yet verified on the affected motherboard.

Stifle an annoying dma_start busy message for the sound cards.

Submitted by:	"John S. Dyson" <toor@dyson.iquest.net>
1997-05-05 22:56:13 +00:00
KATO Takenori
7a13a66696 Use MediaGX' instead of Gx86'. 1997-05-05 14:30:00 +00:00
KATO Takenori
a74ff881b7 Use M2' instead of 6x86 with MMX'. Cyrix seems to use `M2' officially. 1997-05-05 14:11:09 +00:00
Peter Wemm
f435322e07 correct the order of the variables
use #ifdef where possible instead of #if defined

Submitted by: the KNF police, ie: bde :-)
1997-05-05 09:34:33 +00:00
John Dyson
b332d9a66e Make sure that *fork() always returns with %edx == 1 in the
child.  This was sometimes not happening correctly during my
threads code work.
1997-05-05 04:08:12 +00:00
Joerg Wunsch
5a9714de76 This mega-commit brings the following:
. It makes cd9660 root f/s working again.
. It makes CD9660 a new-style option.
. It adds support to mount an ISO9660 multi-session CD-ROM as the root
  filesystem (the last session actually, but that's what is expected
  behaviour).

Sigh.  The CDIOREADTOCENTRYS did a copyout() of its own, and thus has
been unusable for me for this work.  Too bad it didn't simply stuff
the max 100 entries into the struct ioc_read_toc_entry, but relied on
a user supplied data buffer instead. :-(  I now had to reinvent the
wheel, and created a CDIOREADTOCENTRY ioctl command that can be used
in a kernel context.

While doing this, i noticed the following bogosities in existing CD-ROM
drivers:

wcd:	This driver is likely to be totally bogus when someone tries
	two succeeding CDIOREADTOCENTRYS (or now CDIOREADTOCENTRY)
	commands with requesting MSF format, since it apparently
	operates on an internal table.

scd:	This driver apparently returns just a single TOC entry only for
	the CDIOREADTOCENTRYS command.

I have only been able to test the CDIOREADTOCENTRY command with the
cd(4) driver.  I hereby request the respective maintainers of the
other CD-ROM drivers to verify my code for their driver.  When it
comes to merging this CD-ROM multisession stuff into RELENG_2_2 i will
only consider drivers where i've got a confirmation that it actually
works.
1997-05-04 15:24:23 +00:00
Peter Wemm
b455e1e981 don't #ifdef out reference to i586_ctr_freq. 1997-05-04 14:28:22 +00:00
Peter Wemm
26e5316524 Don't remove i586_ctr_freq from scope, leave it defined as zero. This
simplifies some assumptions and stops some code compile problems.

This should fix the compile hiccup in PR#3491, but smp kernel profiling
isn't likely to be fixed by this.
1997-05-04 14:25:00 +00:00
Steve Passe
356b97e402 disabled checks for smp_active == 0.
this was wasting precious cycles for no apparent (to me) reason.
it is currently bracketed by BOTHER_TO_CHECK, define to restore old behaviour.
1997-05-03 19:24:16 +00:00
Steve Passe
004cb62334 added declaration for get_isa_apic_mask().
Submitted by:	"John S. Dyson" <toor@dyson.iquest.net>
1997-05-03 18:05:31 +00:00
Steve Passe
6e1ed0bec1 improved io_apic_setup().
deals with motherboards that map ISA IRQs to APIC IRQS above 15.

Submitted by:	"John S. Dyson" <toor@dyson.iquest.net>
1997-05-03 18:01:56 +00:00
Steve Passe
462e62c9a0 new function to turn an APIC pin# into an INT mask.
added missing APIC_IO define.

Submitted by:	"John S. Dyson" <toor@dyson.iquest.net>
1997-05-03 17:42:01 +00:00
Steve Passe
a1b7127157 cleaned up FAST_IPI code.
- one-liners all become inline.
 - multi-liners become functions.
 - FAST_IPI defines go away.

re-worked APICIPI_BANDAID code.
 - now refered to as DETECT_DEADLOCK.
 - on by default.
1997-05-01 19:33:12 +00:00
Steve Passe
f3a946e800 fixed spelling error.
Submitted by:	Bruce Albrecht <bruce@zuhause.mn.org>
1997-05-01 19:27:58 +00:00
Steve Passe
4abfa50b62 1.15 4/18/97 John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Added [SR]RGBMASKs ioctl for byte swapping.

 1.16          4/20/97    Randall Hopper <rhh@ct.picker.com>
                          Generalized RGBMASK ioctls for general pixel
                          format setting [SG]ACTPIXFMT, and added query API
                          to return driver-supported pix fmts GSUPPIXFMT.

 1.17          4/21/97    hasty@rah.star-gate.com
                          Clipping support added.

 1.18          4/23/97    Clean up after failed CAP_SINGLEs where bt
                          interrupt isn't delivered, and fixed fixing
                          CAP_SINGLEs that for ODD_ONLY fields.

Submitted by:	individuals in above log messages.
1997-05-01 00:15:30 +00:00
Steve Passe
dff5c18abc changed expect_lock() to try_lock(), the real name used in mplock.s 1997-04-30 19:04:26 +00:00
Andrey A. Chernov
8a13426b30 Restore CRTC start address check back after looking into more sources 1997-04-30 15:31:22 +00:00
Andrey A. Chernov
bfc43e99c4 In comp_vgaregs skip cursor shape and 4 unused bytes (6 total)
instead of 2 unused.
Previus code broke syscons on Diamond Stealth 3D 3000
(video mode ptr was NULL with no real reason)
1997-04-30 01:19:21 +00:00
Steve Passe
04964d153d Enabled 'FIX_MP_TABLE_WORKS' code.
This code re-numbers PCI busses in the MP table to match PCI semantics
when the MP BIOS fails to do it properly.

Reviewed by:	Peter Wemm <peter@spinner.DIALix.COM>
1997-04-29 22:12:32 +00:00
Peter Wemm
176c49e057 Use a common numbering of the tty and net software interrupt levels
between the SMP and non-SMP case.  It simplifies the #ifdef's, since
NHWI changes (at least for the moment) when APIC's are involved.
1997-04-29 20:05:48 +00:00
Peter Wemm
f2b65e7983 Remove stale comment, as suggested by Bruce. 1997-04-29 20:00:41 +00:00
Stefan Eßer
862b403b04 Move CMD640 option from kernel Makefile into opt_wd.h
Submitted by:		Wolfgang Helbig <helbig@mx.ba-stuttgart.de>
1997-04-28 19:26:18 +00:00
Steve Passe
7b2a188c7a cleaned out an old FIXME. 1997-04-28 08:39:48 +00:00
Mike Smith
28f6972b6e Always include PROT_READ for Linux mmap operations.
Submitted by:	Hannu Savolainen <hannu@voxware.pp.fi> via jkh
1997-04-28 02:53:17 +00:00
Steve Passe
f50a491f78 removed TEST_CPUHITS code.
replaced push/pop of %ds with use of 'ss' prefix in Xinvltlb.

Submitted by:	 Bruce Evans <bde@zeta.org.au>
1997-04-28 01:47:55 +00:00
Steve Passe
e1c8d46561 removed TEST_CPUHITS code. 1997-04-28 01:46:31 +00:00
Steve Passe
34e63b4cd7 removed all the TEST_UPPERPRIO crud. 1997-04-28 01:08:47 +00:00
Steve Passe
2c5d02fff3 remove all the SMP_INVLTLB defines, making the code default for APIC_IO.
Reviewed by:	informal discussion with Peter Wemm <peter@spinner.DIALix.COM>
1997-04-28 00:25:00 +00:00
Steve Passe
2b45006334 remove the SMP_INVLTLB option, making the code default for APIC_IO.
Reviewed by:	informal discussion with Peter Wemm <peter@spinner.DIALix.COM>
1997-04-28 00:24:28 +00:00
Steve Passe
296bffc9c0 informal discussion between Bruce Evans <bde@zeta.org.au>,
Peter Wemm <peter@spinner.DIALix.COM>, Steve Passe <smp@csn.net>

removed all the IPI_INTS code.
made the XFAST_IPI32 code default, renaming Xfastipi32 to Xinvltlb.
cleanup of i386/isa/isa_device.h to eliminate SMP dependancies:
  made the id_irq member of struct isa_device an u_int.
  made the id_drq member of struct isa_device an int.
  removed all other '#ifdefs' concerning SMP & APIC_IO.
removed SMP/APIC_IO dependancies from if_ze.c.
1997-04-27 21:18:59 +00:00
Steve Passe
2897614119 informal discussion between Bruce Evans <bde@zeta.org.au>,
Peter Wemm <peter@spinner.DIALix.COM>, Steve Passe <smp@csn.net>

removed all the IPI_INTS code.
made the XFAST_IPI32 code default, renaming Xfastipi32 to Xinvltlb.
1997-04-27 21:17:56 +00:00
Peter Wemm
d061973c76 Create a special option file "opt_global.h" which is included by all
source files via a 'cc -include opt_global.h ...' type arrangement.
This means we can untangle certain header files.

options.i386 has a placeholder until it has a real member so we can avoid
having to teach config about it just yet.

Reviewed by: bde
1997-04-27 20:01:47 +00:00
Peter Wemm
a8a74574b2 Whoops.. We forgot to turn off the 4MB Virtual==Physical mapping at address
zero from bootstrap in the non-SMP case.

Noticed by: bde
1997-04-27 12:11:43 +00:00
Kazutaka YOKOTA
d75a8fdbb1 Addresses the following two problems.
1) i586_bcopy() problem

There have been a number of reports that the syscons doesn't work
properly if i586_bcopy() is enabled.

The problem prevented users from installing 2.2(.1)-RELEASE.  The
symptom is that the system looks frozen during device probe or just
before the main installation menu.  The workaround was to specify the
flag 0x01 to the npx device so that i586_bcopy() is disabled.

The patch forces the syscons to call generic_bcopy() when copying
to/from the video memory, even if CPU is Pentium and i586_bcopy() is
enabled. i586_bcopy() is still called for copy operations between
non-video memory regions.

PR: kern/2277, kern/3066, kern/3107, kern/3134

2) video mode parameter table problem

The syscons reads and uses the video mode parameter table provided by
the VGA BIOS to set VGA registers when changing video mode and
modifying font data. It appears that in some VGA BIOSes the table is
not ordered as the syscons expects, and this leads to screen
corruption.

The problem prevented users from installing 2.2(.1)-RELEASE. The
symptom is the corrupt screen or strange vertical lines soon after the
kernel is loaded into memory (just after the kernel decompression).

The patch performs simplistic test and if it fails, set video_mode_ptr
to NULL so that the video mode switching won't happen.

This is an interim kludge. There should be a better way to deal with
the problem.

PR: kern/2498, conf/2775, conf/3354

Reviewed by: sos
Tested by: PR originators (not all of them, though)
1997-04-27 09:03:10 +00:00
Peter Wemm
db7df99ff1 Try and make these usermode safe, Steve beat me in finding these.. 1997-04-26 20:04:21 +00:00
Peter Wemm
e80a59970c fix & instead of && in #if statement
reorder #includes to alphabetical order

Noted by: bde
1997-04-26 19:47:59 +00:00
Peter Wemm
fbf8a6b7cb change #if 0 to #ifdef KERNEL since this is pretty important for
smp compiling.  It still leaves dset non-functional on smp kernels, but
we've been doing that all along with the private smp tree anyway.
1997-04-26 19:26:37 +00:00
Peter Wemm
73f4384dc1 Remove the curproc printing on trap/interrupt/etc. It's outlived it's
usefulness, and there were problems with it anyway.

Found by: bde
1997-04-26 19:12:03 +00:00
Steve Passe
bb625c15c9 #if'ed out the '#include "opt_smp.h"' line.
The SMP source was merged into 3.0-current last nite and this broke
the make of sbin/dset.

Should make things work for non-SMP case.

People making SMP kernels will need to edit i386/isa/isa_device.h, re-enabling
'#include "opt_smp.h"'.  People making SMP worlds will have to punt for now...
I'm thinking about the real solution, but for now the goal is to NOT break
the world!
1997-04-26 19:07:36 +00:00
Peter Wemm
c9c20622ad Back out bogus code that slipped past my read of the pre-merge diff
(Problems noted by Bruce)
1997-04-26 18:59:42 +00:00
Peter Wemm
acc7657309 Fix some SMP merge bugs (from Bruce) -
#include out of order
pccard_configure() called twice
munged tab (existing problem made worse)
1997-04-26 18:57:34 +00:00
Peter Wemm
477a642cee Man the liferafts! Here comes the long awaited SMP -> -current merge!
There are various options documented in i386/conf/LINT, there is more to
come over the next few days.

The kernel should run pretty much "as before" without the options to
activate SMP mode.

There are a handful of known "loose ends" that need to be fixed, but
have been put off since the SMP kernel is in a moderately good condition
at the moment.

This commit is the result of the tinkering and testing over the last 14
months by many people.  A special thanks to Steve Passe for implementing
the APIC code!
1997-04-26 11:46:25 +00:00
Justin T. Gibbs
539fc95753 Print out some more diagnostic information when we reject a message.
When we request sense, don't allow disconnection.  This closes a window
where we might allow an overlapped tagged and non-tagged transaction.
The correct fix is to freeze the queue for the target that requests sense
which is what will happen in the new CAM framework.
1997-04-26 05:03:18 +00:00
KATO Takenori
9ca8226735 Add new cpu type, CPU_CY486DX, which shows Cyrix 486S/DX series CPUs,
and initialization routine for those CPUs.

Tested by:	Bob Bishop <rb@gid.co.uk>
1997-04-26 04:08:54 +00:00
Bruce Evans
72fa3798b4 Removed LDADD=-lc and associated DPADD. libc would probably break
things if it were actually used.
1997-04-25 19:38:01 +00:00
Bruce Evans
a862685541 Fixed longstanding profiling bug. The frame pointer wasn't set up
for syscalls, so one frame was lost in backtraces from syscalls.
This is handled better in the kernel by using a different mcount
entry point for profiling before the frame pointer is set up.

Expand RCSID().

Use .p2align instead of the ambiguous .align.

Added idempotency ifdef.

Removed unused macros ALTENTRY(), ALTASENTRY(), ASENTRY(), _MID_ENTRY.

Cleaned up formatting.

Reviewed by:	jdp reviewed an old version
Obtained from:	parts from NetBSD
1997-04-23 19:26:04 +00:00
John Polstra
9081eec1fb Make the necessary changes so that an ELF kernel can be built. I
have successfully built, booted, and run a number of different ELF
kernel configurations, including GENERIC.  LINT also builds and
links cleanly, though I have not tried to boot it.

The impact on developers is virtually nil, except for two things.
All linker sets that might possibly be present in the kernel must be
listed in "sys/i386/i386/setdefs.h".  And all C symbols that are
also referenced from assembly language code must be listed in
"sys/i386/include/asnames.h".  It so happens that failure to do
these things will have no impact on the a.out kernel.  But it will
break the build of the ELF kernel.

The ELF bootloader works, but it is not ready to commit quite yet.
1997-04-22 06:55:47 +00:00
Kazutaka YOKOTA
29c78ed5ef Fixed typo in the set_keyboard_param().
Spotted by: Philippe Charnier@xp11.frmug.org
1997-04-22 02:04:15 +00:00
Nate Williams
a4586acb0c - Better fix for 3C589D support. Revert previous changes and add a
delay after we reset the card to allow the card to come back to life.
  It appears the newer card takes longer to reset.

Submitted by:	Samuel Lam <skl@ScalableNetwork.com>
1997-04-21 13:38:32 +00:00
Bruce Evans
4b04349ab9 Fixed the type of a timeout function and removed casts that hid the
type mismatches.  There was no problem in practice (at least on 386's).
The timeout args still get bogusly cast from int to `void *' via
caddr_t and back to int.
1997-04-20 18:02:40 +00:00
Bruce Evans
20925249e7 Fixed the type of timeout functions and removed casts that hid the
type mismatches.  mcd and scd were/are particularly bogus.  They
used a general purpose function taking 2 args for the timeout
function and fudged varargs stuff to supply the second arg for the
timeout case.  This broke `cc -mrtd'.  Bounce through a timeout
function instead.  The timeout arg still gets bogusly cast from
int to `void *' and back.
1997-04-20 17:26:55 +00:00
Bruce Evans
14da13a2f1 Fixed the type of timeout functions and removed casts that hid the
type mismatches.  Not taking an arg in sequencer_timer() broke
`cc  -mrtd'.
1997-04-20 16:54:58 +00:00
Bruce Evans
8fb722b5e1 Fixed the type of timeout functions and removed casts that hid the
type mismatches.  There was no problem in practice (at least on 386's).

Don't cast NULL in calls to timeout functions.  pcvt is fully prototyped
and doesn't support K&R.

Timeout functions take args of type `void *', so use magic numbers of
type `void *' for UPDATE_* to reduce the danger of wrong conversions.

Removed FreeBSD-pre-1.1-related TIMEOUT_FUNC_T macro.  It was especially
bogus for the pre-1.1 case.
1997-04-20 16:38:22 +00:00
Bruce Evans
5e994ca33f Fixed the type of timeout functions and removed casts that hid the
type mismatches.  Not taking an arg in scrn_timer() broke `cc -mrtd'.
1997-04-20 16:05:33 +00:00
Bruce Evans
5a837b22e5 Fixed the type of timeout functions and removed casts that hid the
type mismatches.  There was no problem in practice (at least on 386's).
1997-04-20 15:36:12 +00:00
Bruce Evans
68f7a74b48 Fixed inconsistent extern declaration of a timeout function and
removed a cast that helped hide the problem.  There was no problem
in practice (at least on 386's).
1997-04-20 15:25:33 +00:00
Bruce Evans
8bd28861d8 Fixed linting of and compilation of the gcc byte-swapping macros
properly.  Simply don't use the gcc macros if we're not gcc, and
declare prototypes for the byte-swapping functions in case the
macro versions are not used.  The previous fix was wrong and broke
libpcap, which abuses -Dlint.

Don't pollute the namespace if _POSIX_SOURCE is defined.  This is
broken - it makes almost everything in <machine/endian.h> inaccessible
if _POSIX_SOURCE is defined, yet <machine/endian.h> is not a POSIX
header.  Other systems don't do it any better.

Removed always-false `BYTE_ORDER == BIG_ENDIAN' ifdef.
Obtained from:	partly from Lite(2?) and NetBSD
1997-04-20 11:44:32 +00:00
Poul-Henning Kamp
a688c7b0ee Fix up the "hlt vector" change I made.
Reviewed by:	bde, bde, bde
1997-04-20 06:41:26 +00:00
Bruce Evans
0e4f24a34e Avoid division by 0 in check_part(). (It occurred when max_nsectors == 0.
This case is clearly an error, but we keep calling check_part() to get
diagnostics.)

Fixed nearby indentation and commenting bugs.
1997-04-19 14:14:17 +00:00
KATO Takenori
e747d90dbf Don't disable CPU cache in init_486dlc. If BIOS supports Cyrix 486,
BIOS enables CPU cache and other registers.  If BIOS does not supports
it, CPU cache is disabled at reset time.

This commit closes PR/3292.

PR:		3292
1997-04-19 05:25:19 +00:00
Bruce Evans
63e32a69f2 Don't call timeout() for DTR wakeup or busy check if the relevant timeout
is already active.  This fixes "timeout table full" panics under 100%
interrupt load and other weird conditions.
1997-04-18 18:28:09 +00:00
Justin T. Gibbs
ba5da33265 No longer use AAP for queueing SCBs to the QINFIFO.
Clean up the unexpected busfree handler.  We now look directly at the
message that might have caused the bus free to occur instead of looking
at an SCB flag.  This makes the handling more robust and also allows for
recovery actions that might cause an "unexpected busfree" to be performed
even if an SCB is not availible to "tag".  Most notably, this happens
when we don't find an SCB for a reconnecting target.
1997-04-18 16:34:36 +00:00
Kazutaka YOKOTA
03dcce7f3d Incorporate kludge/fix from `syscons' ver 1.207 and 1.209.
1) Dell Latitude XPi
This laptop has a strange, IMHO broken :-), keyboard controller which
wouldn't disable the keyboard interrupt. The kludge is to disable tty
intr. during set_keyboard(), used for changing LED and setting
typematic.

The patch also changes the function name:
    set_keyboard() -> set_keyboard_param()
Although it is a static function, the name corrides with a routine in
`syscons' and is confusing when debugging the kernel which has both
`syscons' and `pcvt' with DDB. (Suggested by Bruce)

2) doreset() bug
doreset() failed to preserve some bits in the keyboard controller's
command byte during keyboard reset. This bug may put some keyboard
controllers in old motherboards (386 and 486) in a strange state,
resulting in complete keyboard lockup or random key input.

Reviewed by:	Joerg
1997-04-18 12:06:34 +00:00
Nate Williams
9fdb458452 Quick and dirty attempt to get the zp device to work with the 3c589D.
Increase the delay in read_eeprom_data() by two orders of magnitude.

> A better fix would be to make read_eeprom_data() call
> f_is_eeprom_busy() after the DELAY().

Submitted by:	Samuel Lam <skl@ScalableNetwork.com>
1997-04-17 14:33:11 +00:00
Andrey A. Chernov
eff7ae0f7b Comment out rawcb, it is not used / not present anymore 1997-04-16 15:09:37 +00:00
KATO Takenori
03245f094d Use reset port before clearing page table in cpu_reset if PC98 is
defined.  Clearing page table could hang some new PC-98.
1997-04-16 12:11:37 +00:00
Bruce Evans
06e33296dd Only do indirections in ENTRY() if _ARCH_INDIRECT is defined. 1997-04-15 14:06:34 +00:00
Poul-Henning Kamp
3845d1185d Forget all about APM. Instead of "hlt" call through a vector which
APM can then fiddle with.  Default for the vector is to "htl; ret"
1997-04-14 18:12:05 +00:00
Jordan K. Hubbard
0863cbc199 YAMF22 1997-04-14 16:47:38 +00:00
Bruce Evans
da3df630ac Use the same IOPL check as in syscons.
Reviewed by:	pst, joerg
1997-04-14 15:54:39 +00:00
Bruce Evans
58611a61ed Fixed printing of registers in dbflalt_handler(). The registers
were always in a tss; that tss just changed from the one in the
pcb to common_tss (who knows where it was when there was no curpcb?).
Not using the pcb also fixed the problem that there is no pcb in
idle(), so we now always get useful register values.
1997-04-14 13:52:52 +00:00
Justin T. Gibbs
085059c3ea Be more careful about how SCBs are cleaned up during error recovery.
Add some more diagnostic information to timeouts.
1997-04-14 02:27:50 +00:00
Justin T. Gibbs
3db6c00e72 New name for the EtherExpress register file. 1997-04-14 00:40:04 +00:00
Justin T. Gibbs
5a2037874f Add Intel EtherExpress16 support into the ie driver, removing the need
for the ix driver.

Add a shutdown hook that resets the etherexpress so that Windoze can find
the card after a warm boot.

Submitted by: Aaron Smith <aaron@tau.veritas.com>
Obtained From: NetBSD
1997-04-14 00:37:53 +00:00
Justin T. Gibbs
c1aa7eb5f4 GENERIC, LINT:
Add an ie entry that corresponds to the location the old ix entry used
to probe and kill the ix entry.

files.i386:
Remove entries for the ix driver.
1997-04-14 00:35:25 +00:00
Bruce Evans
d12ee02d12 Don't forget to set `runtime' in fork_trampoline(). The time slice before
switching to a child for the first time was being counted twice.  I think
this only affected unimportant statistics.

Simplified arg handling in fork_trampoline().  splz() doesn't actually
smash the registers of interest.
1997-04-13 16:58:08 +00:00
John Dyson
f39aebddfc Decrease the amount of memory allocated for bouncing. This will
allow large systems to boot successfully with bounce buffers compiled
in.  We are now limiting bounce space to 512K.  The 8MB allocated for
a 512MB system is very bogus -- and that is now fixed.
1997-04-13 04:07:24 +00:00
John Dyson
aec17d5078 The pmap code was too generous in the allocation of kva space for
the pv entries.  This problem has become obvious due to the increase
in the size of the pv entries.  We need to create a more intelligent
policy for pv entry management eventually.
Submitted by:	David Greenman <dg@freebsd.org>
1997-04-13 03:35:30 +00:00
John Dyson
5856e12e69 Fully implement vfork. Vfork is now much much faster than even our
fork. (On my machine, fork is about 240usecs, vfork is 78usecs.)

Implement rfork(!RFPROC !RFMEM), which allows a thread to divorce its memory
	from the other threads of a group.

Implement rfork(!RFPROC RFCFDG), which closes all file descriptors, eliminating
	possible existing shares with other threads/processes.

Implement rfork(!RFPROC RFFDG), which divorces the file descriptors for a
	thread from the rest of the group.

Fix the case where a thread does an exec.  It is almost nonsense for a thread
	to modify the other threads address space by an exec, so we
	now automatically divorce the address space before modifying it.
1997-04-13 01:48:35 +00:00
Justin T. Gibbs
f91ddb3f3c Drop the number of allowed tags back down to 8. Pluto uses a higher value
which mistakenly got committed.

Fix two bugs in the ahc_reset_device code:
	Limit search for SCBs to process to those that are active and
	are not queued for done processing.

	It's okay for an SCB to not have a waiting next SCB.
1997-04-10 19:14:58 +00:00
Bruce Evans
1a2efb7550 Removed unused or apparently-unused #includes, especially of the
deprecated header <sys/dir.h>.
1997-04-10 14:35:32 +00:00
Kazutaka YOKOTA
d0b8731a66 Preserve some bits in the keyboard controller command byte when
resetting the keyboard.

Well, sorry, this bug is totally my fault. I DID intend to preserve
them, but somehow I failed.

The bug puts some old keyboard controllers in a strange state,
resulting in keyboard freeze or random key input.

The fix closes PR kern/3067.
1997-04-10 12:26:50 +00:00
Bruce Evans
7077d3c008 Regenerate (removed unused #includes from ibcs2*_sysent.c). 1997-04-09 15:46:25 +00:00
Bruce Evans
3892bcbc70 Removed unused #includes. 1997-04-09 15:44:47 +00:00
Bruce Evans
fb36e0817c Regenerate (removed unused #includes in linux_sysent.c). 1997-04-09 15:37:04 +00:00
Bruce Evans
cfb1738cb3 Removed unused #includes. 1997-04-09 15:34:09 +00:00
Stefan Eßer
5c03639065 Mask out revision register in consistency test of class register. 1997-04-09 11:34:50 +00:00
Stefan Eßer
6df09d1e0b Fix spelling of align and interrupt in comments. 1997-04-09 09:16:27 +00:00
Stefan Eßer
b4b8847934 Fix consistency test to not fail on pre PCI 2.0 motherboards 1997-04-09 09:15:03 +00:00
KATO Takenori
5eba6c71a9 Enables lnc driver on PC-98 to support NEC SV-98/2-B06 PCI card.
Cascade mode of DMA is disabled when PC98 is defined because PC-98
doesn't support it.
1997-04-08 10:33:24 +00:00
Justin T. Gibbs
8d94b804a1 Fix an infinite loop caused by calling ahc_run_done queue while the
driver is waiting a bus settle delay.  There should really be a facility
for the controller driver to "freeze" its queue during recovery operations
which would make all of this gymnastics unnecessary.
1997-04-07 18:32:47 +00:00
Peter Wemm
e2d8771131 Lower the spl() of the new process from splhigh() right away, since
nothing else will lower it until either much later, or never(?) for
kernel processes.

This basically re-fixes what Bruce fixed in rev 1.29 of kern_fork.c,
which was broken again now the child does not execute back up the fork()
calling tree.
1997-04-07 11:42:09 +00:00
Peter Wemm
a0c3795f19 Use UPAGES_HOLE instead of UPAGES in case it's changed some time.
Rename the PT* index KSTK* #defines to UMAX*, since we don't have a kernel
stack there any more..

These are used to calculate VM_MAXUSER_ADDRESS and USRSTACK, and really
do not want to be changed with UPAGES since BSD/OS 2.x binary compatability
depends on it.
1997-04-07 09:30:22 +00:00
Peter Wemm
de871ab682 Define UPAGES_HOLE at 2 (same as current UPAGES) in case UPAGES changes
later.  This is used to calculate the top of user address space.
1997-04-07 09:27:21 +00:00
Peter Wemm
e8fa13fdd9 Clean up some dead wood. Kill the page table page for mapping the
proc0/idlePTD/bootstrap stack into place in user space.  We save 4K.
Remove p0upa, it is now unneeded.
1997-04-07 08:38:19 +00:00
Peter Wemm
a2a1c95c10 The biggie: Get rid of the UPAGES from the top of the per-process address
space. (!)

Have each process use the kernel stack and pcb in the kvm space.  Since
the stacks are at a different address, we cannot copy the stack at fork()
and allow the child to return up through the function call tree to return
to user mode - create a new execution context and have the new process
begin executing from cpu_switch() and go to user mode directly.
In theory this should speed up fork a bit.

Context switch the tss_esp0 pointer in the common tss.  This is a lot
simpler since than swithching the gdt[GPROC0_SEL].sd.sd_base pointer
to each process's tss since the esp0 pointer is a 32 bit pointer, and the
sd_base setting is split into three different bit sections at non-aligned
boundaries and requires a lot of twiddling to reset.

The 8K of memory at the top of the process space is now empty, and unmapped
(and unmappable, it's higher than VM_MAXUSER_ADDRESS).

Simplity the pmap code to manage process contexts, we no longer have to
double map the UPAGES, this simplifies and should measuably speed up fork().

The following parts came from John Dyson:

Set PG_G on the UPAGES that are now in kernel context, and invalidate
them when swapping them out.

Move the upages object (upobj) from the vmspace to the proc structure.

Now that the UPAGES (pcb and kernel stack) are out of user space, make
rfork(..RFMEM..) do what was intended by sharing the vmspace
entirely via reference counting rather than simply inheriting the mappings.
1997-04-07 07:16:06 +00:00
Peter Wemm
271b264e4c No longer use an i386tss as the basis of our pcb - it wasn't particularly
convenient and makes life difficult for my next commit.  We still need
an i386tss to point to for the tss slot in the gdt, so we use a common
tss shared between all processes.

Note that this is going to break debugging until this series of commits
is finished.  core dumps will change again too. :-(  we really need
a more modern core dump format that doesn't depend on the pcb/upages.

This change makes VM86 mode harder, but the following commits will remove
a lot of constraints for the VM86 system, including the possibility of
extending the pcb for an IO port map etc.

Obtained from: bde
1997-04-07 06:45:18 +00:00
Bruce Evans
9546766a1b Documented new serial console flags.
Removed dead serial console options.

Reorganised sio and serial console options.

Added undocumented options CLUSTERDEBUG and NPX_DEBUG.
1997-04-07 01:26:34 +00:00
Doug Rabson
2f29db8883 Fixes to ibcs2_getdents, including using struct dirent instead of
struct direct, not using UFS' definition of DIRBLKSIZ, using directory
seek cookies to make reading non-UFS directories reliable
(e.g. cd9660, ext2fs).

A special thanks to Robert Eckardt for providing an ISC binary of GNU
ls so that I could test these changes.
1997-04-06 14:10:50 +00:00
Stephen McKay
bc19f8a39e Prevent wedging of the stat clock because of missed interrupts.
This should cure the "alternate system clock has died!" problem.

Discussed with: bde, joerg
1997-04-06 13:25:48 +00:00
Peter Dufault
0ddf9be1f0 Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types.  Maintain
the current behavior for the external (e.g., modstat) name for DEV,
EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only
#name.  This is a candidate for change and I vote just the name without
the "_mod".

Change the DISPATCH macro to MOD_DISPATCH for consistency with the
other macros.

Add an LKM_ANON #define to eliminate the magic -1 and associated
signed/unsigned warnings.

Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.

Change source in tree to use the new interface.

Reviewed by:	Bruce Evans
1997-04-06 11:14:13 +00:00
Doug Rabson
c9e191b82a Remove dependancy on UFS' DIRBLKSIZ definition.
2.2 candidate.

Submitted by:	bde
1997-04-06 10:10:50 +00:00
John Dyson
a04c970a7a Fix the gdb executable modify problem. Thanks to the detective work
by Alan Cox <alc@cs.rice.edu>, and his description of the problem.

The bug was primarily in procfs_mem, but the mistake likely happened
due to the lack of vm system support for the operation.  I added
better support for selective marking of page dirty flags so that
vm_map_pageable(wiring) will not cause this problem again.

The code in procfs_mem is now less bogus (but maybe still a little
so.)
1997-04-06 02:29:45 +00:00
Justin T. Gibbs
844b7c2d86 Fix a bug in the selection timeout handler that was introduced when the
selection loop was merged with the poll_for_work loop.  We cannot assume
that the SCB for the selection timeout is the current SCB.  Instead we
must look at the SCB at the head of the waiting for selection list.

This fixes part of a problem reported by David Malone, but does not explain
why he was getting selection timeouts in the first place.
1997-04-05 21:41:13 +00:00
Doug Rabson
d41979a063 Fix linux_getdents so that it can cope with filesystems which translate
the directory format (ext2fs, cd9660).  For these filesystems, it must use
cookies to find the correct offset to use for subsequent reads.  Without it,
linux /bin/ls tends to loop re-reading the same block over and over again.

2.2 candidate.
1997-04-05 14:50:56 +00:00
Bruce Evans
8e71151378 Moved COMCONSOLE, CONADDR and CONUNIT to defunct options. 1997-04-05 13:21:08 +00:00
Bruce Evans
24bb2ffb15 Removed defaults for dead options CONADDR and CONUNIT. 1997-04-05 13:15:50 +00:00
Bruce Evans
de09b61a0c Use device flags instead of options for serial console configuration
(see LINT).  There is a new low-level console type that is more suitable
for use with gdb-remote.

Fixed setting of speed at probe time for the serial console (if any).

Reviewed by:	dfr
1997-04-05 13:11:27 +00:00
Justin T. Gibbs
0f3a99aade Now that we use AAP, we have to explicitly unpause the sequencer when
queueing an abort SCB.
1997-04-04 19:36:04 +00:00
Justin T. Gibbs
f98b4a3bdc NOOP commit to correct the comment for the last commit:
Bump the timeout for an "ordered tag" recovery action from 1 to 5 seconds.

Remove the multiple timeout panic.  Its very easy to get into a situation
where a timedout command will time out a second time even though the
recovery code is working fine.  A good example is:

1) Command times out during recovery
2) reset the timeout for the command
3) Recovery actions complete and all transactions are requeued
4) second timeout fires off which puts us back into recovery bogusly
5) another transaction that timedout once during the first recovery action
   times out causing the panic.

In essence, the correct solution to the problem is to put every transaction
back up into the work queue and have their timeout handling done in the same
way that all commands are handled.  The CAM layer makes this easy, so it
will have to wait until then.
1997-04-04 04:21:43 +00:00
Justin T. Gibbs
5ea0ae111d When not using SCB paging, we can always directly index the SCB of interest
either by looking it up in the array of pending, per target, untagged
transactions, or by using the tag value passed in during the identify.  The
old code only direct indexed for tagged transactions.  This makes the
"findSCB" routine only necessary when SCB paging is enabled, so appropriately
conditionalize it.  This greatly simplifies the non SCB paging code flow.
1997-04-04 04:09:29 +00:00
Brian Somers
42e9ba47f8 Make the default VERASE key the <-- key and remove root's
`stty's.  'nuff said.

Inventor:	joerg@FreeBSD.org
Reviewer:	sos@FreeBSD.org
1997-04-03 21:42:42 +00:00
Poul-Henning Kamp
8520e7cbc1 If flag 0x4000 (Sleephack) is defined, assume that the disk is sleeping
if all registers are 0xff.

This allows me to run with flags 0xc0ff on my IBM-DMCA-21440 disk, which
gives 5MB/sec sequential read :-)

If you have a laptop, try adding flag 0x4000 to your disk, and tell me if
it makes any difference for you.
1997-04-03 09:43:50 +00:00
Justin T. Gibbs
d98667394d make obj before building the aic7xxx assembler. This puts the object
files in the right place.

The clean rule still isn't quite right since currently config doesn't
allow the specification of arbitrary clean rules.
1997-04-03 05:57:16 +00:00
Steve Passe
938401213d PAL support: magic numbers moved into format_params structure.
Revised AFC interface.
Fixed DMA_PROG_ALLOC size misdefinition.

Submitted by:	richard@cogsci.ed.ac.uk (Richard Tobin)
1997-04-02 01:48:39 +00:00
Bruce Evans
12f2987754 Removed a wrong comment of mine.
Removed unused #includes.
1997-04-01 16:22:31 +00:00
Bruce Evans
cc289dff53 Fixed gratuitous ANSIisms.
Removed unused declarations.
1997-04-01 16:13:31 +00:00
Bruce Evans
3f39dbc52d Removed potentially harmful garbage <vm/lock.h> and fixed bogus
use of it.  It was actually harmless because the use was null due
to fortuitous include orders and identical (wrong) idempotency
macros.
1997-04-01 08:39:07 +00:00
David Greenman
9caaadb63a Changed the way that the exec image header is read to be filesystem-
centric rather than VM-centric to fix a problem with errors not being
detectable when the header is read.
Killed exech_map as a result of these changes.
There appears to be no performance difference with this change.
1997-03-31 11:11:26 +00:00
Joerg Wunsch
514e9fd6b8 Implement the `detach' command for remote GDB. It gets you back at DDB. 1997-03-30 16:03:00 +00:00
Poul-Henning Kamp
015056ae61 Fix embarrasing typo that survived because I applied the wrong patch-
file.
Noticed by:	Eric Jones <ejon@psa.pencom.com>
1997-03-30 09:08:00 +00:00
Peter Wemm
bf6c0d31b7 Regenerate (include file changes, stray blank lines (cosmetic),
and a syscall vector was out of sync with it's .master file)
1997-03-29 13:15:23 +00:00
Peter Wemm
bf07edd9e3 Renerate (some include files were changed) 1997-03-29 13:12:46 +00:00
Peter Wemm
e58a2e4c46 Be consistant with the other syscall makefile's handling of the default
target (ie: don't do anything accidently)
1997-03-29 11:17:26 +00:00
Peter Wemm
4a37393e95 Add a Makefile to build all three syscall tables 1997-03-29 11:15:09 +00:00
Poul-Henning Kamp
3d4d8fe94d Sanitize APM a bit. Convert various #ifdef to id_flags instead.
You may want to add "flags 0x31" to apm0 if you have a lousy
implementation.  Read LINT.
1997-03-29 11:07:12 +00:00
Peter Wemm
d30ea4f53b Fix the warning when compiling the SYSINIT hook due to function types. 1997-03-29 10:50:27 +00:00
Peter Wemm
2b81b1431e Forgot $Id$, break a long line 1997-03-29 10:48:49 +00:00
Peter Wemm
64f873e1f3 Add a Makefile for regenerating the syscall tables 1997-03-29 10:45:39 +00:00
Bruce Evans
83eab616cf Don't keep cpu interrupts enabled during the lookup in vm_page_zero_idle().
Lookup isn't done every time the system goes idle now, but it can still
take > 1800 instructions in the worst case, so if cpu interrupts are kept
disabled then it might lose 20 characters of sio input at 115200 bps.

Fixed style in vm_page_zero_idle().
1997-03-29 04:35:26 +00:00
Poul-Henning Kamp
0a07eccfdd Try to talk to the APM BIOS with version 1.2 if possible. 1997-03-28 18:38:19 +00:00
Bruce Evans
b8fa61d129 Added a setjmp() and a longjmp() so that an unexpected trap inside
ddb isn't necessarily fatal.  You can now do silly things like
`call vprint' and `show map' without losing control.
1997-03-28 12:56:07 +00:00
Bruce Evans
b825df51c6 Backed out rev.1.5. if %cs is bad, %eip may be bad, but this is no longer
fatal.
1997-03-28 12:46:52 +00:00
Joerg Wunsch
403d7829ac Something long overdue: compile inb() and outb() into the kernel as
functions if DDB is available.  The remaining occurences are usually
only inlined and thus not available in DDB.

I'm sure Bruce will have 23 additions to these 30 lines of code, but
at least it's a starting point. ;-)
1997-03-28 12:37:44 +00:00
Kazutaka YOKOTA
31774f6d83 Interim patch/kludge for keyboard lock-up when `kbdcontrol' tries to
change typematic rate, or the X server (XFree86 or Accelerated X)
starts up.

So far, there have been two independent reports from Dell Latitude XPi
notebook/laptop owners. The Latitude seems to be the only system which
suffers from this problem.  (I don't know the problem is with the
entire Latitude line or with only some Latitude models) No problem
report has been heard about other systems (I certainly cannot
reproduce the problem in my -current and 2.2 systems).

In 3.0-CURRENT, 2.2-RELEASE and 2.2-GAMMA-970310, when programming the
keyboard LED/repeat-rate, `set_keyboard()' in `syscons' tells the
keyboard controller not to generate keyboard interrupt (IRQ1) and then
enable tty interrupts, expecting the keyboard interrupt doesn't occur.

It appears that somehow Latitude's keyboard controller still generates
the keyboard interrupt thereafter, and `set_keyboard()' doesn't see
the return code from the keyboard because it is consumed by the
keyboard interrupt handler.

The patch entirely disables tty interrupts while setting LED and
typematic rate in `set_keyboard()', making the routine behave more
like the previous versions of `syscons' (versions in 2.1.X and
2.2-ALPHA, -BETA, and some -GAMMAs). The reporter said this patch
eliminated the problem.

(I also found another typo/bug, but the reporter and I found that it
wasn't the cause of the problem...)

This should go into RELENG_2_2.
1997-03-28 10:11:24 +00:00
Andrey A. Chernov
e5df661c83 Remove recently commited support for iobase == -2 ("port none")
is is really probe routine task (return -1 for no ports)
1997-03-28 01:02:17 +00:00
Andrey A. Chernov
5fba67d120 Add "conflicts" to sbmidi0 since configured irq passed back to isa
and conflict with sb0 irq.

NOTE: existen configurations require "conflicts" adding to sbmidi0 now
1997-03-26 17:46:03 +00:00
Andrey A. Chernov
5c0c82997e Check sb0 configured in probe routine first
Pass configured irq back to isa
1997-03-26 17:41:16 +00:00
Andrey A. Chernov
348a8a6aab Add "conflicts" to sbxvi0 since all information now passed to isa
and conflict with sb0 happens.

NOTE: it affects existen configurations, add "conflicts" to sbxvi0 line
if you see probe error
1997-03-26 17:20:24 +00:00
Andrey A. Chernov
cc13c79696 Pass configured irq and ports number back to isa 1997-03-26 17:14:21 +00:00
Andrey A. Chernov
7ee2669b4c Allow low level probe routine pass configured information back to isa 1997-03-26 17:12:31 +00:00
Andrey A. Chernov
add8f4123b Don't trick with opl0 address since we have conflicts keyword 1997-03-26 16:10:43 +00:00
Andrey A. Chernov
88bbadf749 Return ports number in probe now 1997-03-26 16:07:20 +00:00
Andrey A. Chernov
2a64e5d6b8 Return ports number in probe now 1997-03-26 15:57:08 +00:00
Andrey A. Chernov
fb04706fc7 Fix probe wrapper to pass ports number from low level probe 1997-03-26 15:56:21 +00:00
Mike Pritchard
89b37cfe4b Change sigreturn() to return EFAULT if it is passed an
address outside of the process's address space.
Now it matches its man page :-).  Closes PR# 2682.

Discussed with: bde
Submitted by:	Jonathan Lemon <jlemon@americantv.com>
1997-03-25 23:43:01 +00:00
Andrey A. Chernov
588a8fcc98 Use FreeBSD-style attach message 1997-03-25 04:16:25 +00:00
Steve Passe
0e23e1a104 added support for EEProms writing/reading. 1997-03-25 04:11:13 +00:00
Andrey A. Chernov
0baa5ad9b2 Use port? for sbxvi0 since it is autoconfigured from sb0
Change sb0 irq from 7 to 5 since 5 is Creative default now.
1997-03-25 03:38:33 +00:00
Andrey A. Chernov
8c41947662 Copy io_base configuration address from sb config.
This change is cosmetique.
1997-03-25 03:32:31 +00:00
Andrey A. Chernov
e4960ae4f5 Replace more verbose "at <not configured>" with less verbose "at ?",
we don't need much attention here, because this diagnostic printed first
and then card will be configured.
1997-03-25 03:29:40 +00:00
Andrey A. Chernov
70b57d05df Follow config intention for iobase:
print "at <not configured>" for iobase == -1 (autodetect not happens)
and not print anything for iobase == -2 (none)
Old code treat this two special config numbers as big port numbers.
1997-03-25 03:13:05 +00:00
David Nugent
117ffcde76 Remove unneeded prototype (and warning) for stlintr(). 1997-03-24 21:38:51 +00:00
Justin T. Gibbs
c2df2e4bc2 Fix a fencepost error in ahc_find_scb that could cause us to wrongfully
find an SCB still down on the card that was paged out.  This only affects
error recovery.

Submitted by: Daniel M. Eischen <deischen@iworks.InterWorks.org>
1997-03-24 17:42:25 +00:00
Bruce Evans
afd2f6c218 Don't include <sys/ioctl.h> in the kernel. Stage 5: include
<sys/ioctl_compat.h> and sometimes <sys/filio.h> instead of
<sys/ioctl.h> in tty-related files.  <sys/ttycom.h> is still
usually imported bogusly via <sys/termios.h>.
1997-03-24 12:03:06 +00:00
Bruce Evans
2098241054 Don't include <sys/ioctl.h> in the kernel. Stage 4: include
<sys/ttycom.h> and sometimes <sys/filio.h> instead of <sys/ioctl.h>
in miscellaneous files.  Most of these files have nothing to do
with ttys but need to include <sys/ttycom.h> to get the definitions
of TIOC[SG]PGRP which are (ab)used to convert F[SG]ETOWN fcntls into
ioctls.
1997-03-24 11:52:29 +00:00
Bruce Evans
71455815cc Don't include <sys/ioctl.h> in the kernel. Stage 3: include
<sys/filio.h> instead of <sys/ioctl.h> in non-network non-tty files.
1997-03-24 11:37:53 +00:00
Bruce Evans
51a534883a Don't include <sys/ioctl.h> in the kernel. Stage 2: include
<sys/sockio.h> instead of <sys/ioctl.h> in network files.
1997-03-24 11:33:46 +00:00
Bruce Evans
fce002fdef Don't include <sys/ioctl.h> in the kernel. Stage 1: don't include
it when it is not used.  In most cases, the reasons for including it
went away when the special ioctl headers became self-sufficient.
1997-03-24 11:25:10 +00:00
Bruce Evans
cb07fc9803 Don't default to (wrong) SCO definitions for _IOR() etc. if <sys/ioctl.h>
doesn't happen to be included before this header.

This header was missed in previous cleanups because it didn't include
<sys/ioctl.h> or <sys/ioccom.h>.  Clean it now:
- #include <sys/types.h> since it is necessary to make the header self-
  sufficient (there are a couple of u_char's).
- uniformized idempotency ifdef.  Copied the style in the 4.4Lite
  ioctl headers.
1997-03-24 11:07:52 +00:00
David Nugent
e825ea20dd Make stlintr() public to allow correct linkage. 1997-03-24 07:25:31 +00:00
KATO Takenori
5fa4a05818 Fix typo.
Submitted by:	Bruce Evans <bde@zeta.org.au>
1997-03-24 07:23:05 +00:00
KATO Takenori
507cf9c96e Merge PC-98 code int i386/isa/ft.c. 1997-03-24 07:20:35 +00:00
Justin T. Gibbs
7d951713e8 Fix a nasty bug that meant a QUEUE_FULL status would result in a lost
SCB.  This is probably a main reason for the recent reports of timeouts.
1997-03-24 05:05:18 +00:00
KATO Takenori
56be183376 Created new section `CPU OPTIONS'. CPU classes and math emulator are
moved to there.  Options for CPU feature is also described there.
1997-03-23 11:08:28 +00:00
Bruce Evans
6617929964 Removed nested #includes of <scsi/scsi_debug.h> and <scsi/scsi_driver.h>
from <scsi/scsiconf.h> and fixed everything that depended on them.
1997-03-23 06:33:55 +00:00
Bruce Evans
db0ac821f2 Removed nested #includes of <scsi/scsi_debug.h> and <scsi/scsi_driver.h>
from <scsi/scsiconf.h> and fixed everything that depended on them.
1997-03-23 06:26:47 +00:00
Bruce Evans
08febfa741 Removed nested #include of <sys/conf.h> from <scsi/scsi_driver.h>
and fixed everything that depended on getting it from the wrong
place.  Most of the broken things actually only depended on getting
the declaration of their interrupt handler from "ioconf.h".
1997-03-23 04:40:00 +00:00
Bruce Evans
3ac4d1ef0c Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined.
Fixed everything that depended on getting fcntl.h stuff from the wrong
place.  Most things don't depend on file.h stuff at all.
1997-03-23 03:37:54 +00:00
KATO Takenori
a8e282d6c3 Oops, I forgot to `cvs add'. This file is a part of new CPU
identification and initialization routines.
1997-03-22 19:00:36 +00:00
KATO Takenori
4c024bbdf8 Improved CPU identification and initialization routines. This
supports All Cyrix CPUs, IBM Blue Lightning CPU and NexGen (now AMD)
Nx586 CPU, and initialize special registers of Cyrix CPU and msr of
IBM Blue Lightning CPU.

If revision of Cyrix 6x86 CPU < 2.7, CPU cache is enabled in
write-through mode.  This can be disabled by kernel configuration
options.

Reviewed by:	Bruce Evans <bde@freebsd.org> and
            	Jordan K. Hubbard <jkh@freebsd.org>
1997-03-22 18:54:54 +00:00
Bruce Evans
3c81694426 Fixed some invalid (non-atomic) accesses to `time', mostly ones of the
form `tv = time'.  Use a new function gettime().  The current version
just forces atomicicity without fixing precision or efficiency bugs.
Simplified some related valid accesses by using the central function.
1997-03-22 06:53:45 +00:00
John Dyson
8e56e56134 Decrease the latency/overhead in the prezero code when there is
an adequate number of prezeroed pages.
1997-03-22 04:28:16 +00:00
Steve Passe
d830eb7d9f Submitted by: Michael Petry <petry@netwolf.NetMasters.com>
Michael submitted code to activate the audio muxes.

fsmp:
 extended those changes for different boards.
 auto-detection of board types.
 auto-detection of tuner types.
 auto-detection of stereo option
1997-03-21 17:29:54 +00:00
Mike Pritchard
35846a8163 Typo police. 1997-03-20 16:33:15 +00:00
Steve Passe
535341aacb additions for table-driven frequency calculation.
addition of colorbar ioctl.
1997-03-19 19:08:31 +00:00
David E. O'Brien
c85cfdb229 typo (nthe --> the) 1997-03-19 02:59:02 +00:00
Nate Williams
55e1a05578 Don't try to lint the gcc extension byte-swapping macros.
Submitted by:	Eivind Eklund <eivind@dimaga.com>
1997-03-17 00:51:51 +00:00
Bruce Evans
54c4d30615 Fixed broken line continuation in the previous revision. Config apparently
has buggy backslash-newline handling.  Avoid it by using whitespace before
backslash-newline.
1997-03-16 17:25:53 +00:00
Steve Passe
d380dd6d8e patches for bt848 specific hue/bright/contrast/satu/satv. 1997-03-16 07:40:01 +00:00
Justin T. Gibbs
f9380a619e Adapt to some changes in the register definitions. Clear the selection
enable in SCSISEQ during error recovery to deal with the way the
sequencer leaves selections enabled now.  Add code to perform "patching"
during sequencer program download.

Spelling fixes obtained from NetBSD.
1997-03-16 07:12:07 +00:00
Justin T. Gibbs
25f864c494 The register definition file is now in the compile directory. 1997-03-16 07:09:32 +00:00
Justin T. Gibbs
8733b9a7ca Adapt build rules to new aic7xxx seqeuncer assembler. 1997-03-16 07:09:01 +00:00
Bruce Evans
c24b67b188 Don't attempt to read past EOF.
Saved enough bytes to make room for this bloat (testing poff < inode.i_size
takes 56 bytes!) by copying fs to a local variable.
1997-03-15 16:49:51 +00:00
Bruce Evans
25292acb24 Updated comment about npx0.
Added obsolete option GATEWAY so that kern_opt.c gets tested.

Added undocumented options LOCKF_DEBUG and SIMPLELOCK_DEBUG so
that these options get tested.  The addition of LOCKF_DEBUG shows
that all of kern/kern_lockf.c shouldn't have been moved from ufs.
The debugging parts are very fs-dependent.
1997-03-13 19:23:27 +00:00
Bruce Evans
a92a5c234e Quoted CMD640. It's still missing from options.i386.
Removed stale comment saying that npx0 is mandatory.
1997-03-13 19:03:58 +00:00
Joerg Wunsch
5cf816c239 Various stylistic improvements regarding num_eisa_slots & co.:
. properly declare the variable in in a .h file, as opposed to
  using a private extern declaration in userconfig.c;
. move the definition of EISA_SLOTS and therefore the inclusion of
  opt_eisa.h into eisaconf.c.
1997-03-13 18:04:05 +00:00
David Nugent
4511a3a921 Submitted by: Greg Ungerer <gerg@stallion.oz.au>
Update to version 1.0.0 of stallion.c from author.
1997-03-13 04:13:45 +00:00
David Nugent
1f77b941e5 Submitted by: Greg Ungerer <gerg@stallion.oz.au>
Update istallion driver to version 1.0.0 from author.
1997-03-13 03:51:25 +00:00
KATO Takenori
242b8c5441 Change #ifdef FreeBSD' to #ifdef __FreeBSD__'.
Submitted by:	H. Nokubi <h-nokubi@nmit.mt.nec.co.jp>
1997-03-13 02:10:21 +00:00
Stefan Eßer
09d5def9ce Activate CMD640 workaround 1997-03-12 19:59:58 +00:00
Stefan Eßer
2928e6b5fd Add option CMD640 which is required to use both channels of that
EIDE chip
1997-03-12 19:11:59 +00:00
Bruce Evans
051fc6fab1 Fixed setting of default kernel name when there is no boot.config file.
Didn't fix a more serious problem when boot.config is empty - read()
can't handle empty files.

Reported by:	Chris Timmons <skynyrd@opus.cts.cwu.edu>
1997-03-12 18:48:31 +00:00
Joerg Wunsch
1b0d314332 Since i don't see that anybody is implementing a more correct EISA
probing anytime soon, make EISA_SLOTS a fully supported option.  It's
required for the HP NetServer LC series machines.

Next stop: make dset(8) aware of it as well.
1997-03-12 17:41:35 +00:00
Stefan Eßer
e93e9e7392 Add support for the buggy CMD640B PCI EIDE controller chip, which
can't perform overlapping commands on both of its channels.

To enable the CMD640B work-around, the kernel must be compiled with
"options CMD640". Without that option there should be no difference
in the code produced compared to the previous revision of wd.c.

Submitted by:	Wolfgang Helbig <helbig@ba-stuttgart.de>
1997-03-11 23:17:28 +00:00
Mike Smith
169b2e51e3 Avoid double-s when #conflicts drops from 10 to 9. 1997-03-11 07:11:46 +00:00
Poul-Henning Kamp
fdc58e30da Add char#80 xdcp, assigned to Chris Ficklin <chris@serengeti.com> 1997-03-10 20:25:45 +00:00
Mark Murray
a30c77e886 Move this files* entry for the Brooktree TV driver toi the right 'files*'. 1997-03-10 17:55:49 +00:00
Mark Murray
51e053d6cc Initial import of the Brooktree PCI-TV drivers. I have not tested
these, they may not even compile. I am importing them on behalf
of the submitters.
Submitted by:	amancio, smp
1997-03-10 06:38:26 +00:00
KATO Takenori
d025bca112 Makefile generates boths IBM-PC and PC-98 version of object code in
apm_init.inc.  The PC-98 version of object is included in `#ifdef
PC98'.

Pointed-out by:	URATA Shuichiro <s-urata@nmit.tmg.nec.co.jp>
1997-03-09 16:46:05 +00:00
KATO Takenori
c8ac925d54 Added PC-98 specific function to get battery status.
Submitted by:	URATA Shuichiro <s-urata@nmit.tmg.nec.co.jp>
1997-03-09 16:40:13 +00:00
Bruce Evans
13a44161a2 Moved userland assembler macros from <machine/asmacros.h> to
<machine/asm.h>.
1997-03-09 13:57:33 +00:00
Bruce Evans
644ba7e84e Cloned src/lib/libc/i386/DEFS.h to create <machine/asm.h> for the i386.
The former file was too hard to get at from other parts of the src tree
and will go away.
1997-03-09 10:39:15 +00:00
Kazutaka YOKOTA
d36dc5e36b Made set_controller_command_byte() less verbose. It used to print a
debug message whenever one of lock keys were pressed, if the system
was started with the `-v' option.

Removed a couple of lines of dead code too.
1997-03-07 10:22:55 +00:00
Joerg Wunsch
e843ad34c1 Fix a bogon in pcvt that caused a characterset designation to not take
effect immediately, but required a following (normally redundant) G0
into GL mapping.  This adds one layer of indirection (thus might make it
slower), but fixes the broken box character drawing in pcvt.

Hellmuth and Bruce are unfortunately too busy too review this right now,
but i wanna have it in 2.2 since it has often been asked in the past.
1997-03-07 08:56:00 +00:00
Joerg Wunsch
f9ba24beed Fix the new (kbdio) keyboard layer to correctly work if PCVT_SCANSET == 2
even early in the boot process (boot -c or -d).

Submitted by:	yokota@zodiac.mech.utsunomiya-u.ac.jp (Kazutaka YOKOTA)
1997-03-07 08:53:16 +00:00
Joerg Wunsch
8a973ca81c Move pcvt towards using kbdio (finally!).
Warning: this won't work yet with PCVT_SCANSET=2 along in early
console mode (boot -c, or boot -d).

A big thanks to Kazutaka, and a word of apologies for delaying the
review for that long time...

Submitted by:	yokota@zodiac.mech.utsunomiya-u.ac.jp (Kazutaka YOKOTA)
1997-03-06 22:34:24 +00:00
Stefan Eßer
81cf5d7aae improve pcibus_check: Only assume PCI if at least one PCI to anything bridge
on bus 0.
This fixes problems with EISA-only systems mistakenly being assumed to support PCI.
1997-03-05 20:52:00 +00:00
Bruce Evans
a5c1768dd5 Made FPU stuff conditional on npx as well as I586_CPU. 1997-03-05 16:30:55 +00:00
Bruce Evans
bdca44f670 Added -mno-486 to CFLAGS to force smaller code in case someone compiles
with CC="cc -m486".  This doesn't fix PR2381, since PR2381 is for 2.1.x.
1997-03-05 15:43:03 +00:00
Bruce Evans
65ff42dd17 Only print clock calibration messages if the system was booted with -v.
Submitted by:	partly by gpalmer
1997-03-05 08:08:48 +00:00
Gary Palmer
0b146b65d2 Back out the patch to break up the clock probe lines. Instead, follow
Bruce's suggestion of deleting "relative to mc146818A clock ",
thus shortening the line ...
1997-03-05 00:54:00 +00:00