Commit Graph

72 Commits

Author SHA1 Message Date
pk 69fe6f242f Account for changed bus attachment scheme. 1998-03-21 20:11:30 +00:00
thorpej 1adb4489a6 Update for changes to config. 1998-01-12 20:23:38 +00:00
thorpej 3b4ad2b60e Copyright assigned to The NetBSD Foundation. 1997-10-05 18:15:51 +00:00
bouyer 6f3bab1f59 Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
1997-08-27 11:22:52 +00:00
pk 0e6ca8da9f Use `target selection with DMA' by default. 1997-07-19 21:57:01 +00:00
pk ec02e14ae2 Remove all `bustype' arguments from map[io]dev() and REG2PHYS(). 1997-05-24 20:16:06 +00:00
thorpej 5464afa761 Convert the SPARC esp driver to be a front-end for the MI 53c9x driver. 1997-02-27 01:16:19 +00:00
pk 841d1ec634 Comply with recent autoconfiguration changes. Diffs graciously
supplied by Chris Demetriou.
1996-12-10 22:54:46 +00:00
thorpej d502e68402 Fill in sc_link.max_target 1996-12-10 21:27:16 +00:00
pk c0a9fe4e7a Cancel any queued timer events before re-scheduling a timeout, so esp_abort()
can be called from other places besides the timeout handler.
1996-11-27 21:34:59 +00:00
pk 4526babc82 Pay attention to DMA errors as reported by DMAINTR() returning -1. If this
happens reset everything.

Re-schedule a timeout when first attempting to abort an operation.
1996-11-27 21:24:20 +00:00
pk 89b8591c60 Add explicit casts to `%l*' formatted arguments. 1996-11-16 23:14:58 +00:00
cgd 000ff895c3 sync with alpha version 1996-11-12 21:06:21 +00:00
christos 7d1960f502 backout previous kprintf change 1996-10-13 02:59:38 +00:00
christos 19d8368f2f printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:44:42 +00:00
mycroft 4cd799d5a9 Remove unused variable. 1996-09-28 03:37:36 +00:00
mycroft aaad0e1149 Sync with Alpha version. 1996-09-28 03:21:04 +00:00
thorpej 8d5c3b9cd1 Sync with the alpha version, fixing several SCSI protocol bugs.
NOTE: THESE FILES ARE NOW IDENTICAL TO THEIR ALPHA COUNTERPARTS.
The C preprocessor does the Right Thing when these files are built
on a SPARC.  This makes it significantly easier to diff the two
versions (until a real MI 53c9x driver is done, hint hint).
1996-09-28 01:49:06 +00:00
cgd adeb6b4058 replace sequences of 8 spaces with tabs (only one instance). kill
unnecessary newlines after return statements but before function
close-braces.
1996-09-09 18:01:30 +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
pk 2266b8dd57 Use the setting of the ESPCFG2_FE bit rather than revision number to decide
on the ESP chip's maximum transfer count.
1996-06-12 19:12:19 +00:00
pk 6a4a26da0c Correct test for `dmachild' which failed on `esp at obio*' configs (PR#2541). 1996-06-12 12:46:21 +00:00
pk 94cd1644ee Avoid the "features enable" bit on ESP100A's; apperently this is a source
of trouble on many machines (from Krister Walfridsson; PR#2537).
1996-06-11 22:26:16 +00:00
pk a8deff302c Clamp synch-transfer parameters at our maximum values on device-initiated
synch negotiation.
1996-05-30 22:19:10 +00:00
pk bc77c57c13 espattach() requires DMA to be configured. For now, panic if it is not. 1996-05-21 19:09:43 +00:00
pk 50e92fd71d Use configuration file flags to disable reselection and/or sync negotiation,
on a per target basis (until the driver can sort things out on its own).

Test against "sbus" in stead of "espdma" to find out where in the
configuration tree we are: an esp can be the child of a "dma" on SBus
add-on boards.
1996-05-16 20:31:28 +00:00
pk 2f3ec93250 Various cleanup; mostly trailing spaces/tabs. 1996-03-31 22:38:29 +00:00
pk 2dd9317452 Remove reference to sense code "internals". 1996-03-23 21:09:04 +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 fe4bb997c9 fix format in panic() 1996-03-16 23:28:30 +00:00
christos 03b701e393 Bring prototypes into scope and fix compiler warnings. 1996-03-14 19:44:30 +00:00
pk 90fb0cc9da Don't come down so hard on targets that ignore SDTR msgs. 1996-03-05 09:29:58 +00:00
pk abd3cf4df2 Don't reset `xs->retries'. 1996-02-29 23:33:48 +00:00
pk 517988b940 Interims:
Comment out `STATINT' checking; this is apparently unreliable on some
ESP revisions.
Deal with target initiated synch re-negotiation.
1996-02-26 14:48:30 +00:00
mycroft 291267e40c Implement SDEV_AUTOSAVE. 1996-02-22 23:35:04 +00:00
pk 66fedbbe19 Correct format in a printf(). 1996-02-21 10:21:14 +00:00
pk d5ddbf99ab Separate DMA and SCSI routines more. 1996-02-12 15:59:51 +00:00
pk 52c068d6e6 Be sure to reset the chip when relection fails to prevent corrupting data. 1996-02-06 02:03:46 +00:00
pk 644c68a706 Towards machine independency, per cgd: macros to access hardware registers. 1995-12-18 23:58:31 +00:00
pk 0d1981416d Adapt to changed mapiodev() interface. 1995-12-11 12:43:14 +00:00
pk 8a1606d530 Don't return `XS_DRIVER_STUFFUP' too easily; this can hose buffer cache
writes. Say XS_TIMEOUT in stead so the scsi code will retry.
1995-12-01 01:00:55 +00:00
pk ce474272f1 Prevent synch negotiation on ESP100 chips 1995-11-28 22:49:31 +00:00
pk 9bf3251e46 Lots of major and minor bug fixes and changes.
- properly do MSG_IN handshaking, so we can actually receive multi-byte msgs.
- do synch negotiation (now that the above works).
- handle disconnects.
There are a few trial-and-error bits at points where the docs I have are
particularly ambiguous about the state of chip and/or SCSI bus.

Things to do:
- more cleanup
- deal with MSG_OUT phase better
- keep some "config reg 3" bits per target (ie. FASTCLK and FASTSCSI).
1995-11-28 20:49:12 +00:00
pk 996526aa02 Make error recovery actually work, i.e. don't hang on SCSI bus resets
and re-synchronize before re-scheduling pending operations.
Things seem to be a fair bit stabler now.
1995-11-03 16:47:43 +00:00
pk a3f2bf19e4 Various:
- make esp_poll() approximate the given timeout value.
	- introduce esp_abort(), and use it for timed out commands; make		  targets and driver less confused.
	- make {free,ready,nexus}-list management somewhat more coherent.
	- make sure we only proceed down the state machine in espintr()
	  if there really is an interrupt pending.
1995-10-24 16:03:57 +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 9d7c17bfcb We have no need for `esp_print()'; the only child we expect is a `scsibus',
and there's nothing to say if it isn't there. Returning -1 is an error
anyway as noted by Chuck Cranor.
1995-09-11 19:41:21 +00:00
pk bac2393fb0 Probe config registers correctly. 1995-09-06 12:35:38 +00:00
pk 7b7773a0c5 Use bootpath_store() to set next boot component; used in dk_establish()
to match `sd' devices against the PROM's boot path.

Detect DMA "overshoots" when handling odd-sized transfer sizes (e.g., xfers
from/to raw partitions), by using the "Transfer Pad" command when the
transfer count reaches zero.
1995-08-18 10:43:46 +00:00