diff options
| author | mjacob <mjacob@NetBSD.org> | 2001-05-16 03:58:34 +0000 |
|---|---|---|
| committer | mjacob <mjacob@NetBSD.org> | 2001-05-16 03:58:34 +0000 |
| commit | b81e69fa8e591beaf7bc44417e2cd414cde69f45 (patch) | |
| tree | 9479ad23a8771a2c9be2cdabbc991f04c5975dca /sys/dev | |
| parent | bf16779f433ced25a491fcb2e21630fb028c9cf8 (diff) | |
beginning basic 2300 infrstructure support
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ic/isp.c | 14 | ||||
| -rw-r--r-- | sys/dev/ic/ispvar.h | 16 |
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 */ |
