summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/ispmbox.h
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2010-02-27 05:41:23 +0000
committermjacob <mjacob@FreeBSD.org>2010-02-27 05:41:23 +0000
commit11df6402b4916bd2c5bf5c685dc72b0c13a37098 (patch)
treeda20f9a9026dbee6a4d3071e807cbe19347ecc2c /sys/dev/isp/ispmbox.h
parent4e7898cde202eb68a08591a156bdcbd765b9beb1 (diff)
downloadFreeBSD-src-11df6402b4916bd2c5bf5c685dc72b0c13a37098.zip
FreeBSD-src-11df6402b4916bd2c5bf5c685dc72b0c13a37098.tar.gz
Revamp the pieces of some of the stuff I forgot to do when shifting to
32 bit handles. The RIO (reduced interrupt operation) and fast posting for the parallel SCSI cards were all 16 bit handles. Furthermore, target mode parallel SCSI only can have 16 bit handles. Use part of a supplied patch to switch over to using 32 bit handles. Be a bit more conservative here and only do this for parallel SCSI for the 12160 (Ultra3) cards. There were a lot of marginal Ultra2 cards, and, frankly, few are findable now for testing. Fix the target handle routine to only do 16 bit handles for parallel SCSI cards. This is okay because the upper sixteen bits of the new 32 bit handles is a sequence number to help protect against duplicate completions. This would be very unlikely to happen with parallel SCSI target mode, and wasn't present before, so we're no worse off than we used to be. While we're at it, finally split the async mailbox completion handlers into FC and parallel SCSI functions. This makes it much cleaner and easier to figure out what is or isn't a legal async mailbox completion code for different card classes. PR: kern/144250 Submitted partially by: Charles D MFC after: 1 week
Diffstat (limited to 'sys/dev/isp/ispmbox.h')
-rw-r--r--sys/dev/isp/ispmbox.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/dev/isp/ispmbox.h b/sys/dev/isp/ispmbox.h
index eb3ab63..36a7391 100644
--- a/sys/dev/isp/ispmbox.h
+++ b/sys/dev/isp/ispmbox.h
@@ -223,6 +223,8 @@
#define ASYNC_SECURITY_UPDATE 0x801B
#define ASYNC_CMD_CMPLT 0x8020
#define ASYNC_CTIO_DONE 0x8021
+#define ASYNC_RIO32_1 0x8021
+#define ASYNC_RIO32_2 0x8022
#define ASYNC_IP_XMIT_DONE 0x8022
#define ASYNC_IP_RECV_DONE 0x8023
#define ASYNC_IP_BROADCAST 0x8024
@@ -230,19 +232,19 @@
#define ASYNC_IP_RCVQ_EMPTY 0x8026
#define ASYNC_IP_RECV_DONE_ALIGNED 0x8027
#define ASYNC_PTPMODE 0x8030
-#define ASYNC_RIO1 0x8031
-#define ASYNC_RIO2 0x8032
-#define ASYNC_RIO3 0x8033
-#define ASYNC_RIO4 0x8034
-#define ASYNC_RIO5 0x8035
+#define ASYNC_RIO16_1 0x8031
+#define ASYNC_RIO16_2 0x8032
+#define ASYNC_RIO16_3 0x8033
+#define ASYNC_RIO16_4 0x8034
+#define ASYNC_RIO16_5 0x8035
#define ASYNC_CONNMODE 0x8036
#define ISP_CONN_LOOP 1
#define ISP_CONN_PTP 2
#define ISP_CONN_BADLIP 3
#define ISP_CONN_FATAL 4
#define ISP_CONN_LOOPBACK 5
-#define ASYNC_RIO_RESP 0x8040
-#define ASYNC_RIO_COMP 0x8042
+#define ASYNC_RIOZIO_STALL 0x8040 /* there's a RIO/ZIO entry that hasn't been serviced */
+#define ASYNC_RIO32_2_2200 0x8042 /* same as ASYNC_RIO32_2, but for 2100/2200 */
#define ASYNC_RCV_ERR 0x8048
/*
@@ -860,7 +862,7 @@ typedef struct {
(ISP_CAP_MULTI_ID(isp) ? tag : 0)
/*
- * Reduced Interrupt Operation Response Queue Entreis
+ * Reduced Interrupt Operation Response Queue Entries
*/
typedef struct {
OpenPOWER on IntegriCloud