Commit Graph

636 Commits

Author SHA1 Message Date
Joerg Wunsch
dc16046f96 Finally implement support for the `lsdev' program. The controller is
now marked busy as long as it's being in non-reset state, and the
drives are busy as long as at least one instance is open.

Also reformat everything to fit into 80 columns again.

Changed my mind wrt. error reporting for a write-protected drive and
an open() with write intent; ENXIO has been too weird, now return EIO.
Some portions of the code need to be rewritten to use tprintf()
instead of simple printf()'s, so the messages will also appear on the
session terminal, however.
1995-01-11 16:13:01 +00:00
Jordan K. Hubbard
ed4a82f717 Latest update from Serge Vakulenko <vak@cronyx.ru>
Submitted by:	vak
1995-01-10 11:41:28 +00:00
Joerg Wunsch
b324392f6b fix for: kern/97: wt DELAY patch
Wangtek PC-02 QIC-02 controller with Cipher 150MB tape drive

        Any attemp to open /dev/rwt0 hangs.

        The following patch to /sys/i386/isa/wt.c is derived from Mikael
Hybsch's wt driver.

Submitted by:	Terry Lee <terry@uivlsi.csl.uiuc.edu>
1995-01-09 17:55:10 +00:00
Jordan K. Hubbard
716831f5f4 Add a MIN macro. 1995-01-09 11:38:40 +00:00
Peter Dufault
081964045f Added residual length for 1542C only 1995-01-08 13:41:28 +00:00
David Greenman
f7c9e2441f Restored Herb's current copyright. The one in the file appeared to have
been run through indent and additionally doesn't contain clauses 3 and 4
that were apparantly added sometime after the driver was put into FreeBSD.
1995-01-08 10:47:23 +00:00
Andreas Schulz
ddfdef1374 Submitted by: Steve Gerakines
Delete some parts of the ultra 24F tests for the controller, so that
it now accepts a broader range.
1995-01-07 23:23:40 +00:00
Andreas Schulz
a9700525d8 Work around a compiler bug in gcc2.6.3 in handling (long long) variables and
shifting. Also correct the original code as Garrett noticed it in mail.
Leave the mishandled code in to use it later if future versions of gcc
are correct. The code was part of the calibrate_cyclecounter routine to
get the speed of the pentium chip.
1995-01-07 17:26:35 +00:00
Jordan K. Hubbard
2f6df2645b Gunther Schadow <gusw@fub46.zedat.fu-berlin.de>'s
driver for the Genius GS-4500 hand scanner.
Submitted by:	gusw@fub46.zedat.fu-berlin.de
1995-01-07 14:52:08 +00:00
Joerg Wunsch
dc5df763e4 Peter's work to work around one of the most annoying bugs in the
floppy driver (or in the hardware?).  It turned out to be caused by
spurious interrupts, right after an FDC reset.

Also major cleanup in the low-level structure, there are now functions
performing error-checks for the FDC I/O.

Submitted by:	(mostly) Peter Dufault <dufault@FreeBSD.org>
1995-01-06 15:20:00 +00:00
Bruce Evans
123bcf5fda Fix scaling for TIOCM[SG]DTRWAIT to work when hz != 100.
Bruce
1995-01-06 15:03:41 +00:00
Andrey A. Chernov
33c38bd574 Fight against hanging modems: add timeout to ttywait.
Reviewed by: Bruce
1995-01-05 00:01:07 +00:00
David Greenman
53cdbe34f1 Made a few cosmetic changes, and fixed a bug in handling the case of the
remote DMA not completing correctly (the packet was still queued for xmit).
1995-01-04 21:10:17 +00:00
Paul Traina
e228c81074 Fix the GUS driver so that it will initialize properly from power-on...
no more DOS boots to start it up.

Simply did a localized nuke of the OUTB macro in this file.  This is
a kludge, since it seems it may actually be necessary in other GUS
files (tbd).

Thanks to: Amancio Hasty & Ken Hornstein
1995-01-04 20:07:27 +00:00
Bruce Evans
f73f117cf0 Don't allow negative console numbers for the VT_WAITACTIVE ioctl. Use the
correct console number for the VT_WAITACTIVE ioctl.  Invalid console numbers
caused waiting on an invalid pointer.

Use bcopyw() instead of move_up() and move_down().  bcopyw() handles
overlapped copies and should be faster.  Actually use bcopy().  bcopy()
is slightly faster if video memory is 16-bit and about twice as fast if
it is 32-bit.  bcopy() is said to fail on someGA's, but syscons already
depends on it working for other accesses to video memory.
1995-01-03 16:56:05 +00:00
Bruce Evans
37e52b59cc Use sufficient parentheses in macros.
Remove bogus input operands for fnsave(), fnstcw() and fnstsw().

Change all fwait's to fnop's.  This might help avoid hardware bugs.
Wait after fninit with an fnop.  This should be safer now.

Fix some spelling and formatting errors.

Use natural sizes for control and status words (u_short, promotes to int).

Don't clobber the SWI_CLOCK_MASK bits in npx0_imask when using IRQ13.

Set the devconf state correctly (always busy, if configured).  Improve
code for npx_registerdev() a little (gcc can't keep id->id_unit in a
register for some reason).  Don't register a nonexistent npx device.

Print a useful message in npxattach() again (delete references to errors
and not the whole message).  Don't print "387 emulator" if there is no
emulator in the kernel.

Use %p for pointers in error messages.

Don't clobber the FPU state when there is an FPU exception.  Just clear
the exception flags (after saving the flags as before).  This allows
debuggers and SIGFPE handlers to look at the full exception state.
SIGFPE handlers should normally return via longjmp(), which restores a
good FPU state (as before).  Returning from a SIGFPE handler may leave
the FPU in the wrong state (as before).

Clear the busy latch _after_ clearing the exception flags so that there
is less chance of getting a bogus h/w interrupt for a control operation.

Clear the saved exception status word when the next FPU instruction is
excuted so that it doesn't stick around until the next exception.

Clear the busy latch after fnsave() in npxsave() in case it was set when
npxsave() was called.
1995-01-03 04:00:06 +00:00
David Greenman
84bcd8659a Possible fix for NE2000 problems...the remote byte count wasn't word
aligned even though the transfers are 16bit.
1995-01-01 06:38:14 +00:00
David Greenman
c38c2f7f9b Get rid of unused variable. 1995-01-01 03:54:34 +00:00
Andreas Schulz
d3287e7c11 Change the errors in the XT_KEYBOARD patch. red in the face. Thanks Bruce. 1994-12-31 20:34:19 +00:00
Justin T. Gibbs
53a69701bc Handle both channels of Twin channeled devices. Respect the configuration
values for syncronous negotiation.  The 284x series adaptors can now be
supported without the Bios being enabled.  If you disable the Bios on the
274x series adaptors, all configuration parameters revert to the default
since there is no way to retrieve them.
1994-12-31 19:31:56 +00:00
Jordan K. Hubbard
63c5d14d1b Miscellaneous changes from Bill Paul:
- /sys/i386/isa/if_ed.c doesn't quite know how to deal with SMC EtherEZ
  ethernet cards. The EtherEZ looks just like the Elite Ultra, except it
  has only 8K of shared memory. The only way to have it properly detected
  is to zero and test a few bytes of memory just about the first 8K region.
  If it clears properly, it's an Elite Ultra, otherwise it's an EtherEZ.

  I've also got an EtherEZ patch for netboot (Makefile, ether.c and ether.h).

- /sys/i386/isa/syscons.c wraps at the next to the last column rather than
  the last column, like it should. You don't really notice this unless you
  use certain programs that write all the way out to, say, the 80th column,
  like VMSmail. Along with a one-line fix for this are some changes to
  implement a non-blinking cursor. Put 'options "NOBLINK_CURSOR"' in your
  config file and give it a try. :)

Submitted by:	wpaul
1994-12-31 17:09:58 +00:00
Jordan K. Hubbard
86dccd9394 From: Luigi Rizzo <luigi@labinfo.iet.unipi.it>
Would you please commit this two-line patch to /sys/i386/isa/b004.c
(the Transputer driver) so that it at least compiles under 2.x
Haven't tried if the driver is working properly, but a kernel with
compiled-in driver has been running for two days now with no apparent
problems.
Submitted by:	luigi
1994-12-31 12:32:59 +00:00
Andrey A. Chernov
1af33e5a7a Changes to allow keypad 5 produce \E[E like SCO/ANSI term does 1994-12-31 11:38:39 +00:00
Jordan K. Hubbard
10bfdf2bae From: "Serge V.Vakulenko" <vak@gw.cronyx.msk.su>
This is new version of Seagate ST01/02, Future Domain TMC-885, TMC-950
SCSI driver for FreeBSD.  I started from the 2.0R version and mostly
rewrote it.  New features are:

1) New probe algorithm.  Old driver read the BIOS region of the adapter
   memory and find the copyright string.  The problem was in the BIOS itself:
   it conflicted with IDE disks.  The solution was to unplug it and
   make the probe algorithm to work without it.
2) Proper timeout handling in numerous places where the driver
   polls waiting for some event.
3) Assembler flagments added in critical places, mostly for data transfer
   to of from the target.  It was possible to make it faster,
   but at the price of decreasing reliability.
4) Target-dependent delays when waiting for REQ deassert event.
   Some devices seem to be slower (CD-ROMS, some tape drives),
   and some seem to be too fast (disks).  The driver tests the REQ
   deassert timeout for each target and then uses it for polling.
5) Device flags added for SCSI parity control and sense request
   priority control.
6) Generic cleanup, after which the driver became much more readable
   (at least by me:).
7) Target data parity error logging is limited to avoid log file overflow.
8) Manual page added.

Submitted by:	serge
1994-12-31 05:31:48 +00:00
Bruce Evans
43469be308 icu.s:
Move definition of `stat_imask' to clock.c.

clock.c:
Rename `rtcmask' to `stat_imask' and export it.  Rename `clkmask' to
`clk_imask' for consistency.

Only calculate TIMER_DIV(hz) once.

Merge debugging and "garbage" code to produce debugging code and format the
output better.

Make writertc() static inline and use it everywhere.  Now all accesses to
the clock registers go through rtcin() and writertc().

Move rtc initialization to cpu_initclocks().

Merge enablertclock() with cpu_initclocks() and remove enablertclock().
The extra entry point was just a leftover from 1.1.5.
1994-12-30 12:43:35 +00:00
Bruce Evans
62f603b64d Change an 0 to WHOLE_DISK_SLICE. 1994-12-30 12:19:11 +00:00
Bruce Evans
0c4fe20e8a Keep track of the devconf state. 1994-12-27 13:07:07 +00:00
David Greenman
2048dd682c Fixed two security holes in the pcmmap() function.
Submitted by:	Bruce Evans
1994-12-27 08:43:06 +00:00
Andreas Schulz
3c8f8257cd Add a patch that someone on the net has used to run on his IBM Thinkpad.
Sorry, lost the name and mail of the original author. The whole patch
is ifdefed, so it should not disturb someone else in the moment.
1994-12-26 17:50:18 +00:00
Andrey A. Chernov
beae072bc9 Merge several probe diagnostics into one.
Adjust for newer model for all non-LUxxx too.
FLAGS status register names cleanup
1994-12-24 13:24:02 +00:00
Bruce Evans
11fa0751bc Fix the "wd" count stat. The seek and xfer stats are still very bogus
for wd (they both count the number of sectors).  The wpms stat is still
moderately bogus for all drivers.  Even the count stat could be handled
better (partial blocks should be counted as full blocks; should errors
and retries be counted?).
1994-12-24 09:43:12 +00:00
Garrett Wollman
dd2e410221 Move ARP interface initialization into if_ether.c:arp_ifinit(). 1994-12-22 21:56:22 +00:00
Andrey A. Chernov
f8c32a9711 Remove get status from probe, confuse LU002
Add check stbytes[1] != stbytes[2] for presence real Mitsumi
controller
1994-12-21 15:17:59 +00:00
Andrey A. Chernov
0bda4f122a stbytes miss by one for new model 1994-12-21 15:12:41 +00:00
Joerg Wunsch
0246a9d813 Initialize syscons also in cases where it ain't the system's console
(i.e., there's a comconsole).
1994-12-18 19:45:53 +00:00
Joerg Wunsch
00e82d39d7 Move the code providing the equivalent of ICRNL for console input from
the device driver(s) to cons.c.
1994-12-18 19:35:59 +00:00
Poul-Henning Kamp
40a97f50d4 > ../../i386/isa/if_le.c still has a mountain of warnings.. Anyone keen
> to fix?

Sure. How's this? -

Reviewed by:	phk
Submitted by:	Mark Murray <mark@grondar.za>
1994-12-18 18:42:03 +00:00
Jordan K. Hubbard
faa84d7f2c Fix a few nasties in the conversion. 1994-12-17 08:36:50 +00:00
Jordan K. Hubbard
cdf25f3740 Add Fred Cawthorne's GPIB driver.
Submitted by:	fcawth@delphi.umd.edu
1994-12-17 08:07:03 +00:00
Paul Traina
75a128283a Rudimentry bsd-audio emulator for VAT support using FreeBSD's voxware package.
Voxware hackers should feel free to work on this some more,  it's by no means
a perfect product.

(I have patches for GUS users running 2.x to run their GUS with bidirectional
 DMA (talk while listening.  All other soundboards must use push-to-talk until
 people learn to build real hardware).

Submitted by:	amancio hasty & paul traina
1994-12-16 04:59:18 +00:00
Guido van Rooij
a7e6a0941a lsdev paniced the machine when 2 (or more) ide controllers are installed.
Beware for cut and paste!

Reviewed by:
Submitted by:
Obtained from:
1994-12-13 18:20:08 +00:00
Bruce Evans
0300a965c8 diskslice_machdep.c implements reading and checking of DOS slice tables.
It will eventually replace readMBR.c.
1994-12-12 00:22:30 +00:00
Andreas Schulz
f2fe51f460 Correct a type in an ifndef EXCLUDE_3812 from 8312 -> 3812. Obtained
from the net or the mailinglist. Sorry, lost the original author.
1994-12-10 22:55:50 +00:00
Søren Schmidt
05d7c5e73e Changed the behavior of KDMKTONE to comply with svr4, default to
old behavior if no argument present.
1994-12-06 19:32:00 +00:00
Joerg Wunsch
290dd077ef Here is a minor patch for FreeBSD 2.0R to allow it to recognize
2.88MB floppy drives.  All it does is set the type to 1.44MB if
it finds the 2.88MB drive.

Submitted by:	Andrew Gillham <gillham@andrews.edu>
1994-12-04 20:22:20 +00:00
Bruce Evans
21e880de5d Fix bogus and broken include paths:
<string.h> isn't supposed to be used by the kernel.

cronix.h is <machine/cronix.h>, not "cronyx.h" (ambiguous) or
<sys/cronyx.h> (nonexistent; caused compile to fail).

cxreg.h is <i386/isa/cxreg.h>, not "cxreg.h".

<i386/isa/cpufunc.h> shouldn't be included directly; it is always
included by <sys/systm.h>.

<i386/include/*.h> is <machine/*.h>

<systm.h> is <sys/systm.h>.
<kernel.h> is <sys/kernel.h>.

<bpfilter.h> is "bpfilter.h".  It really is in the current directory.
1994-12-04 08:51:58 +00:00
Jordan K. Hubbard
9077e6d34c >Originator: Gene Stark
>Description:

       If a process attempts to open a floppy tape device when the
device has been configured in the kernel, but did not probe and attach
on bootup, then a panic will occur.

[Review:  The current ft situation is a crock, and this only bandaids
 an earlier wound inflicted by making the attach conditional.  This urgently
 requires a review]
Submitted by:	gene
1994-12-04 03:10:09 +00:00
Bruce Evans
b39b673d37 i386/exception.s,
Keep track of interrupt nesting level.  It is normally 0
	for syscalls and traps, but is fudged to 1 for their exit
	processing in case they metamorphose into an interrupt
	handler.

i386/genassym.c;
	Remove support for the obsolete pcb_iml and pcb_cmap2.

	Add support for pcb_inl.

i386/swtch.s:
	Fudge the interrupt nesting level across context switches and in
	the idle loop so that the work for preemptive context switches
	gets counted as interrupt time, the work for voluntary context
	switches gets counted mostly as system time (the part when
	curproc == 0 gets counted as interrupt time), and only truly idle
	time gets counted as idle time.

	Remove obsolete support (commented out and otherwise) for pcb_iml.

	Load curpcb just before curproc instead of just after so that
	curpcb is always valid if curproc is.  A few more changes like
	this may fix tracing through context switches.

	Remove obsolete function swtch_to_inactive().

include/cpu.h:
	Use the new interrupt nesting level variable to implement a
	non-fake CLF_INTR() so that accounting for the interrupt state
	works.

	You can use top, iostat or (best) an up to date systat to see
	interrupt overheads.  I see the expected huge interrupt overheads
	for ISA devices (on a 486DX/33, about 55% for an IDE drive
	transferring 1250K/sec and the same for a WD8013EBT network card
	transferring 1100K/sec).  The huge interrupt overheads for serial
	devices are unfortunately normally invisible.

include/pcb.h:
	Remove the obsolete pcb_iml and pcb_cmap2.  Replace them by
	padding to preserve binary compatibility.

	Use part of the new padding for pcb_inl.

isa/icu.s:
isa/vector.s:
	Keep track of interrupt nesting level.
1994-12-03 10:03:19 +00:00
Garrett Wollman
6014635361 Cronyx/Sigma sync/async serial driver with PPP support
from Serge Vakulenko
1994-12-02 23:23:01 +00:00
Andrey A. Chernov
92915f5044 Change wakeup to endtsleep, because wakeup don't produce timeout
state, cause infinite wakeups loop in ttywait
1994-12-01 23:48:09 +00:00