summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authormjacob <mjacob@NetBSD.org>2001-05-16 03:58:34 +0000
committermjacob <mjacob@NetBSD.org>2001-05-16 03:58:34 +0000
commitb81e69fa8e591beaf7bc44417e2cd414cde69f45 (patch)
tree9479ad23a8771a2c9be2cdabbc991f04c5975dca /sys/dev/ic
parentbf16779f433ced25a491fcb2e21630fb028c9cf8 (diff)
beginning basic 2300 infrstructure support
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/isp.c14
-rw-r--r--sys/dev/ic/ispvar.h16
2 files changed, 18 insertions, 12 deletions
diff --git a/sys/dev/ic/isp.c b/sys/dev/ic/isp.c
index 36be78ce632..598068e4748 100644
--- a/sys/dev/ic/isp.c
+++ b/sys/dev/ic/isp.c
@@ -1,4 +1,4 @@
-/* $NetBSD: isp.c,v 1.75 2001/04/10 21:51:21 mjacob Exp $ */
+/* $NetBSD: isp.c,v 1.76 2001/05/16 03:58:47 mjacob Exp $ */
/*
* This driver, which is contained in NetBSD in the files:
*
@@ -240,6 +240,9 @@ isp_reset(struct ispsoftc *isp)
case ISP_HA_FC_2200:
revname = "2200";
break;
+ case ISP_HA_FC_2300:
+ revname = "2300";
+ break;
default:
break;
}
@@ -533,7 +536,7 @@ again:
#endif
} else {
ISP_WRITE(isp, RISC_MTR2100, 0x1212);
- if (IS_2200(isp)) {
+ if (IS_2200(isp) || IS_2300(isp)) {
ISP_WRITE(isp, HCCR, HCCR_2X00_DISABLE_PARITY_PAUSE);
}
}
@@ -1163,7 +1166,7 @@ isp_fibre_init(struct ispsoftc *isp)
* Right now we just set extended options to prefer point-to-point
* over loop based upon some soft config options.
*/
- if (IS_2200(isp)) {
+ if (IS_2200(isp) || IS_2300(isp)) {
icbp->icb_fwoptions |= ICBOPT_EXTENDED;
/*
* Prefer or force Point-To-Point instead Loop?
@@ -1440,7 +1443,7 @@ isp_fclink_test(struct ispsoftc *isp, int usdelay)
return (-1);
}
fcp->isp_loopid = mbs.param[1];
- if (IS_2200(isp)) {
+ if (IS_2200(isp) || IS_2300(isp)) {
int topo = (int) mbs.param[6];
if (topo < TOPO_NL_PORT || topo > TOPO_PTP_STUB)
topo = TOPO_PTP_STUB;
@@ -1756,7 +1759,7 @@ isp_pdb_sync(struct ispsoftc *isp)
mbs.param[1] = loopid << 8;
mbs.param[2] = portid >> 16;
mbs.param[3] = portid & 0xffff;
- if (IS_2200(isp)) {
+ if (IS_2200(isp) || IS_2300(isp)) {
/* only issue a PLOGI if not logged in */
mbs.param[1] |= 0x1;
}
@@ -2288,7 +2291,6 @@ isp_start(XS_T *xs)
XS_INITERR(xs);
isp = XS_ISP(xs);
-
/*
* Check to make sure we're supporting initiator role.
*/
diff --git a/sys/dev/ic/ispvar.h b/sys/dev/ic/ispvar.h
index 47dd8560db7..77b84ee35e1 100644
--- a/sys/dev/ic/ispvar.h
+++ b/sys/dev/ic/ispvar.h
@@ -1,4 +1,4 @@
-/* $NetBSD: ispvar.h,v 1.43 2001/03/14 05:14:36 mjacob Exp $ */
+/* $NetBSD: ispvar.h,v 1.44 2001/05/16 03:58:34 mjacob Exp $ */
/*
* This driver, which is contained in NetBSD in the files:
*
@@ -499,6 +499,7 @@ typedef struct ispsoftc {
#define ISP_HA_FC 0xf0
#define ISP_HA_FC_2100 0x10
#define ISP_HA_FC_2200 0x20
+#define ISP_HA_FC_2300 0x30
#define IS_SCSI(isp) (isp->isp_type & ISP_HA_SCSI)
#define IS_1240(isp) (isp->isp_type == ISP_HA_SCSI_1240)
@@ -511,9 +512,13 @@ typedef struct ispsoftc {
#define IS_ULTRA2(isp) (IS_1080(isp) || IS_1280(isp) || IS_12160(isp))
#define IS_ULTRA3(isp) (IS_12160(isp))
-#define IS_FC(isp) (isp->isp_type & ISP_HA_FC)
-#define IS_2100(isp) (isp->isp_type == ISP_HA_FC_2100)
-#define IS_2200(isp) (isp->isp_type == ISP_HA_FC_2200)
+#define IS_FC(isp) ((isp)->isp_type & ISP_HA_FC)
+#define IS_2100(isp) ((isp)->isp_type == ISP_HA_FC_2100)
+#define IS_2200(isp) ((isp)->isp_type == ISP_HA_FC_2200)
+#define IS_2300(isp) ((isp)->isp_type == ISP_HA_FC_2300)
+
+/* 2300 Support isn't ready yet */
+#define ISP_DISABLE_2300_SUPPORT 1
/*
* DMA cookie macros
@@ -810,7 +815,6 @@ void isp_prt(struct ispsoftc *, int level, const char *, ...);
* ISP_SWIZZLE_SNS_REQ
* ISP_UNSWIZZLE_SNS_RSP
* ISP_SWIZZLE_NVRAM_WORD
- *
- *
*/
+
#endif /* _ISPVAR_H */