1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-29 12:03:03 +00:00
Commit Graph

386 Commits

Author SHA1 Message Date
Nate Williams
a60eff2770 From: Jim Babb <babb@sedhps01.mdc.com>
Date: Mon, 14 Feb 94 15:57:14 CST

This adds a copyright to the fdc.h file and fixes a bug in re-tries
during writes on a heavily loaded system.
1994-02-14 22:24:28 +00:00
Nate Williams
56cc87f5d9 From: Jim Babb <babb@sedhps01.mdc.com>
Subject: Bug Fix for ft.c - please commit
Date: Mon, 14 Feb 94 10:22:54 CST

This fixes a bug where the system can crash if the tape is used
after the floppy has been used.
1994-02-14 19:22:34 +00:00
Nate Williams
b21df1d16c Added third parameter to wdwait which contains the amount of time to
'wait' based on suggestion by Rod in -hackers.

No functional change as all the TIMEOUTS are identical currently, but
this will probably change.
1994-02-11 12:02:35 +00:00
Andrew Moore
9c2638e6dc Tentative fdc patches... 1994-02-07 22:12:45 +00:00
Andrey A. Chernov
63ba5191a4 Change all siointr (expect in Vsio, of course) to comintr1
This saves two commands per each direct comintr1 call,
allows some strict check in siointr and also
fix bug with suspended output on multiport cards
1994-02-07 18:37:21 +00:00
David Greenman
958896a15f Fixed bug in probe that was causing it to always probe true. 1994-02-07 15:46:22 +00:00
Andrey A. Chernov
2803eb968a Add "wdx: not found" diagnostic missed in previous commits 1994-02-07 15:40:38 +00:00
Andrew Moore
b99f0a4a8d Add floppy tape driver - fd => fdc 1994-02-07 04:27:13 +00:00
David Greenman
5ef457fa81 Nuke bogus error message 1994-02-07 04:20:57 +00:00
David Greenman
ab377d1e00 From: Chris Wiener <cwiener@CRLABS.COM>
When the keyboard is probed, the LED's blink quickly and
"Keyboard reset failed" is printed on the console.  The
init routine keeps trying endlessly with the same behavior
as above.

I got the latest -current sup sources (06-Feb-94 12:00 GMT) to work using the
old syscons.c.  The following patch makes the new syscons work:
1994-02-07 02:14:27 +00:00
David Greenman
102cfb5c3e At the suggestion of Bruce Evans, don't zero RTC diag register. Doing so
was causing problems for some machines.
1994-02-06 22:48:13 +00:00
Jordan K. Hubbard
becfc6cb74 Gunter Jung's fixes for the much-maligned lpt driver 1994-02-06 22:06:58 +00:00
Andreas Schulz
8a683b0d28 Fixed up the compiler warnings. 1994-02-06 17:03:17 +00:00
Andrey A. Chernov
4eab82a59a 1) Proper fix for suspended output in multiport case
2) IIR_NOPEND is really *one* bit, we don't need to check whole MASK
1994-02-06 11:59:35 +00:00
Rodney W. Grimes
51c16d62df Update for new format of cd_toc_entry that was changed in sys/cdio.h. 1994-02-06 11:33:25 +00:00
Rodney W. Grimes
069968bf50 Increase the TIMEOUT value that keeps getting nuked to 300 mSEC, I set it
to 1.1 secounds this time (ie, TIMEOUT=10000).
1994-02-06 02:56:11 +00:00
Christoph Robitschko
52fda4247e Make the screen savers runtime switchable. Everybody wants a
different default saver, and the size increase in the kernel is
minimal ( < 2.5K ).
1994-02-04 10:36:15 +00:00
David Greenman
49255f96cb if_ep.c: removed netisr.h, fixed unconverted ep_ac, changed <> into ""
for include files.
if_ed, if_ie, if_is: don't include netisr.h.
1994-02-03 11:51:12 +00:00
Andrey A. Chernov
cd08e4cab2 Make BLANK_SAVER default to stop best saver war. 1994-02-02 23:10:55 +00:00
Andrey A. Chernov
04af1a4e41 Fix error in multiport part:
while input char not entered, output was suspended
1994-02-02 16:41:26 +00:00
David Greenman
f5645fe75b Added 8003EB board type. Clue from Gerard J van der Grinten (gvdg@cdc.com) 1994-02-02 14:05:58 +00:00
David Greenman
769cb45b8e Added type code for 8003W. 1994-02-02 02:24:42 +00:00
Nate Williams
10a0cecedc Moved paren in sgetc to where it belongs. (My fault, I must have wiped it
out when I applied the patch to get the new features by hand)
1994-02-01 19:04:18 +00:00
Rich Murphey
20fabfa95d Add missing arg to Debugger() call.
Add missing close paren in sgetc() definition.
1994-02-01 15:09:10 +00:00
Andrey A. Chernov
7745b4472a Make old SNAKE_SAVER code compile with new syscons changes. 1994-02-01 11:13:49 +00:00
Andrey A. Chernov
cb2d71d5ea 1) Restore removed SNAKE_SAVER (Nate, WHY you do it?)
2) Make SNAKE_SAVER like default, if no saver specified in "options"
3) Remove #ifdef STAR_SAVER  before line /* make screensaver happy */
this code needed in any case.
1994-02-01 10:43:02 +00:00
Andrey A. Chernov
ebbb18695a Russian keymap is broken after last commit (fixed)
Nate, please, be more careful next time.
1994-02-01 09:27:43 +00:00
Andrey A. Chernov
12228508ab Comment #define STAR_SAVER, it is configuration "options" 1994-02-01 08:30:45 +00:00
Nate Williams
855baa7376 Added S'ren's Copyright to the file and sync up to version 1.3 1994-02-01 06:34:44 +00:00
Nate Williams
8b2e5491db From: sos@login.dkuug.dk (S|ren Schmidt)
Subject: syscons-1.3
Date: Sat, 29 Jan 94 23:33:50 MET

But here is the (hopefully) final syscons-1.3....

....

I've changed sgetc so it works as the pccons parallel
(it now uses a scgetc internally).


[
There were a couple changes that Bruce Evans sent me that were applied
to this version along with some changes that S'ren didn't incorporate
into the final version.  There will be only minor changes if anything
from this version to his final release.
]
1994-02-01 06:22:29 +00:00
Nate Williams
fa998562eb Removed hack for older version of syscons (new version going in soon) 1994-02-01 05:58:02 +00:00
Nate Williams
768e8947c6 From: bde@kralizec.zeta.org.au (Bruce Evans)
o merged and fixed timeout code from sos.
	o merged DOS partition support from sos.
	o fixed "extra" interrupts.
	o check if malloc retuns NULL :-(.
	o print drive size as in NetBSD
	o after an error, return the residual count, not 0.
	o give up early for > 16 heads.
	o cleaned up the old-drive detection in wdgetctlr().
	o rewrote wddump().  I'd been putting this off because
	  I'd had the dump disabled since 0.0 and had no idea
	  if even the standard version worked.  It didn't:
	  (0) syscons' sgetc() interface broke some keyboard
	  stuff.
	  (1) CADDR1 is mapped using pmap() and pmap got a NULL
	  pointer trap (at least when I got to wddump() using
	  call diediedie from ddb) because the pte for CADDR1
	  is only supposed to be hacked on directly (e.g. in
	  physcopyseg()).
	  (2) bad144 handling was not done.
	  (3) it was slooow (3600 sectors/minute) because my
	  controller doesn't cache writes.
	o miscellaneous other cleanups, e.g., removed scattered
	  patchkit/terry dates.
	o lots of reformatting.

To be done:
	o Merge/fix TIH/NetBSD bad144 code (doesn't belong in any
	  particular driver.  Why aren't we using i386/dkbad.c?).
	o Merge/fix Dyson/NetBSD clustering code (large parts
	  should be shared).
	o Fix/extend the partition in use bits.  Support extended
	  partitions.  This should be shared by all disk drivers.  Swap
	  to a DOS partition so that the swap space can be shared with
	  linux.
	o Don't use polling except for initialization.  Need to
	  reorganise the state machine.  Then "extra" interrupts
	  shouldn't happen (except maybe one for initialization).
	o Fix disklabel, boot and driver inconsistencies with
	  bad144 in standard versions.
	o Look at latest linux clustering methods.  Our disksort()
	  gets in the way of clustering.
	o cleaned up the ATA changes (needs more work.  I think
	  the ATA specs say that the only thing really wrong with
	  the original version of wx is that there was no test
	  for drive-ready before some commands.  400 nsec delay
	  suffices for almost everything and 400 nsec delay is
	  usually "free").
1994-02-01 05:55:21 +00:00
Andrey A. Chernov
6405a87b09 Remove CALLOUTMASK, if non-bidir case. 1994-01-31 19:07:59 +00:00
Paul Richards
41ef6bd85e Added new probe code to detect generic lance based cards. Should now
work with ne2100 card.
1994-01-31 16:00:53 +00:00
Andrey A. Chernov
6df720041a 1) Set ipending back to 4, because (16 + 4) bit not in
netmask or impmask.

2) Fixes from Bruce:
	o Changed name of schedsoftcom() to setsofttty() to match
	  setsoftclock()
	o Bool_t isn't used.
	o tx_fifo_size is 1 for chips without fifos, 16 for 16550's, to
	  help to output more efficiently for 16550's (LSR_TXRDY means
	  that the fifo is empty, not that it has space for one char).
	o Changed name of softsio1() to siopoll() and merged compoll()
	  into siopoll().
	o The probe forgot to clear com_mcr after it failed.  This is
	  harmful for 4 single serial ports on 2 interrupts.  It makes
	  partial misconfigurations worse.
	o Don't bother initializing static variables that are 0 (bidir
	  stuff).
	o Only initialize t_oflag to TTYDEF_OFLAG if unit == COMCONSOLE,
	  not if COMCONSOLE is defined.
	o Don't call siointr() from comparam() if there is no output in
	  progress.  For the call from sioopen(), there's no output in
	  progress, and siointr() often saw silo overflows for stale
	  input because it was called before sioopen() discarded the
	  input.
	o Let ttselect() do the work for select(), so that the fixes for
	  ttselect() don't have to be duplicated in zillions of drivers.
1994-01-31 08:52:12 +00:00
David Greenman
3579d8917b Patch from dcjm@cs.ed.ac.uk (Dave Matthews)...
Yes, I know that IFADDR ioctl is supposed to be deprecated... Note
that the patch was modified by me to fit better into the driver. -DG

...

While porting CAP to 386bsd/pk0.2.4 and now to FreeBSD Release 1.0
I found a couple of bugs associated with the packet filter. Here
are the fixes.  I'm posting them here because they apply to
FreeBSD and 386bsd/pk0.2.4 and possibly to other *BSD.

The first occurs when using the packet filter to write raw
ethernet packets.  The header consisting of the sender and
destination addresses and the protocol is removed and later
added back on, but with the byte order of the protocol reversed.
The fix ensures that the byte order in the protocol field is
swapped when it is removed.

The second fix ensures that SIOCGIFADDR works for BPF as claimed
in the man pages, by adding it to the ed driver.  Similar fixes
will be needed for other ethernet drivers.
Dave Matthews.
1994-01-31 07:34:20 +00:00
David Greenman
d6eb591433 Patch from Brian Smith (modified a little by me) to allow kernel config
file override to disable fifo on 16550s:

I bought a board with two 16550's, but one of those ports has a mouse
on it.  The sio driver always enables the fifo, which is a bad thing
for mice and X.  The mouse is jerky and hard to use.  The simple thing
is be to treat one of the ports as a non-fifo'ed UART, and I use the
flags option in my config file.

So, my config file has:
device      sio0    at isa? port "IO_COM1" tty irq 4 flags 0x2 vector siointr
device      sio1    at isa? port "IO_COM2" tty irq 3 vector siointr

(patch deleted)
1994-01-31 06:12:18 +00:00
Rodney W. Grimes
2e8a06d0b6 Patch from Julian. Commit message by me.
Cuddle { braces up where possible on if statements
Add missing splx(s) calls before some returns.
Remove extra semicolon that was keeping uha_init from returning
before the timeout occured.  This should speed probing up quite
a bit!
1994-01-29 10:29:14 +00:00
Nate Williams
db5e13d8a0 Whoops, syntax error where I forgot a parenthesis. 1994-01-26 20:18:56 +00:00
Nate Williams
41252572a1 FreeBSD modifications to driver.
0) FreeBSD additional include files additions
1) Rod's arpacom changes
2) Function type and return code cleanup, and all functions have correct
   casting to the correct data types
3) Bugfix where driver would not function due to missing structure not
   given a value.
4) General cleanup.  (Theo did a lot already, I just did some more)
1994-01-26 09:13:56 +00:00
Nate Williams
287e7e4d61 Newer version of Herb Peyerl's 3C509 driver straight from NetBSD-current. 1994-01-26 09:06:29 +00:00
Andrey A. Chernov
424e2d04fc Fix error with tsleep loop 1994-01-25 23:04:27 +00:00
Andreas Schulz
76847ca3ae Put some more info about the toshiba ethernet cards into if_edreg.h.
Changed some numeric constants to defines in if_ed.c for the toshiba
cards.
1994-01-25 22:52:09 +00:00
Rodney W. Grimes
39970aa6a4 Do my fix that I have done to all the other ethernet drivers to use
arpcom intead of foo_ac, remove now unneeded defines, fix support for
options NS.

Still one compiler warning to fix :-)
1994-01-25 11:20:06 +00:00
Andrey A. Chernov
2b1c7c76c3 Add Ctrl-Altr-Esc DBG key to RUKEYMAP (russian keymap) 1994-01-24 05:22:27 +00:00
Rodney W. Grimes
136cc9d5ef More sane AHA_RESET_TIMEOUT, from some testing by
Todd Pfaff <todd@flex.eng.mcmaster.ca> who was the person to report the
original problem on a 1542C.
1994-01-22 21:54:10 +00:00
Rodney W. Grimes
ce1105630d Now prints ``on eisa'' if id_iobase >= 0x1000, and made a slight code
cleanup for the other 2 cases of ``on motherboard'' and ``on isa''.
1994-01-22 21:52:04 +00:00
Andreas Schulz
3926f9e8f3 Added the correct typecast's to the untimeout calls. Added a missing
return statement in the probe. This should have fixed all compiler warnings.
1994-01-22 18:00:54 +00:00
Rodney W. Grimes
a8e9d1d5b7 Increased TIMEOUT in wdwait from 2000 to 20000 since it seems many people
have needed to do this in order for the wd driver to work for them.
1994-01-22 11:00:01 +00:00
Rodney W. Grimes
cdd2062aac >From: julian@TFS.COM (Julian Elischer)
Date: Mon, 17 Jan 94 20:52:14 PST

As reported on the -bugs list by some one, and confirmed by Julian:

> I increased AHA_RESET_TIMEOUT in aha1542.c from 1000 to 10000
> and now my 1542C is found everytime.
1994-01-22 07:46:25 +00:00
Nate Williams
7af948c9cc Changed the default 'reboot' routine from cpu_reset() to shutdown_nice().
If you want to disable the reboot feature, then re-define the keymap to
not have a RBT call.
1994-01-18 05:33:34 +00:00
Nate Williams
87965552ef Changed the default syscons keymap to have <CTL-ALT-ESC> enter the
debugger and <CTL-ALT-DEL> call the reboot command.
1994-01-18 05:31:37 +00:00
Nate Williams
954c7b2b78 Reduced the delay amounts per patch submitted by gclarkii@netport.neosoft.com 1994-01-18 02:20:15 +00:00
Rodney W. Grimes
e7988dea10 Add missing paren so that it now compiles. 1994-01-17 05:49:20 +00:00
Jordan K. Hubbard
26e25527db From Gary Clark II:
1. Fixed probe to work with FX mitsumi's.

2. Added some defines in prep for adding interupts and dma
1994-01-16 23:34:17 +00:00
Andreas Schulz
e8f1fa7451 Updated the TODO file with missing things.
Changed the output of the isa probe routine, that only devices, that
have an IO address and are smaller than 0x100 to be on the motherboard.
The seagate SCSI adapter is an example of a card, that doesn't have
an IO address and works only memory mapped.
1994-01-16 11:25:06 +00:00
David Greenman
7f8cb36869 "New" VM system from John Dyson & myself. For a run-down of the
major changes, see the log of any effected file in the sys/vm
directory (swap_pager.c for instance).
1994-01-14 16:25:31 +00:00
Andreas Schulz
b06a5891b4 Added the support for the Toshiba ethernet cards. It is only
ifdef and not default, because, i don't know  if anyone else
is using this card.
1994-01-11 23:28:21 +00:00
Andreas Schulz
da37baffac Thrown out the obsolete drivers in the TODO list.
Added the Toshiba board-id's into the if_edreg.h file and the different
checksum for the Toshiba ethernet-boards.
1994-01-11 21:28:29 +00:00
Andrey A. Chernov
e58072bda5 From ache:
Choose older MULTIPORT version, because lastest bde version
	not worked.
	Don't force HUPCL for bidirectional case.
From bde:
	Use bit (1 << (16 + 4)) in schedsoftcom() to avoid clash with
	non-serial h/w on IRQ4.
	Allow FIFO_TRIGGER in config.
	Clear com->mcr_image when clearing mcr for init of 4port.  The
	usual value MCR_IENABLE should have broken 4ports unless
	something happened to clear it later.
	Turn off interrupts as well as DTR after an error waiting for
	carrier (bidir dialin case).
	Drain fifo more carefully.
	Don't hang up if debugging.
	Rearrange siointr() -> siointr1() for multiport case for speed,
	lower latency and clarity.
	Use suser() to check perms.
	Provide missing splx() after failed perms checks.
	c_ispeed == 0 means c_ispeed = c_ospeed (POSIX).
	Set parameters (except speed) for c_ospeed == 0 as well as
	hanging up.
	Better initialization for console (fifo stuff...).
	Misc. cleanups.
	Fix dead hang if modem power is off.
1994-01-11 18:31:45 +00:00
Rodney W. Grimes
1660308965 Add comment to MAX_SLOTS that it may need to be 16 and to check against
EISA spec.  Fixed off by one error in ahbprobe so that it can find an
aha1742 in slot 8 (now uses slot <= MAX_SLOT, instead of slot < 8).
1994-01-11 07:24:32 +00:00
Andrey A. Chernov
154f487097 Correct Vresume size, we have now 32 bits for it. 1994-01-10 23:15:09 +00:00
Andreas Schulz
dd66bbf852 First beta version of the 3C509 driver changed for FreeBSD. Known
problems in the moment are stray intr's in the ifconfig up/down.
No way to select all three interfaces on a combo card with
AUI/BNC/UTP interfaces and the performance doesn't look good.
Only tested with a ISA AUI/BNC card yet.
1994-01-10 19:13:50 +00:00
Andreas Schulz
96b4591b68 Committed the original NetBSD version of this driver to get the changes
made for FreeBSD as cvs diffs. This is the 3C509 ethernet driver.
1994-01-10 18:56:26 +00:00
Andreas Schulz
253a42c5fc I have a new adaptec 1542CF board bought, that has the board id of 0x45.
Added it to the list of known boards and put it into the the list for
the mailbox unlock. Maybe all board-ids over 0x42 should be in the
mailbox unlock part ?
1994-01-09 18:11:21 +00:00
Andrey A. Chernov
712b66d518 After some testing dma_pagesize reduced to 4096 for *both*
byte and word DMA channels, use bounce buffer now.
1994-01-08 16:48:35 +00:00
Nate Williams
af60ea293c When a probe fails print a 'not found' line instead of nothing 1994-01-08 00:00:52 +00:00
Rodney W. Grimes
3b6585764d Fixed comment that refered to 8252 (we really have 8253's).
Per some one on the mailing list.
1994-01-05 15:03:28 +00:00
Nate Williams
12da8ccb6e Whoops, I committed an older version that didn't have some warnings fixed.
This version fixes all warnings given the default compiler flags with some
casts.
1994-01-04 20:20:38 +00:00
Nate Williams
5be4b5f75a Temporary hack to allow multiple controller support until Rod gets more
time to do it the 'Right Way'.
1994-01-04 20:06:30 +00:00
Nate Williams
4aba964ef1 New wd driver, based on Bruce Evans 'wx/altwd' driver which has passed
enough tests to be considered more stable than current driver.

Lots of work by Bruce, David G., and Guido have gone into this version, and
more is to come in the future.

Support for multiple controllers is in, but doesn't work correctly with
different controllers (IDE AND MFM), but multiple alike controllers appears
to work.

Most of the stray interrupts problems should be fixed, although you will
get a couple 'extra interrupts' when disklabeling and on startup.
1994-01-04 20:05:26 +00:00
David Greenman
504c39bf88 Yanked out history section as it is unlikely there will be any further
changes for some time. Also changed the indentation style a little.
1994-01-03 17:17:19 +00:00
David Greenman
c8a13ecd00 Convert syscall to trapframe. Based on work done by John Brezak. 1994-01-03 07:55:47 +00:00
Andrey A. Chernov
879d1ff90a Temporary plug CLOCAL security hole, while sticky bits
yet not implemented. Only for bidirectional case.
1994-01-02 10:17:29 +00:00
Andrey A. Chernov
126518a182 Use separate fields for format GAP and read/write GAP.
Restore usage of read/write GAP.
1993-12-21 05:09:21 +00:00
Rich Murphey
7f66f26d0c Don't cast 2nd arg to fillw() per David's comments. The cast
breaks cursor positioning.
1993-12-21 03:27:26 +00:00
Rich Murphey
81664caf74 cast arg 2 of fillw() calls to type caddr_t as in pccons.
add "manual escape to debugger" arg in call to Debugger().
cast 1st arg to untimeout() to type timeout_func_t as done for timeout().
1993-12-21 02:49:13 +00:00
Garrett Wollman
a1f4319f4a Document use of counters 29 and 30 for CCITT netisrs. 1993-12-20 15:08:33 +00:00
Garrett Wollman
bd7d7eb52b Separated netisrs for pkintr() (X.25) and hdintr() (HDLC) so that someone
can actually write a sane netif device to support one of these.  Note that it
was necessary to steal a netisr bit from another protocol; I took the one for
PF_DATAKIT (no great loss).
1993-12-20 14:58:21 +00:00
Garrett Wollman
aaf08d94ca Make everything compile with -Wtraditional. Make it easier to distribute
a binary link-kit.  Make all non-optional options (pagers, procfs) standard,
and update LINT to reflect new symtab requirements.

NB: -Wtraditional will henceforth be forgotten.  This editing pass was
primarily intended to detect any constructions where the old code might
have been relying on traditional C semantics or syntax.  These were all
fixed, and the result of fixing some of them means that -Wall is now a
realistic possibility within a few weeks.
1993-12-19 00:55:01 +00:00
Andrey A. Chernov
b39c878e2b Media table reorganization.
Entries for 800 and 820 fixed.
From vak@kiae.su:
incorporate Joerg Wunsch formatting code
correct handle timeouted operations
fixed entry for 720 media
1993-12-19 00:40:49 +00:00
Andrey A. Chernov
f4d3408967 Fix tsleep "waitvt" wait data from vak@kiae.su 1993-12-18 22:50:51 +00:00
Andrey A. Chernov
ed2fa05ece Reorganization of format table.
GAP values changed suitable for possible format code addition.
Read/write GAP always 2 now.
Interleave parameter added for possible format code addition.
Many logical formats added.
720K physical drive added.
Problems: still can't read 720..820 media in 1.44 drive.
1993-12-18 01:16:26 +00:00
Andrey A. Chernov
159569a418 RTCFDT_720K (physical drive 720K) added. 1993-12-18 01:12:47 +00:00
Andrey A. Chernov
2384b3a702 Added following formats (derived from MSDOS fdformat):
800K in HD 5.25in  (maximum for DD diskettes)
1.44M in HD 5.25in (for easy distributions)
1.46M in HD 5.25in (maximum for 5.25)
Some cosmetique changes.
1993-12-16 19:47:42 +00:00
Andrey A. Chernov
cf197426bb Change default dtrwait value to 2 seconds.
Change C-style into static initializer per Bruce request.
1993-12-16 04:38:27 +00:00
Andrey A. Chernov
7ca0641bb9 No more partition bits in floppy minor.
Now minor looks like UU DDDDDD, UU - unit, DDDDDD - density.
If density == 0, CMOS-detect format assumed.
Fix attach code for correct work with unknown CMOS
floppy types.
Trick diskerr to handle new minor.
1.722M floppy in 1.44M drive popular format added.
1993-12-16 04:28:42 +00:00
Andrew Moore
8b4d35c5ee wt.c - version 1.3
from:
Sergey Ryzhkov, Serge Vakulenko
E-mail: <sir@kiae.su>, <vak@zebub.msk.su>

This is the streamer tape driver for 386bsd and FreeBSD, which
supports Wangtek and Archive compatible QIC-02/QIC-36 controllers.
It was developed as a replacement of the old Wangtek tape driver from CMU.

In comparison with the CMU driver, this version has the following enhancements:
1) Support for Archive SC402 and SC499 tape controllers added.
2) Support for up to three tape controllers on the same machine.
3) Support for BSD-style ioctls MTIOCGET, MTIOCTOP.
   Mt command now works adequately with this driver.
2) Asynchronous REWIND and FSF operations, close() will not wait
   until they finish.  The next open() will wait for it instead.
4) Use of WTQICMD ioctl is limited to ERASE and RETENS operations.
   This prevents the user from locking the tape driver by strange
   tape operations.
5) Tape density switching added.
6) The status of the process, blocked on the tape operation,
   is displayed at the WCHAN column of the `ps' command as:

	wtread    reading data from the tape
	wtwrite   writing data to the tape
	wtrfm     reading the tape marker
	wtwfm     writing the tape marker
	wtrew     rewinding the tape
	wterase   doing WTQICMD ERASE operation
	wtretens  doing WTQICMD RETENS operation
	wtorew    doing MTIOCTOP REW/OFFL operation
	wtorfm    doing MTIOCTOP FSF operation
	wtowfm    doing MTIOCTOP WEOF operation

7) It's possible to use the tape with "default density",
   useful for devices which don't support density switching
   or do automatic format determination.
8) Some controllers support only 1024 block length.
   Setting WT_BSIZE bit in device minor number turns on this mode.

Minor number structure:
	0bfffuuu
Fields:
	uuu   - Unit number. It's possible to install
		up to three tape controllers on the same machine,
		using DRQs 1..3.  Hence, unit number can lie
		in range 0..2.
	fff   - Tape format number:
		0 - /dev/rwt0  - default density (auto select)
		1 - /dev/rwt0a - QIC 11 (obsolete)
		2 - /dev/rwt0b - QIC 24 (60 megabytes)
		3 - /dev/rwt0c - QIC 120 (120 megabytes)
		4 - /dev/rwt0d - QIC 150 (150 megabytes)
		5 - /dev/rwt0e - QIC 300 (300 megabytes?)
		6 - /dev/rwt0f - QIC 600 (600 megabytes?)
	b     - Long block size flag.  With this bit set,
		the driver will perform all i/o operations
		with the controller using 1024-byte
		blocks, instead of 512 ones.
		Some controllers need it (CMS for example).
		If you Wangtek controller does not stream well,
		you can try to use /dev/rWt0 device instead
		of /dev/rwt0 (uncomment needed lines in /dev/MAKEDEV
		to create it).

Block interface (writing blocks less than 2048 bytes) is not functioning
pwoperly.  Use raw interface instead.

Thanks to all who helped to test it on the following hardware:

Controller           Drive            Volume    Interface     Thanks to
---------------------------------------------------------------------------
Archive SC-499       Archive 2150L    150 Meg   QIC-02        KIAE
CMS?                 ?                150 Meg   QIC-02        KIAE
Everex EV 831/833    ?                ?         QIC-36        Joergen Haegg
Wangtek ASSY         Wangtek          60 Meg    QIC-02        Ken Whedbee
Tecmar QT150i?       Wangtek 5150EQ   ?         QIC-02?       Marko Teiste
?                    Wangtek 5099EK   60 Meg    QIC-36        Robert Shien
Archive SC400S       ?                60 Meg    ?             Warren Toomey
1993-12-13 18:38:44 +00:00
David Greenman
d39cf18213 set output flags to ttydefault if COMCONSOLE is defined. 1993-12-13 13:20:50 +00:00
Andrey A. Chernov
fa4700b4f1 Add more strictly size check into Fdopen to eliminate
possible end-user errors.
Now:
1) on physical 1.2 can open logical 1.2, 720, 360H
2) on physical 1.44 can open logical 1.44, 720
3) on physical 360 can open logical 360
All other variants refused.
C-style improved in this check, multiply if's changed to switch.
1993-12-13 01:34:28 +00:00
Andrey A. Chernov
dffff499a9 Add 360K floppy support.
More work to add 720K floppy support.
Restore good old dependance of device and floppy type.
Now:
fd?a == 1.44
fd?b == 1.2
fd?c == 720
fd?d == 360 in HD
fd?e == 360
Add more strict size check in Fdopen, not it refuse:
1) Attempt to open any type expect fd?e, if you have only 360K drive.
2) Attempt to open fd?a if you have only 1.2 drive.
1993-12-12 20:26:56 +00:00
Andrey A. Chernov
20a2916818 Add popular 720k floppy in HD drive floppy type.
Restore check for NUMTYPES in Fdopen.
1993-12-12 16:46:54 +00:00
Jordan K. Hubbard
41d67a5615 Folllow Bruce's advice in reducing dma_pagesize to 4K (more conservative
estimate).  This seems to work well with my GUS at least.
1993-12-12 05:50:52 +00:00
Andrey A. Chernov
8cd0c83879 Remove compiler warning:
void function return int.
1993-12-11 00:37:55 +00:00
Andrey A. Chernov
04201cd182 Force HUPCL in bidirectional port open.
This don't allow it hangs forever.
1993-12-11 00:36:14 +00:00
Andrey A. Chernov
25915e75e3 1) Fix error with port recognition, speed initialization code
added to probe.
2) Force CLOCAL=on for outgoing ports and CLOCAL=off for
incoming ports into open in bidirectional case.
3) Add DELAY after writing to com_ier for fifo drain into probe.
1993-12-09 17:24:19 +00:00
Andreas Schulz
fadc21ae39 Fixed the error that a Fdopen succeeds without a found fd controller in
the system.
1993-12-04 16:13:18 +00:00
Andrew Moore
16111ced9f Reset fdc during probe.
From: <dec@lazarus.nrtc.northrop.com>
   Changes between EPSILON and RELEASE of FreeBSD have again caused
the kernel to not see my floppy disk drives.  I don't know what happened,
'cause I don't see any changes to fd.c, but here is an old fix that
I have applied to the probe routine which will solve the problem (at
least for me).  Since this is a rather brute-force solution - I understand
if you want to ignore it...

[Upgrading to pre-Beta FreeBSD caused this on my system. -AM]
1993-12-03 05:01:40 +00:00
Andrey A. Chernov
b4afc64b0b wmesg was too long (>7), fixed 1993-11-29 19:26:32 +00:00
David Greenman
97751a63e2 * Revision 2.16 1993/11/29 16:55:56 davidg
* merged in Garrett Wollman's strict prototype changes
 *
 * Revision 2.15  1993/11/29  16:32:58  davidg
 * From Thomas Sandford <t.d.g.sandford@comp.brad.ac.uk>
 * Add support for the 8013W board type
1993-11-29 17:07:33 +00:00
Andrey A. Chernov
b81db928c3 Direct #undefs removed to allow flexible manipulation
via config options. Unneded #defines removed.
Improved dependance of "snd.h" and NSND.
1993-11-28 10:55:59 +00:00
Andrey A. Chernov
4a8e05dd59 Move soundcard.h & ultrasound.h to proper location <machine/...>
to allow application access it.
1993-11-27 22:16:44 +00:00
Rich Murphey
23fc1c7148 Fix conflicting prototypes and return values. 1993-11-27 06:32:41 +00:00
Garrett Wollman
381fe1aaf4 Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and
add same (sans -Werror) to Makefile for future compilations.
1993-11-25 01:38:01 +00:00
Nate Williams
997e3029c9 Subject: Panic - can't mount route (Soren's changes)
From: Geoff Rehmet  <g89r4222@braae.ru.ac.za>

Description:
	On bootup, probe of wd drives fails (CP30104), and kernel panics
	- cannot mount root
	It appears that the device probe just times out.
	Increasing the timeout back to its old value fixes the problem.
Repeat-By:
	SUP FreBSD-current,  Find a CP30104 .....  (ok ok ok)
	Basically - Soren's changes barf my disk.
1993-11-23 21:36:37 +00:00
Christoph Robitschko
5a0cfe828a Changed return(-1) in switch_scr to return(EINVAL), because -1 is
ERESTART on return from a system call.
1993-11-23 18:20:52 +00:00
Nate Williams
1b0b2339ce Stop gap measure until we can get Bruce's driver debugged.
---
From: sos@login.dkuug.dk (S|ren Schmidt)
Subject: IDE-disk hangs - solution/patches NetBSD/FreeBSD
Summary: fixes for lost interrupts with IDE disks
Keywords: hanging-disk, IDE-disk, lost-interrupt


Due to "popular" demand I'm posting these patches to NetBSD/FreeBSD
instead of mailing them around the world :-)

As many have found out there is a problem when using IDE disks on
FreeBSD. Following is a patch that fixes the problem with lost intterrupts.
Both fixes is based on a patch posted here some month ago by
Stefan Behrens?? (sorry I've lost the original article). But anyway it
works (for me :-).
Basically it does a timeout on lost interrupts, starting the operation
again and logging and error message on the console.

It additionally makes the allready present while loop timeouts
independent of CPU speed, and adds minor numbers for easy access to
dos partitions.
1993-11-22 23:25:46 +00:00
David Greenman
047ea5bd0c * Revision 2.14 1993/11/22 10:55:30 davidg
* change all splnet's to splimp's
 *
 * Revision 2.13  1993/11/22  10:53:52  davidg
 * patch to add support for SMC8216 (Elite-Ultra) boards
 * from Glen H. Lowe
 *
 * Revision 2.12  1993/11/07  18:04:13  davidg
 * fix from Garrett Wollman:
 * add a return(0) at the end of ed_probe so that if the various device
 * specific probes fail that we just don't fall of the end of the function.
1993-11-22 11:08:16 +00:00
David Greenman
d333677271 added 5us delay before checking BUSY flag to conform to ATA spec -
as suggested by John Dyson (dyson@implode.rain.com)
1993-11-19 06:30:00 +00:00
Rodney W. Grimes
57bb0ee45f New version of scsi code from Julian 1993-11-18 05:03:27 +00:00
Andrey A. Chernov
aa0028f8cf Fix attach message, make separate line for it
(old version assumed that line is probe line)
1993-11-17 23:38:23 +00:00
Garrett Wollman
35089dd415 Fixed comments that start within a comment, so code compiles cleanly with
-Wcomment.
1993-11-17 23:25:28 +00:00
Andrey A. Chernov
58e4f8835a If netmask == 0, new value changed from 0x8000 to 0x10000
(don't mess with IRQ15)
1993-11-17 00:21:03 +00:00
Andrey A. Chernov
1e064bd4be timeout+sleep changed to tsleep 1993-11-15 01:33:11 +00:00
Andrey A. Chernov
de0edfd4e3 if netmask == 0, then the loopback code can do some really
bad things.
workaround for this: if netmask == 0, set it to 0x8000,
which is value used by splsoftclock
1993-11-14 23:53:32 +00:00
Andrey A. Chernov
0d04ba084f New sio driver from Bruce. 1993-11-14 23:29:01 +00:00
David Greenman
0967373e1c First steps in rewriting locore.s, and making info useful
when the machine panics.

i386/i386/locore.s:
1) got rid of most .set directives that were being used like
	#define's, and replaced them with appropriate #define's in
	the appropriate header files (accessed via genassym).
2) added comments to header inclusions and global definitions,
	and global variables
3) replaced some hardcoded constants with cpp defines (such as
	PDESIZE and others)
4) aligned all comments to the same column to make them easier to
	read
5) moved macro definitions for ENTRY, ALIGN, NOP, etc. to
	/sys/i386/include/asmacros.h
6) added #ifdef BDE_DEBUGGER around all of Bruce's debugger code
7) added new global '_KERNend' to store last location+1 of kernel
8) cleaned up zeroing of bss so that only bss is zeroed
9) fix zeroing of page tables so that it really does zero them all
	- not just if they follow the bss.
10) rewrote page table initialization code so that 1) works correctly
	and 2) write protects the kernel text by default
11) properly initialize the kernel page directory, upages, p0stack PT,
	and page tables. The previous scheme was more than a bit
	screwy.
12) change allocation of virtual area of IO hole so that it is
	fixed at KERNBASE + 0xa0000. The previous scheme put it
	right after the kernel page tables and then later expected
	it to be at KERNBASE +0xa0000
13) change multiple bogus settings of user read/write of various
	areas of kernel VM - including the IO hole; we should never
	be accessing the IO hole in user mode through the kernel
	page tables
14) split kernel support routines such as bcopy, bzero, copyin,
	copyout, etc. into a seperate file 'support.s'
15) split swtch and related routines into a seperate 'swtch.s'
16) split routines related to traps, syscalls, and interrupts
	into a seperate file 'exception.s'
17) remove some unused global variables from locore that got
	inserted by Garrett when he pulled them out of some .h
	files.

i386/isa/icu.s:
1) clean up global variable declarations
2) move in declaration of astpending and netisr

i386/i386/pmap.c:
1) fix calculation of virtual_avail. It previously was calculated
	to be right in the middle of the kernel page tables - not
	a good place to start allocating kernel VM.
2) properly allocate kernel page dir/tables etc out of kernel map
	- previously only took out 2 pages.

i386/i386/machdep.c:
1) modify boot() to print a warning that the system will reboot in
	PANIC_REBOOT_WAIT_TIME amount of seconds, and let the user
	abort with a key on the console. The machine will wait for
	ever if a key is typed before the reboot. The default is
	15 seconds, but can be set to 0 to mean don't wait at all,
	-1 to mean wait forever, or any positive value to wait for
	that many seconds.
2) print "Rebooting..." just before doing it.

kern/subr_prf.c:
1) remove PANICWAIT as it is deprecated by the change to machdep.c

i386/i386/trap.c:
1) add table of trap type strings and use it to print a real trap/
	panic message rather than just a number. Lot's of work to
	be done here, but this is the first step. Symbolic traceback
	is in the TODO.

i386/i386/Makefile.i386:
1) add support in to build support.s, exception.s and swtch.s

...and various changes to various header files to make all of the
	above happen.
1993-11-13 02:25:21 +00:00
Andrey A. Chernov
e614aa8a3b Fixed minor bug in M[LSN] interpretation, added octave-tracking.
Added the slur-mark feature.
Name of ioctl's include sys/spkr.h changed to machine/speaker.h
1993-11-09 02:32:30 +00:00
Andrew Moore
2fc79c3815 Applied David Greenman's hack to disable IRQ conflict checking
when COM_MULTIPORT is defined.
1993-11-09 02:12:36 +00:00
Jordan K. Hubbard
fe40db7b2e Change from David Greenman to return properly unsigned irq. 1993-11-09 01:20:33 +00:00
Andrey A. Chernov
fe04cbf968 Add missing read flush code to siostop 1993-11-08 19:36:32 +00:00
Garrett Wollman
f4639581fd Get rid of WFJ's use of sleep() for more user-friendly tsleep(). 1993-11-07 21:47:19 +00:00
Garrett Wollman
13c0dce671 Made all header files idempotent and moved incorrect common data from
headers into a related source file.  Also fixed a bug in ed_probe() where
it was possible to fall off the end of the function
1993-11-07 17:44:34 +00:00
Andrey A. Chernov
03d24cbca4 DST offset calculation removed, it is wrong in any case. 1993-11-04 01:56:31 +00:00
Andrey A. Chernov
743eb022be Russian keymap (RUKEYMAP) changes:
New syscons keys added: NEXT, DBG, RBT
AltGr Shift removed from right Alt
Shift state on -,+ keys exchanged
1993-11-04 01:49:20 +00:00
Paul Richards
19bcb5e4a2 Restored comments that were removed from npx.c using # comment
format rather than /* */, as per advise from Jordan.
1993-11-03 23:32:35 +00:00
Paul Richards
81fc6236e6 Removed comments from within asm block.
New gas fails to parse comments within asm blocks properly. Simply
remove them until gas gets fixed.
1993-11-03 00:29:19 +00:00
Jordan K. Hubbard
9afdb1976e Now that STAR_SAVER and SNAKE_SAVER are kernel options, add code
to make sure that bad things don't happen if both are (incorrectly)
defined at once.
1993-10-31 00:19:01 +00:00
Jordan K. Hubbard
faa78b5f58 Fixed bug where syscons.c wouldn't compile if DDB was enabled.
Removed FAT_CURSOR and STAR_SAVER as compiled in defaults - these should
be kernel options!
1993-10-31 00:09:02 +00:00
Jordan K. Hubbard
4506032117 Update to latest Linux sound driver 2.0 1993-10-29 03:44:07 +00:00
Rodney W. Grimes
2110b1cd9d Put back the $Id$ strings 1993-10-28 06:15:14 +00:00
Jordan K. Hubbard
33853f9752 This is syscons version 1.1 1993-10-28 05:27:36 +00:00
Rodney W. Grimes
ce0dbe6e66 Fix for 1542C support, it turns out that the 0x8 extended bios flag is only
set when extended translation is turned on, thus we need to do the mailbox
unlock command no matter what value is in the extended bios flag byte as
the other extensions (ie, > 2 drive support) cause the same problems.

The code has been changed to ALWAYS unlock the mailbox interface on ALL
1542C class boards.
1993-10-28 02:38:36 +00:00
Jordan K. Hubbard
92f1946205 From: Amancio Hasty Jr <hasty@netcom.com>
Make sure calls to gus_voice_irq() are protected from interrupts.
1993-10-24 19:38:06 +00:00
Paul Richards
73b69d9921 Removed #define ISDEBUG from top of file, should be config option
to get debugging code compiled in.

Moved bpfilter.h out of ifdef'd code so it can be seen.
1993-10-24 04:42:32 +00:00
Paul Richards
568eb51a26 Moved allocation of memory into is_attach so that malloc gets
called once when card is attached. Solved problem with driver
getting hosed when a reset takes place.

Removed init_block array -- now part of malloced memory. No more
static declarations left.

Added code so that debug ioctl actually does something.
ifconfig is0 debug will now switch on debugging code.

Other general cleanups.
1993-10-24 04:27:00 +00:00
Jordan K. Hubbard
355ef93e2a Enable mpu401 driver. 1993-10-23 22:21:00 +00:00
Jordan K. Hubbard
4ec867953a Fixed up to at least compile (can't test) properly for FreeBSD 1993-10-23 22:13:42 +00:00
Jordan K. Hubbard
1cdd75d714 Made kernel printf's more closely follow standard BSD convention. 1993-10-23 21:11:49 +00:00
Jordan K. Hubbard
6b8afe4d37 This is the Linux generic soundcard driver, version 1.0c. Supports
SBlaster/Adlib/ProAudio Spectrum/Gravis/etc cards.  This is a BETA test
driver, please test it and get back to me!
1993-10-23 10:55:52 +00:00
David Greenman
2bcdabe146 * Revision 2.11 1993/10/23 04:21:03 davidg
* Novell probe changed to be invasive because of too many complaints
 * about some clone boards not being reset properly and thus not
 * found on a warmboot. Yuck.
 *
 * Revision 2.10  1993/10/23  04:07:12  davidg
 * increment output errors if the device times out (done via watchdog)
 *
 * Revision 2.9  1993/10/23  04:01:45  davidg
 * increment input error counter if a packet with a bad length is
 * detected.
1993-10-23 04:52:41 +00:00
Nate Williams
eb77639e83 This is my patched version of a busmouse driver originally by Rick Macklem
(rick@snowhite.cis.uoguelph.ca).  I am currently using it with a Microsoft
InPort busmouse, under FreeBSD Epsilon.  I hadn't planned on supporting it,
but I have patched it a few times, and I guess this is now the de facto
reference version, so send me any problems or improvements.

                                                        - Gene Stark
                                                          stark@cs.sunysb.edu
                                                          October 9, 1993
1993-10-19 19:46:49 +00:00
Paul Richards
e5e0d5829e Free malloc'ed memory when resetting card. 1993-10-18 22:48:48 +00:00
Rodney W. Grimes
965b29039e >From: Julian Elischer <julian@jules.dialix.oz.au>
Date: Tue, 19 Oct 1993 02:22:41 -40962758 (WST)

As the subject line says:
I can;t believe this typo is still here.

Has NOBODY used the isa_dmastart() routine for 16bit DMA?

I know I just hit the dma regs directly for the AHA1542,
and it appears that either everybody else does as well, or
they only use 8bit DMA (e.g. floppy)

Editors Note:
	The definition of DMA2_CHN was incorrectly using IO_DMA1!
1993-10-18 18:45:48 +00:00
Jordan K. Hubbard
538430ae1a Patch from stever@csuohio.edu (Steve Ratliff) to make FAT_CURSOR work
on HDA/CGA displays.
1993-10-18 02:19:54 +00:00
Paul Richards
1697bdcd61 Modified memory allocation to use malloc rather than a static array. 1993-10-17 22:22:46 +00:00
Rodney W. Grimes
dd05fde699 Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some
minor cleanup.  Added $Id$ to files that did not have any version info, etc
1993-10-16 19:17:18 +00:00
Rodney W. Grimes
6f78ca6026 Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some
minor cleanup.  Added $Id$ to files that did not have any version info, etc
1993-10-16 13:48:52 +00:00
Rodney W. Grimes
8b80a85bb0 Disable the aha_set_speed code since it breaks more than it fixes. 1993-10-16 12:27:20 +00:00
David Greenman
836e51b4a3 * Revision 2.8 1993/10/15 10:59:56 davidg
* increase maximum time to wait for transmit DMA to complete to 120us.
 * call ed_reset() if the time limit is reached instead of trying
 * to abort the remote DMA.
 *
 * Revision 2.7  1993/10/15  10:49:10  davidg
 * minor change to way the mbuf pointer temp variable is assigned in
 * ed_start (slightly improves code readability)
 *
 * Revision 2.6  93/10/02  01:12:20  davidg
 * use ETHER_ADDR_LEN in NE probe rather than '6'.
1993-10-15 11:06:41 +00:00
Rodney W. Grimes
37378adeb5 Add detection code for what model of AHA154X/Z we are running on,
then use that information to fix the enhancemode features of the
1542C/CF boards by turning them off.

When doing this I found that the Buslogic 545S does NOT properly
mimic the 1542 families AHA_INQUIRE command.  It only returns 1
byte of information, when the adaptec manual clearly states that 4
bytes are to be returned.  I added a printf that explains the error
when we see a 545S for now, I tried to come up with a better solution,
but it involved to much work for now.
1993-10-15 09:43:51 +00:00
David Greenman
cc44412791 Disassociate DTR and RTS. They were coupled together and shouldn't have
been. This was necessary to work around problems with some equipment
that don't respond favorably to having these both dropped simultaneously.
1993-10-14 09:13:54 +00:00
Rodney W. Grimes
08222b297c Surround printf for uha_init board not responding printf with #ifdef UHADEBUG,
since the main line probe code now tells you it did not find one.
1993-10-14 00:07:04 +00:00
Rodney W. Grimes
b200ffec79 Increase the DELAY that supposedly makes the Bustek 545 work from
1ms to 10ms.  I have my doubts, but oh well.
1993-10-13 16:34:10 +00:00
Rodney W. Grimes
5c644711a9 ALL:
Removed patch kit headers and rcsid strings, add $Id$.

isa.c:

Removed old #ifdef notyet isa_configure code, since it will never be
used, and I have done 90% of what it attempted to.

Add conflict checking code that searchs back through the devtab's looking
for any device that has already been found that may conflict with what
we are about to probe.  Checks are mode for I/O address, memory address,
IRQ, and DRQ.  This should stop the screwing up of any device that has
alread been found by other device probes.
Print out messages when we are not going to probe a device due to
a conflict so the user knows WHY something was not found.  For example:

aha0 not probed due to irq conflict with ahb0 at 11

Now print out a message when a device is not found so the user knows
that it was probed for, but could not be found.  For example:

ed1 not found at 0x320

For devices that have I/O address < 0x100 say that they are on the
motherboard, not on isa!  The 0x100 magic number is per ISA spec.  It
may seem funny that pc0 and sc0 report as being on the motherboard, but
this is due to the fact that the I/O address used is that of the keyboard
controller which IS on the motherboard.  We really need to split the
keyboard probe from the display probe.  It is completly legal to build
a pc with out one or the other, or even with out both!

npx.c:

Return -1 from the probe routine if we are using the Emulator so
that the i/o addresses are not printed, this is the same trick used
for 486's.

Do not print the ``Errors reported via Exception 16'', and
``Errors reported via IRQ 13'' messages any more, since these just lead
to more user confusion that anything.  It still prints the message
``Error reporting broken, using 387 emulator'' so that the person is
aware that there mother board is ill.
1993-10-13 15:59:30 +00:00
Rodney W. Grimes
7a94ec038f Remove erronous definitions of PHYSTOKV, correct one is in param.h now. 1993-10-12 07:15:38 +00:00
Rodney W. Grimes
b05fb556cf Use KERNBASE for locating stuff in kernel virtual memory, not hard coded
constants.
1993-10-12 06:59:36 +00:00
Rodney W. Grimes
963a0adea5 i82586 support file for Garrett Wollmans ie driver 1993-10-12 06:53:10 +00:00
Rodney W. Grimes
e191da859f > Gcc2 generates memcpy calls when doing some structure copying in the
> code. As this memcpy generation is done by the compiler it doesn't
> work to have memcpy a macro. Instead I made it a static function that
> calls bcopy.

Okay, I tracked down the d*mn thing that is causing the memcpy to be
emmitted by gcc2.  In the following patch is a fix to eliminate the
one place that was causing gcc to do the memcpy in function ie_readframe
for the ie_recv_frame_desc rfd = *(ie->rframes[num]) structure copy.

I also fixed the code so that the NS (XNS) support would compile with
out error and removed the cruft #define ns_* stuff from the softc
structures (I did this a while back for all the other either drivers)

Removed the $Log$ and all of the old log stuff, that is all kept in
the cvs tree, no need to duplicate it in the file... I'll copy it
into my commit message so that it is all retained, except the
revision numbers are going to get screwed up.

It now compiles cleanly under my LINT kernel...

>  I have not yet tested this on the AT&T fiver cards yet. But, Wollman
> has used it on various other AT&T cards. I'm pretty sure Terry also
> uses this driver.

$Log$ stuff from Garretts original file
 * $Log$
 * Revision 1.32  1993/06/20  15:56:15  wollman
 * Fixed warning message.
 *
 * Revision 1.31  93/06/20  15:52:28  wollman
 * More compilation lint.
 *
 * Revision 1.30  93/06/20  15:48:16  wollman
 * Commented all the rest of the cast-qual warnings.  Might be
 * fixed someday by changing the prototypes of bcopy(), bzero(), etc.
 *
 * Revision 1.29  93/06/20  15:40:13  wollman
 * Started fixing some of the cast-qual warnings (most just commented).
 *
 * Revision 1.28  93/06/12  20:39:14  wollman
 * Changed definition of MK_24 to silence -Wcast-qual.
 *
 * Revision 1.27  93/06/08  17:05:57  wollman
 * Attach routine now returns void.
 *
 * Revision 1.26  93/06/08  16:31:21  wollman
 * Deleted attempt to set watchdog timer, since we don't use it.
 *
 * Revision 1.25  93/04/16  22:15:31  wollman
 * Fixed infinite loop in iestart() which would cause the transmitter
 * to constantly step on the Ethernet, sending the same two packets over
 * and over again.  This crashes the router (really!) and makes other
 * network users very angry.
 *
 * Revision 1.24  93/04/14  23:57:47  wollman
 * Increased transmit buffer size from 1504 to 1512, just in case I don't
 * understand how the MTU is used.
 *
 * Revision 1.23  93/04/14  23:16:19  wollman
 * Fix iestart() so that it only tries to execute a command if one was
 * queued up (oops...).
 *
 * Revision 1.22  93/04/14  23:02:16  wollman
 * Unknown changes.
 *
 * Revision 1.21  93/04/12  18:29:33  wollman
 * Added multiple transmit commands.  Note that they are always queued in
 * pairs (there are only two to begin with), and the I flag is only set
 * on the second one.  This should decrease interrupt activity somewhat.
 *
 * Revision 1.20  93/04/12  15:36:05  wollman
 * Changed setup of config block to take into account difference between
 * StarLAN (10BASE-T) and Ethernet: StarLAN is Manchester, Ethernet is NRZ.
 *
 * Revision 1.19  93/03/23  18:58:44  wollman
 * Raised count of receive buffers from 32 to 48 and included analysis of
 * memory usage in a comment near that definition.
 *
 * Revision 1.18  93/03/18  03:59:53  wollman
 * Last try to get large TCP windows to work...
 *
 * Revision 1.17  93/03/18  03:54:10  wollman
 * Added RNR processing as a part of receive interrupts.  Hopefully this
 * will make everything Just Work now.
 *
 * Revision 1.16  93/03/18  03:23:24  wollman
 * Still having problems with RNR conditions.  Basic problem: say we
 * set TCP window to 16k, which is a semsible value.  Then smart
 * partners will blast 16k to us, of which we can fit 8k minus a bit
 * into our buffers.  (Need to look at that memory map..)  So, we get
 * an RNR interrupt.  The problem is, what do we need to do in this case?
 * The original code doesn't work, but it doesn't hang the system either.
 *
 * Revision 1.15  93/03/18  02:37:00  wollman
 * Disabled watchdog timer.  This gets called from a timeout somewhere,
 * which is running up at softclock.  This is at a higher priority than
 * we are, so we can get interrupted in the process of receiving something
 * by the timer expiration, which is not a nice thing to have happen.
 * Question: how can we keep this functionality, but do it in sync with
 * our interrupts?  (Ugh!)
 *
 * Revision 1.14  93/03/18  02:35:46  wollman
 * Fixed some more problems with receive code---it works!
 *
 * Revision 1.13  93/03/17  20:15:59  wollman
 * Think we fixed the serious (showstopper) bugs in 1.12.
 *
 * Revision 1.12  93/03/15  17:45:39  wollman
 * Changed filtering logic dramatically to avoid the unnecessary copyin
 * for BPF or multicast routing when the packet is not for us.  (We
 * have to run in promiscuous mode in this case.)  We still need to
 * deal with the problem of allocating one mbuf per receive buffer;
 * we should be able to get away with a single mbuf for all reasonable
 * incoming packets, and using an mbuf cluster will help avoid unnecessary
 * copying of data.
 *
 * Revision 1.11  93/01/30  20:23:15  wollman
 * Fiddled with reset code to hopefully make it work better when the
 * watchdog timer expires.  Question: why does it make a difference that
 * we do the same thing through ieioctl() as we were doing before.  The
 * old code, when iereset() was called, the receive unit would completely
 * die.  But, a cycle of ifconfig ie0 down ; ifconfig ie0 up' would bring
 * things back to normal.  So, we try to mimic that now.  Grrr...
 *
 * Revision 1.10  93/01/29  17:26:50  wollman
 * Finally fixed multicast routing/BPF mb_map full problem!!!!
 * It turned out that, when we received a packet not for us, we
 * would just return from ie_readframe(), *WITHOUT* freeing the
 * mbuf that the packet was in.  So, when running in promiscuous
 * mode (i.e., multicast routing or BPF without -p), we would have
 * (on our extremely busy subnet 4) a memory leak of epic proportions.
 *
 * We now hold on to a single mbuf chain allocated in this way,
 * and the next time a packet is read, we free it.  Also, the
 * next time a packet is transmitted, we free it.  This way,
 * we never lose more than 6 mbufs total (and on average more like
 * 3).
 *
 * Revision 1.9  93/01/23  14:22:21  wollman
 * Added some StarLAN Fiber modifications from L. Jonas Olsson.
 *
 * Revision 1.8  93/01/23  14:02:34  wollman
 * Added support for IP multicasting.
 *
 * Revision 1.7  92/11/21  17:51:59  wollman
 * Added StarLAN Fiber version point to my driver.
 *
 * Revision 1.6  92/11/20  18:21:45  wollman
 * Fixed documentation, made out-of-mbuf condition an error.
 *
 * Revision 1.5  92/11/20  18:14:02  wollman
 * Move change of ethertype to host byte order so that it's after
 * bpf_mtap.  Hopefully, this will allow us to listen to incoming
 * IP packets.
 *
 * Revision 1.4  92/11/20  18:11:00  wollman
 * Added code to drop packets when we run out of mbufs rather than
 * panicking.  This should alleviate the problems observed when using tcpdump.
 *
 * Revision 1.3  92/11/14  14:12:40  wollman
 * Added BPF support code.
 *
 * Revision 1.2  92/11/14  13:30:26  wollman
 * Added RCS keywords
 *
1993-10-12 06:52:34 +00:00
David Greenman
357eebce38 incorporated patches from Marc Frajola (marc@escargot.rain.com) to
unset TS_TBLOCK when the RBLEN falls below the low water mark.
1993-10-12 06:32:28 +00:00
Rodney W. Grimes
54b7aa6d2b Mitsumi cd rom driver from Holger Viet as fixed up by Gary Clark II.
Still a little rought, but it seems to be working.
1993-10-12 06:08:31 +00:00
Jordan K. Hubbard
11851b0ee1 Removed FAT_CURSOR as default since it breaks certain CGA displays
and it is better to conform to the lowest common denominator.
Those wishing to retain it can always use options FAT_CURSOR in
their config files.
1993-10-08 21:21:59 +00:00
Jordan K. Hubbard
bd41f6854b Latest changs for XFree86 2.0 1993-10-04 22:23:03 +00:00
David Greenman
627d219551 * Revision 2.5 93/09/30 17:44:14 davidg
* patch from vak@zebub.msk.su (Serge V.Vakulenko) to work around
 * a hardware bug in cheap WD clone boards where the PROM checksum
 * byte is always zero
1993-10-01 00:56:43 +00:00
Rodney W. Grimes
380888c9fa Change #include <sys/console.h> to <machine/console.h>, file will be moved
shortly
1993-09-30 23:59:49 +00:00
Rodney W. Grimes
982970298f >From: vak@zebub.msk.su (Serge V.Vakulenko)
Date: Thu, 30 Sep 1993 15:13:17 +0300

Description:
	Old wt driver is too incomplete and buggy.
	It does not support Archive controllers, BSD-like
	tape ioctls, multiple tape controllers, different
	tape density etc.
Fix:
	This driver is a replacement of the old one.
	It was not tested on different controllers, though.

	This is the streamer tape driver for 386bsd and FreeBSD,
	which supports Wangtek and Archive controllers.
	It was developed as a replacement of the old Wangtek
	tape driver from CMU.

In comparison with the CMU driver, this version has the following enhancements:
1) Support for Archive SC402 and SC499 tape controllers added.
2) Support for up to three tape controllers on the same machine.
3) Support for BSD-style ioctls MTIOCGET, MTIOCTOP.
   Mt command now works adequately with this driver.
4) Asynchronous REWIND and FSF operations, close() will not wait
   until they finish.  The next open() will wait for it instead.
5) Use of WTQICMD ioctl is limited to ERASE and RETENS operations.
   This prevents the user from locking the tape driver by strange
   tape operations.
6) Tape density switching added.
7) The status of the process, blocked on the tape operation,
   is displayed at the WCHAN column of the `ps' command as:

	wtread    reading data from the tape
	wtwrite   writing data to the tape
	wtrfm     reading the tape marker
	wtwfm     writing the tape marker
	wtrew     rewinding the tape
	wterase   doing WTQICMD ERASE operation
	wtretens  doing WTQICMD RETENS operation
	wtorew    doing MTIOCTOP REW/OFFL operation
	wtorfm    doing MTIOCTOP FSF operation
	wtowfm    doing MTIOCTOP WEOF operation

Block interface (writing blocks less than 2048 bytes) is not functioning
pwoperly.  Use raw interface instead.
1993-09-30 20:12:37 +00:00
David Greenman
2da38870a3 * Revision 2.4 93/09/29 21:24:30 davidg
* Added software NIC reset in NE probe to work around a problem
 * with some NE boards where the 8390 doesn't reset properly on
 * power-up. Remove initialization of IMR/ISR in the NE probe
 * because this is inherent in the reset.
1993-09-30 05:27:55 +00:00
David Greenman
e34ff1781d * Revision 2.3 93/09/29 15:10:16 davidg
* credit Charles Hannum
1993-09-29 22:15:53 +00:00
David Greenman
9699168bba * Revision 2.2 93/09/29 13:23:25 davidg
* added no multi-buffer override for 3c503
 *
 * Revision 2.1  93/09/29  12:32:12  davidg
 * changed multi-buffer count for 16bit 3c503's from 5 to 2 after
 * noticing that the transmitter becomes idle because of so many
 * packets to load.
 *
 * Revision 2.0  93/09/29  00:00:19  davidg
 * many changes, rewrites, additions, etc. Now supports the
 * NE1000, NE2000, WD8003, WD8013, 3C503, 16bit 3C503, and
 * a variety of similar clones. 16bit 3c503 now does multi
 * transmit buffers. Nearly every part of the driver has
 * changed in some way since rev 1.30.
1993-09-29 20:30:26 +00:00
Rodney W. Grimes
d2f07716e2 >From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su>
Date: Wed, 29 Sep 1993 01:54:53 +0300

To bring this error try to make two swap partitons on one disk:
one of the partitions will be not recognized.
Fix is simple: set uninitialized val variable.
1993-09-29 01:11:19 +00:00
Jordan K. Hubbard
0e583a0138 From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su>
AltGr Lock code for zero repeat count ommited, so AltGr Lock
works only one time and never again :-)
1993-09-29 00:42:10 +00:00
Rodney W. Grimes
e730ca26a3 Convert another printf into an lprintf since this should only be output
for debugging.

Thanks Chris.
1993-09-28 21:50:59 +00:00
Jordan K. Hubbard
b5275b8103 Version number support for XFree86 1993-09-28 20:53:48 +00:00
Rodney W. Grimes
5487793b4b >From: chmr@edvz.tu-graz.ac.at (Christoph Robitschko)
Date: Tue, 28 Sep 1993 09:03:13 +0100 (MET)
The only place I found with a printf("status %x") is in /sys/i386/isa/lpt.c,
and looks much like a left-over debugging printout...

And it was... I changed it to an lprintf (which is defined if debuggin is on)
			Rod
1993-09-28 17:02:34 +00:00
Jordan K. Hubbard
fae56ff15f Change to sio for recognising the last serial port on a multiport
card correctly.

Updated syscons to 0.2e, added features for upcoming XFree86 2.0,
fixed crashbug.
1993-09-28 00:01:18 +00:00
David Greenman
ee0ccf358a * Revision 1.30 93/09/24 18:43:31 davidg
* fix bug where Compex boards ident themselves as 8003E's and the
 * 16bit override wasn't working
1993-09-25 01:50:15 +00:00
Rodney W. Grimes
92ed385a09 >From: bde@kralizec.zeta.org.au (Bruce Evans)
Date: Thu, 16 Sep 93 01:35:10 +1000
Julian writes:

>In fact DEVIDLE and FINDWORK ended up being basically equivalent.
>the bit I wonder about, is the returning of 0.. What (other than
>another request from somewhere else in the kernel) is going to start
>work on the next item on the queue?

I think removing FINDWORK would make things clearer.

Nothing much is going to start work on the next item.  However, it is
pointless to continue processing the queue for the same unready drive.
Aborting all reads and trying harder to perform all writes would be
better.
Julian writes.

> no, actually it should be:
> fdt = fd_data[FDUNIT(minor(dev))].ft;

Fixed.
From: bde@kralizec.zeta.org.au (Bruce Evans)
Date: Thu, 16 Sep 93 22:56:01 +1000
The fd driver reported the wrong cylinder/head/sector numbers after an
error (ST3 is only valid after a sense-drive command), and didn't report
fs block numbers (diskerr was not used).

There was an old problem with writes to block fd devices.   Try this:

1. write protect floppy in fd0.
2. tar cf /dev/fd0a /dev/null.  Repeat a few times.  Later writes tend to
   terminate earlier.
   3. un-write protect floppy.
   4. repeat step 2.  The writes tend to return 0, 2048, 4096, ... and then
      succeed.

This was caused by a bug in vfs__bios.c.  (The bug is fixed in NetBSD's
vfs_bio.c.)  fd.c sets bp->b_resid to nonzero after an error.  vfs__bios.c
was not initializing bp->b_resid.  This causes some writes to terminate
early (e.g., writes to block devices; see spec_write()).

Related funnies:

1. Nothing tries to write the residual bytes.
2. The wd driver sets bp->b_resid to 0 after an error, so there's no
   way anything else could write the residual bytes.
3. I use the block fd device for tar because the raw device seemed to
   have more bugs long ago, and because it ought to be able to handle
   buffering more transparently (I don't want to have to know the
   device size).  But spec_write() always uses the size BLKDEV_IOSIZE
   == 2048 which is too small.  For disks it should use the size of
   one track (rounded down to meet the next track boundary or the i/o
   size).  Here it would help if the DIOCGPART ioctl worked.  But
   DIOCGPART is not implemented for floppies, and the disk size is
   ignored except for partitions of type FS_BSDFFS.

Bruce
1993-09-23 15:22:57 +00:00
David Greenman
60381058cd rewrote interrupt code to be cleaner, fixed up some other parts
to make it easier to add future board types.
1993-09-22 17:47:43 +00:00
Rodney W. Grimes
dc4ff321f2 Removed $Log$ section and patch kit headers. And here is the full
message for Bruces changes:

>From: bde@kralizec.zeta.org.au (Bruce Evans)
>Subject: fixes for fd driver

I think I've fixed some bugs in the 0.2.4 fd driver.

1. The main cause of hangs was that there was no timeout for seeks.  So
   attempting i/o with no floppy in the drive hung iff a seek was required.

2. Opens of unattached drives were allowed.  The kernel usually paniced
   soon after due to a bad pointer.

3. Some timeout functions ran at splclock() instead of splbio().  This
   may not have mattered.

4. The state machine was left in a funny state after a timeout.

5. Some function headers were new-style.

6. I picked up some code posted the other day to implement label ioctls.
   Now `disklabel fd0' works.  See a comment for how to modify conf.c.
1993-09-15 23:27:45 +00:00
Rodney W. Grimes
02aa90d831 >From: paul@u.tvt.se (Paul Pries)
>Subject: Bad bug in kbdtables.h [FreeBSD]

I found a bug in /sys/i386/isa/kbdtables.h which contain the
different keyboard layouts for syscons.  This regards all tables exept
the Danish and US.  When compiling the kernel with any other keymapping
than Danish or none at all (US), you get an error that 'key_map' is undefined.
This is because there is a typo in the name of the struct containing
the tables, keymap intead of key_map.
1993-09-15 23:03:21 +00:00
Jordan K. Hubbard
f5f7ba035f Bruce's multifarious patches for the floppy driver (not well tested, but
since what we have is crap as it is, it can't do much worse!).
1993-09-14 19:34:32 +00:00
Rodney W. Grimes
e793dbb026 From guido@gvr.win.tue.nl Wed Sep 8 13:34:16 1993
That is because TIOCMGET was broken. Yes...this is known for some time
and no, we (Bruce and me) never posted it. Why? Simply because we choose
to post fixes when we fixed most of the bugs.

Anyway..now that the slip problems are coming, here is a fix for
correct TIOCMGET behaviour.

-Guido
Note: this should be tested first (Rich?).  Tested by rgrimes
1993-09-10 16:59:16 +00:00
David Greenman
1df5695c0a As of this revision, all known bugs have been fixed. Some of the fixes include:
1) fixed 3c503 lock-up if the thinwire cable was disconnected at boot time
2) 8013EBT boards now work (quite well!) in 16bit/16k mode
3) ED_NO_DOUBLE_BUFFERING flag now works
4) slightly higer performance (about 3%) with 16bit WD/SMC boards
5) support for WD8013WC (10BaseT) boards

   Additionally, the probe code has been reorganized to be much cleaner. This
revision of the driver is 1.25. The release notes have been updated as well.
1993-09-09 07:01:23 +00:00
Jordan K. Hubbard
cc4dfeaaa0 Soren's latest syscons changes. 1993-09-08 22:11:48 +00:00
Rodney W. Grimes
bfdbfb98fd From michaele@vice.ico.tek.com Wed Sep 8 09:50:45 1993
Subject: Re: Some small errors in GAMMA
4.      Move printf("\n"); at line 491 in "/sys/i386/isa/sio.c" to after
        COM_MULTIPORT block at line 512.
From rgrimes:
The above would cause the word (multiport) with out a new line to
appear after the uart type message if you had COM_MULTIPORT enabled.
1993-09-08 17:38:05 +00:00
Rodney W. Grimes
0ad99dbc30 Reverting wd driver back to version before Bruces new driver until the
many bugs can be worked out of it...
1993-09-07 02:08:51 +00:00
Rodney W. Grimes
5c954fb68d Removed patch kit header, added $Id$
Increased timeout in wdwait from 1000 to 2000, this makes the st157A's
at least pass the probe routines :-)
1993-09-06 17:41:46 +00:00
Rodney W. Grimes
246bb5c345 Fixed usage of arpcom and #define blahblah arpcom.blahblah, fixed ioctl
support for options NS (XNS networking).
1993-09-06 16:13:15 +00:00
Rodney W. Grimes
2a5017c0e0 Removed patch kit header, added $Id$
Added support of DONET({IMP,NS,ISO}) so you can now compile with options
NS and ISO, still missing some IMP code, but since the imp is old and
gone I doubt this will ever be used.
1993-09-06 16:12:05 +00:00
Rodney W. Grimes
cfd895c81e Date: Fri, 3 Sep 93 01:25:44 +1000
From: bde@kralizec.zeta.org.au (Bruce Evans)

This fixes several problems.

It has almost everything that is in the FreeBSD version of Aug 22.
It is missing the bug for 2 drives and still prints <> around the
drive type.  It handles BADEND144 less verbosely.  It does wdgetctlr()
somewhat differently from NetBSD/FreeBSD.

Date: Sun Sep  5 06:45:12 PDT 1993
From: rgrimes@cdrom.com

Fixed printf's to be correct, since Bruce used the old ones.  This driver
still prints phantom wd1's on some Maxtor and other IDE drives, I have
a patch I am sending to Bruce for checking.
1993-09-05 13:46:17 +00:00
Rodney W. Grimes
4ada418a9b Replaced the return (1)'s with return (IO_KBDSIZE) in the probe code so
that the printfs during the probing prints the range instead of just the
start address.
1993-08-28 13:26:30 +00:00
Rodney W. Grimes
6526fb8330 Revised drivers from Julian. 1993-08-28 03:07:44 +00:00
Rodney W. Grimes
89bc97311a xxxprobe now returns the correct number of I/O registers used so that
the probe output during boot gives the I/O range instead of just the
starting address
1993-08-28 03:02:52 +00:00
Rodney W. Grimes
905ee1678d Fix so that unit number 1 is found again. 1993-08-24 19:41:58 +00:00
Rodney W. Grimes
237fbcc806 Corrected off by 2 error in DELAY macro (it was delaying for 2 * value).
From Bruce Evans.
1993-08-24 01:24:43 +00:00
Rodney W. Grimes
f254020327 Some more small nits in the printf's fixed. 1993-08-22 10:00:16 +00:00
Rodney W. Grimes
296cbdb15b Fixed printf's so that they announce them selfs correctly (ie aha%d: before
every error message and every probe message).
1993-08-21 20:01:59 +00:00
Rodney W. Grimes
3c742f974a Added from: line to reference the pccons.c derivation of this code, otherwise
the BSD copyright would be very bad to have on this file.
1993-08-20 17:19:29 +00:00
Rodney W. Grimes
b6105e6d2a Update scsi code to the latest from Julian. This code is now identical
to the last copy from Julian.  After this commit I will be commiting the
local fixes and makeing diffs to send back to Julian so he can update his
code.

----
>From julian@jules.DIALix.oz.au  Thu Aug  5 09:25:23 1993
To: hd@world.std.com, julian@jules.DIALix.oz.au
Cc: nate@bsd.coe.montana.edu
Subject: Re: new scsi

----
>From julian@jules.DIALix.oz.au  Sat Aug  7 04:13:17 1993
To: hd@world.std.com (HD Associates)
Cc: nate@bsd.coe.montana.edu
Subject: Re: timeout diffs

Here are the diffs to take the scsi stuff to my latest tree from what
Nate and you received..

the changes remove all the local timeout stuff and use (un)timeout(),

----
>From julian@jules.DIALix.oz.au  Sat Aug  7 04:13:45 1993
To: hd@world.std.com (HD Associates)
Cc: nate@bsd.coe.montana.edu, briggs@csugrad.cs.vt.edu

here is a fix for a silly bug in the scsiconf I just sent out
and a similar fix for st.c
1993-08-20 09:21:40 +00:00
Andrew Moore
7aed710168 added Bustek 545 support (patch from Christoph Robitschko):
*** aha1542.c~	Thu Aug 19 14:25:33 1993
--- aha1542.c	Thu Aug 19 14:25:49 1993
***************
*** 954,959 ****
--- 954,960 ----
  	printf("aha%d:",unit);
  #define	PRNT(x) printf(x)
  #endif	__386BSD__
+ 	DELAY(1000);	/* for Bustek 545 */
  	aha_cmd(unit,0, sizeof(conf), 0 ,&conf, AHA_CONF_GET);
  	switch(conf.chan)
  	{
1993-08-19 21:32:59 +00:00