Commit Graph

53 Commits

Author SHA1 Message Date
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
cgd ffe4785a58 update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
1995-07-24 07:33:32 +00:00
pk cdbe7b1bc5 Have esp_minphys limit transfers to MAXPHYS bytes. 1995-07-13 12:45:22 +00:00
pk 4770e5e7c5 Try to recover from multi-byte messages sent by a target for which we
get an "Illegal command" (why is this?) when we try to pull it in.
On detection of this condition, we reset the SCSI bus and simply stop asking
this target for an identify messages, for now.
1995-06-02 13:43:30 +00:00
pk c897fc5127 Better 4/100 support. 1995-03-01 21:09:19 +00:00
pk f6cd1eeea7 Integrate changes from Chuck Cranor for the Sun 4/100.
Support for multiple register banks on SBUS devices (based on patches
from Francis Dupont).
Highlights:
	romaux defines an array of register spaces.
	pay attention to `vactype'.
	quirks handling 4/100 idiosyncracies.
1995-02-01 12:37:21 +00:00
mycroft 5a7fac721d Handle incoming messages longer than 1 byte correctly. 1995-02-01 09:50:18 +00:00
mycroft 81b3059a98 ESP_ID -> ESP_SELID 1995-01-07 05:17:59 +00:00
pk 2a22c853db Adapt to changed SCSI subsystem. 1995-01-02 20:21:01 +00:00
deraadt 941871d6ab XXmatch change (and a few __P() as well) 1994-11-23 07:02:02 +00:00
deraadt d3408abf29 C error 1994-11-21 01:56:38 +00:00
deraadt 274a90762d copyright/Id cleanup 1994-11-20 20:51:32 +00:00
deraadt 4cd7c0f34e reset scsi bus at attach time 1994-11-05 09:35:54 +00:00
deraadt 2fb5b874a1 sbus_establish() is sun4c/sun4m specific 1994-10-15 08:57:20 +00:00
deraadt 3ae3c206d7 mapiodev takes a bustype argument now 1994-10-15 05:48:47 +00:00
deraadt 425833d1b0 sun4/300 support works 1994-10-02 21:59:56 +00:00
deraadt 1340faab13 Replacement esp (NCR 53C9X + LSI DMA) scsi driver from Peter Galbavy. 1994-09-17 23:48:32 +00:00
deraadt bdf0a4caf3 fix for bug #403 from <grossman@informatik.tu-muenchen.de> 1994-08-13 08:53:38 +00:00
deraadt f79d935940 new from torek; now multiple drives will work 1994-05-27 02:38:15 +00:00
deraadt beab56ab90 new from torek:
add torek's comments to my DMA_DRAIN fix
1993-11-12 00:50:48 +00:00