Commit Graph

35 Commits

Author SHA1 Message Date
cjs ca5f101ba7 Remove code that stops transfers of >63K. The Sun 4 doesn't have this
limitation, and minphys() is supposed to catch this on other architectures.
1997-03-14 19:57:20 +00:00
pk d8fc2afd1e Replace `cpumod' with `cpuinfo.cpu_type' equivalents. 1997-03-10 23:01:40 +00:00
gwr 2de163471e Minimal changes to adapt to removal of NCR5380_PERMIT_RESELECT.
This driver should be updated to allow per-target control over
disconnect/reselect, but I will leave that to the port masters.
1997-02-26 22:29:08 +00:00
thorpej e256e03227 Arrange the code that sets the options flags such that the user can
completely override the defaults (including disabling DMA) in the
kernel config file.
1997-01-23 02:11:23 +00:00
pk 841d1ec634 Comply with recent autoconfiguration changes. Diffs graciously
supplied by Chris Demetriou.
1996-12-10 22:54:46 +00:00
thorpej ef5333043b Copyright assigned to The NetBSD Foundation. 1996-12-09 17:46:44 +00:00
thorpej 35c9c776fe Use bitmask_snprintf(). 1996-11-13 06:13:39 +00:00
christos 8d9699acda backout previous kprintf change 1996-10-13 02:59:55 +00:00
christos 19d8368f2f printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:44:42 +00:00
cgd 71ad30d0e9 (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
    single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
    function, and kill any locally-defined print function.
1996-08-28 18:59:15 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
thorpej 1a79065f9f Enable DMA by default on the 4/100 "sw" controller; the DMA bugs appear
to have been fixed.
1996-05-13 01:53:45 +00:00
pk 2f3ec93250 Various cleanup; mostly trailing spaces/tabs. 1996-03-31 22:38:29 +00:00
pk a8564828ee Back to normal printf()s, now that gcc understands `%b'. 1996-03-26 00:35:25 +00:00
thorpej 3cd14f7597 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 02:00:30 +00:00
christos 2cb7b87853 fix formats in printf() and panic() 1996-03-16 23:28:35 +00:00
christos 03b701e393 Bring prototypes into scope and fix compiler warnings. 1996-03-14 19:44:30 +00:00
thorpej f579d1a485 Fix an operator precedence botch. *sigh* This just hasn't been my week. 1996-03-01 07:44:43 +00:00
thorpej 93dff23036 Back out the "don't use DMA if SCSI_POLL is set" saftey-net. The
MI 5380 code did something I didn't really expect, which caused DMA
to disable itself if only DMA was enabled.  *grumble*
1996-02-29 03:28:38 +00:00
pk 3d182fe265 Use CPU-type macros 1996-02-25 21:53:49 +00:00
thorpej 1a5d5e25c6 Add an "sw_options" patchable global so that folks can still live life
on the edge (of sw DMA uncertainty) with pre-built kernels.
1996-02-23 16:29:34 +00:00
thorpej ef3500b579 Attempt to work around a hardware bug that screws up DMA on the 4/100.
Apparently, some early 4/100 DMA controllers do illegal memory access on
large ( >= NBPG ) transfers at the end of the transfer.  This appears
as SI_CSR_DMA_BUS_ERR in the csr.  To work around this, we simply
transfer the (up to 3) missing bytes from the bpr.  We were doing this
anyway, so the work-around is to ignore the bus error.

BUT!  I goofed when I implemented the "left-over byte" code for the sw!
It *should* be correct now.  Keep metrics (acceeible via DDB) on the number
of 1, 2, and 3 byte clean-ups, as well as the number of "clean" transfers,
just so we can get a clearer picture.

Thanks to Andrew Gillham <gillham@whirlpool.com> for noticing this!
1996-02-23 07:24:45 +00:00
thorpej c86505a6a5 If we get a transfer with the SCSI_POLL flag set, don't use DVMA. We
only get these during autoconfiguration and during crash dumps.  During
autoconfiguration, the transfers are small enough that DVMA won't be used
anyway.  However, using DVMA during a crash dump can be dangerous,
depending on the nature of the panic, so we avoid it.
1996-02-22 07:25:05 +00:00
thorpej 2f132eb5e7 Bring in Gordon's fix from the sun3 port:
Correct the DMA transfer count when the target disconnects before
	the whole transfer is completed.  (Affects VME writes)
	Reselect now works on the VME si board!
1996-02-22 07:14:53 +00:00
thorpej 926f925088 Re-arrange slightly the si_options special case for the `sw'. 1996-01-09 02:36:58 +00:00
thorpej 3cb556defb Disable DMA by default on the 4/100 `sw' controller. I've had a couple
of reports of data corruption, and would rather be slow and safe until
the DMA bug is fixed.
1996-01-09 02:06:50 +00:00
thorpej d35bd4bb23 Fix a typo that would bite if the interrupt level were wildcarded in the
kernel config file.
1996-01-04 00:20:19 +00:00
thorpej 6d6c652f18 New driver for the Sun SCSI-3 VME and 4/100-series SCSI "Weird" controllers,
utilizing David Jones' new MI NCR 5380 code.  Ported from the sun3 ncr_si.c
and "sw" DMA code written by me.

This driver contains user-configurable "options", which can be set via the
"flags" directive in the kernel configuration file.  By default, only
DMA is enabled.  DMA completion interrupts and reselection may be enabled
by setting the appropriate bits with "flags".  See si.c for details.

Note that DMA completion interrupts and reselection don't yet work on the
4/100 controller.  I don't know why, and it's unlikely that I'll have
the opportunity to find out any time soon.  DMA does work, and results
in a considerable performance increase.

DMA, DMA completion interrupts, and reslection all work on my 4/260 (VME)
system with modern SCSI-II disks.
1996-01-01 22:40:56 +00:00
pk 0d1981416d Adapt to changed mapiodev() interface. 1995-12-11 12:43:14 +00:00
pk db43cabe32 Re-instate configuration print routines, following Chris' suggestion.
Only prints something if there's no scsi bus to attach.
1995-09-14 20:38:53 +00:00
pk 0a5ab32e3d We have no need for `si_print()'; the only child we expect is a `scsibus',
and there's nothing to say if it isn't there.
1995-09-11 19:35:06 +00:00
pk 003751356c Patches from Jason Thorpe to deal with 4/110 scsi (PR#1422). Also includes
bootpath glue (PR#1414) (this needs finishing off in disksubr.c).
1995-09-03 22:21:27 +00:00
pk 42802ac2fa Drop si_minphys(). 1995-08-16 23:01:16 +00:00
cgd ffe4785a58 update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
1995-07-24 07:33:32 +00:00
pk 89cb640a97 si scsi driver, adapted from sun3 version by Jason Thorpe.
Note: re-arranged to use dev/ic/ncr5380* MI files.
1995-07-08 21:32:47 +00:00