summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx/aic7xxx_reg.h
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1997-01-22 18:01:07 +0000
committergibbs <gibbs@FreeBSD.org>1997-01-22 18:01:07 +0000
commite95f937a4f0a430e1fcb6a1249ef89625fb3e095 (patch)
treecdbb69f18d6b643929c09269eeb9f98c0b3c760d /sys/dev/aic7xxx/aic7xxx_reg.h
parent3c9f4a1b790a317d3e15afbbc44e3b17affe62e7 (diff)
downloadFreeBSD-src-e95f937a4f0a430e1fcb6a1249ef89625fb3e095.zip
FreeBSD-src-e95f937a4f0a430e1fcb6a1249ef89625fb3e095.tar.gz
Clear the SCSI channel after we go to busfree instead of after re/selection.
Only enable reselections once the channel and SCSIRATE have been cleared. Add a pause block around the test busy code in the non-tagged case to simplify error recovery in the corner case of aborting an SCB that just got started. Simplify reselection processing by removing the call to initialize_scsiid. Clear the scsiseq re/select control bits and setup for catching bogus busfrees earlier in the re/select process. Improve the automatic PIO code. It turns out that SPIORDY is not a reliable hardware condition bit, so use REQINIT intstead. Don't rely on PHASEMIS either since it can take too long to come true. Use a brute force comparison instead. Remove some unnecessary overhead in the command complete processing. It should be nearly impossible to overflow the QOUTFIFO (worst case 9 command have to complete with at least 6 of them requiring paging on an aic7850), so don't take the additional PIO hit to guard against this condition. If we don't see our interrupt in time, the system has bigger problems elsewhere. If this ever does happen, the timeout handler will notice and retry the command.
Diffstat (limited to 'sys/dev/aic7xxx/aic7xxx_reg.h')
-rw-r--r--sys/dev/aic7xxx/aic7xxx_reg.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx_reg.h b/sys/dev/aic7xxx/aic7xxx_reg.h
index c4afb3b..a185792 100644
--- a/sys/dev/aic7xxx/aic7xxx_reg.h
+++ b/sys/dev/aic7xxx/aic7xxx_reg.h
@@ -320,6 +320,7 @@
#define SINDEX 0x065
#define DINDEX 0x066
+#define ALLONES 0x069
#define ALLZEROS 0x06a
#define NONE 0x06a
#define SINDIR 0x06c
@@ -412,7 +413,6 @@
#define REJECT_MSG 0x61 /* Reject message received */
#define BAD_STATUS 0x71 /* Bad status from target */
#define RESIDUAL 0x81 /* Residual byte count != 0 */
-#define ABORT_TAG 0x91 /* Sent an ABORT_TAG message */
#define AWAITING_MSG 0xa1 /*
* Kernel requested to specify
* a message to this target
@@ -527,6 +527,7 @@
#define MK_MESSAGE 0x80
#define DISCENB 0x40
#define TAG_ENB 0x20
+#define TRACE_SCB 0x10
#define ABORT_SCB 0x08
#define DISCONNECTED 0x04
#define SCB_TAG_TYPE 0x03
OpenPOWER on IntegriCloud