svn commit: r197372 - head/sys/dev/isp
Matt Jacob
mjacob at FreeBSD.org
Mon Sep 21 01:38:23 UTC 2009
Author: mjacob
Date: Mon Sep 21 01:38:22 2009
New Revision: 197372
URL: http://svn.freebsd.org/changeset/base/197372
Log:
Remove file unused in freebsd.
Deleted:
head/sys/dev/isp/isp_tpublic.h
Modified:
head/sys/dev/isp/isp.c
head/sys/dev/isp/isp_stds.h
head/sys/dev/isp/ispmbox.h
Modified: head/sys/dev/isp/isp.c
==============================================================================
--- head/sys/dev/isp/isp.c Sun Sep 20 21:42:38 2009 (r197371)
+++ head/sys/dev/isp/isp.c Mon Sep 21 01:38:22 2009 (r197372)
@@ -1547,24 +1547,18 @@ isp_fibre_init(ispsoftc_t *isp)
}
icbp->icb_maxfrmlen = DEFAULT_FRAMESIZE(isp);
- if (icbp->icb_maxfrmlen < ICB_MIN_FRMLEN ||
- icbp->icb_maxfrmlen > ICB_MAX_FRMLEN) {
- isp_prt(isp, ISP_LOGERR,
- "bad frame length (%d) from NVRAM- using %d",
- DEFAULT_FRAMESIZE(isp), ICB_DFLT_FRMLEN);
+ if (icbp->icb_maxfrmlen < ICB_MIN_FRMLEN || icbp->icb_maxfrmlen > ICB_MAX_FRMLEN) {
+ isp_prt(isp, ISP_LOGERR, "bad frame length (%d) from NVRAM- using %d", DEFAULT_FRAMESIZE(isp), ICB_DFLT_FRMLEN);
icbp->icb_maxfrmlen = ICB_DFLT_FRMLEN;
}
icbp->icb_maxalloc = fcp->isp_maxalloc;
if (icbp->icb_maxalloc < 1) {
- isp_prt(isp, ISP_LOGERR,
- "bad maximum allocation (%d)- using 16", fcp->isp_maxalloc);
+ isp_prt(isp, ISP_LOGERR, "bad maximum allocation (%d)- using 16", fcp->isp_maxalloc);
icbp->icb_maxalloc = 16;
}
icbp->icb_execthrottle = DEFAULT_EXEC_THROTTLE(isp);
if (icbp->icb_execthrottle < 1) {
- isp_prt(isp, ISP_LOGERR,
- "bad execution throttle of %d- using %d",
- DEFAULT_EXEC_THROTTLE(isp), ICB_DFLT_THROTTLE);
+ isp_prt(isp, ISP_LOGERR, "bad execution throttle of %d- using %d", DEFAULT_EXEC_THROTTLE(isp), ICB_DFLT_THROTTLE);
icbp->icb_execthrottle = ICB_DFLT_THROTTLE;
}
icbp->icb_retry_delay = fcp->isp_retry_delay;
@@ -1658,18 +1652,18 @@ isp_fibre_init(ispsoftc_t *isp)
/*
* For 22XX > 2.1.26 && 23XX, set some options.
- * XXX: Probably okay for newer 2100 f/w too.
*/
if (ISP_FW_NEWER_THAN(isp, 2, 26, 0)) {
- /*
- * Turn on LIP F8 async event (1)
- * Turn on generate AE 8013 on all LIP Resets (2)
- * Disable LIP F7 switching (8)
- */
MBSINIT(&mbs, MBOX_SET_FIRMWARE_OPTIONS, MBLOGALL, 0);
- mbs.param[1] = 0xb;
+ mbs.param[1] = IFCOPT1_DISF7SWTCH|IFCOPT1_LIPASYNC|IFCOPT1_LIPF8;
mbs.param[2] = 0;
mbs.param[3] = 0;
+ if (ISP_FW_NEWER_THAN(isp, 3, 16, 0)) {
+ mbs.param[1] |= IFCOPT1_EQFQASYNC|IFCOPT1_CTIO_RETRY;
+ if (fcp->role & ISP_ROLE_TARGET) {
+ mbs.param[3] = IFCOPT3_NOPRLI;
+ }
+ }
isp_mboxcmd(isp, &mbs);
if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
return;
@@ -2093,8 +2087,7 @@ isp_mark_portdb(ispsoftc_t *isp, int cha
* or via FABRIC LOGIN/FABRIC LOGOUT for other cards.
*/
static int
-isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid,
- int flags, int gs)
+isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid, int flags, int gs)
{
mbreg_t mbs;
uint8_t q[QENTRY_LEN];
@@ -2771,15 +2764,21 @@ isp_pdb_sync(ispsoftc_t *isp, int chan)
/*
* Make sure we're okay for doing this right now.
*/
- if (fcp->isp_loopstate != LOOP_PDB_RCVD && fcp->isp_loopstate != LOOP_FSCAN_DONE && fcp->isp_loopstate != LOOP_LSCAN_DONE) {
- isp_prt(isp, ISP_LOGWARN, "isp_pdb_sync: bad loopstate %d", fcp->isp_loopstate);
+ if (fcp->isp_loopstate != LOOP_PDB_RCVD &&
+ fcp->isp_loopstate != LOOP_FSCAN_DONE &&
+ fcp->isp_loopstate != LOOP_LSCAN_DONE) {
+ isp_prt(isp, ISP_LOGWARN, "isp_pdb_sync: bad loopstate %d",
+ fcp->isp_loopstate);
return (-1);
}
- if (fcp->isp_topo == TOPO_FL_PORT || fcp->isp_topo == TOPO_NL_PORT || fcp->isp_topo == TOPO_N_PORT) {
+ if (fcp->isp_topo == TOPO_FL_PORT ||
+ fcp->isp_topo == TOPO_NL_PORT ||
+ fcp->isp_topo == TOPO_N_PORT) {
if (fcp->isp_loopstate < LOOP_LSCAN_DONE) {
if (isp_scan_loop(isp, chan) != 0) {
- isp_prt(isp, ISP_LOGWARN, "isp_pdb_sync: isp_scan_loop failed");
+ isp_prt(isp, ISP_LOGWARN,
+ "isp_pdb_sync: isp_scan_loop failed");
return (-1);
}
}
@@ -2788,13 +2787,15 @@ isp_pdb_sync(ispsoftc_t *isp, int chan)
if (fcp->isp_topo == TOPO_F_PORT || fcp->isp_topo == TOPO_FL_PORT) {
if (fcp->isp_loopstate < LOOP_FSCAN_DONE) {
if (isp_scan_fabric(isp, chan) != 0) {
- isp_prt(isp, ISP_LOGWARN, "isp_pdb_sync: isp_scan_fabric failed");
+ isp_prt(isp, ISP_LOGWARN,
+ "isp_pdb_sync: isp_scan_fabric failed");
return (-1);
}
}
}
- isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Chan %d Synchronizing PDBs", chan);
+ isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
+ "Chan %d Synchronizing PDBs", chan);
fcp->isp_loopstate = LOOP_SYNCING_PDB;
@@ -2823,7 +2824,11 @@ isp_pdb_sync(ispsoftc_t *isp, int chan)
lp->state = FC_PORTDB_STATE_NIL;
isp_async(isp, ISPASYNC_DEV_GONE, chan, lp);
if (lp->autologin == 0) {
- (void) isp_plogx(isp, chan, lp->handle, lp->portid, PLOGX_FLG_CMD_LOGO | PLOGX_FLG_IMPLICIT | PLOGX_FLG_FREE_NPHDL, 0);
+ (void) isp_plogx(isp, chan, lp->handle,
+ lp->portid,
+ PLOGX_FLG_CMD_LOGO |
+ PLOGX_FLG_IMPLICIT |
+ PLOGX_FLG_FREE_NPHDL, 0);
} else {
lp->autologin = 0;
}
@@ -3069,7 +3074,8 @@ isp_scan_loop(ispsoftc_t *isp, int chan)
for (i = 0; i < MAX_FC_TARG; i++) {
lp = &fcp->portdb[i];
- if (lp->state == FC_PORTDB_STATE_NIL || lp->target_mode) {
+ if (lp->state == FC_PORTDB_STATE_NIL ||
+ lp->target_mode) {
continue;
}
if (lp->node_wwn != tmp.node_wwn) {
@@ -3587,7 +3593,8 @@ isp_scan_fabric(ispsoftc_t *isp, int cha
for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) {
lp = &fcp->portdb[dbidx];
- if (lp->state != FC_PORTDB_STATE_PROBATIONAL || lp->target_mode) {
+ if (lp->state != FC_PORTDB_STATE_PROBATIONAL ||
+ lp->target_mode) {
continue;
}
if (lp->portid == portid) {
@@ -3824,7 +3831,8 @@ isp_scan_fabric(ispsoftc_t *isp, int cha
if (fcp->portdb[dbidx].target_mode) {
continue;
}
- if (fcp->portdb[dbidx].node_wwn == wwnn && fcp->portdb[dbidx].port_wwn == wwpn) {
+ if (fcp->portdb[dbidx].node_wwn == wwnn &&
+ fcp->portdb[dbidx].port_wwn == wwpn) {
break;
}
}
Modified: head/sys/dev/isp/isp_stds.h
==============================================================================
--- head/sys/dev/isp/isp_stds.h Sun Sep 20 21:42:38 2009 (r197371)
+++ head/sys/dev/isp/isp_stds.h Mon Sep 21 01:38:22 2009 (r197372)
@@ -147,6 +147,7 @@ typedef struct {
#define FCP_SNSLEN_VALID 0x02
#define FCP_RSPLEN_VALID 0x01
+#define FCP_MAX_RSPLEN 0x08
/*
* FCP Response Code Definitions
* Source: NCITS T10, Project 1144D, Revision 08 (aka FCP2r08)
@@ -159,6 +160,8 @@ typedef struct {
#define FCP_RSPNS_EROFS 3
#define FCP_RSPNS_TMF_REJECT 4
#define FCP_RSPNS_TMF_FAILED 5
+#define FCP_RSPNS_TMF_SUCCEEDED 8
+#define FCP_RSPNS_TMF_INCORRECT_LUN 9
/* unconverted miscellany */
Modified: head/sys/dev/isp/ispmbox.h
==============================================================================
--- head/sys/dev/isp/ispmbox.h Sun Sep 20 21:42:38 2009 (r197371)
+++ head/sys/dev/isp/ispmbox.h Mon Sep 21 01:38:22 2009 (r197372)
@@ -245,12 +245,38 @@
#define ASYNC_RCV_ERR 0x8048
/*
+ * Firmware Options. There are a lot of them.
+ *
+ * IFCOPTN - ISP Fibre Channel Option Word N
+ */
+#define IFCOPT1_EQFQASYNC (1 << 13) /* enable QFULL notification */
+#define IFCOPT1_EAABSRCVD (1 << 12)
+#define IFCOPT1_RJTASYNC (1 << 11) /* enable 8018 notification */
+#define IFCOPT1_ENAPURE (1 << 10)
+#define IFCOPT1_ENA8017 (1 << 7)
+#define IFCOPT1_DISGPIO67 (1 << 6)
+#define IFCOPT1_LIPLOSSIMM (1 << 5)
+#define IFCOPT1_DISF7SWTCH (1 << 4)
+#define IFCOPT1_CTIO_RETRY (1 << 3)
+#define IFCOPT1_LIPASYNC (1 << 1)
+#define IFCOPT1_LIPF8 (1 << 0)
+
+#define IFCOPT2_LOOPBACK (1 << 1)
+#define IFCOPT2_ATIO3_ONLY (1 << 0)
+
+#define IFCOPT3_NOPRLI (1 << 4) /* disable automatic sending of PRLI on local loops */
+#define IFCOPT3_RNDASYNC (1 << 1)
+/*
* 2.01.31 2200 Only. Need Bit 13 in Mailbox 1 for Set Firmware Options
* mailbox command to enable this.
*/
#define ASYNC_QFULL_SENT 0x8049
/*
+ * Needs to be enabled
+ */
+#define ASYNC_AUTO_PLOGI_RJT 0x8018
+/*
* 24XX only
*/
#define ASYNC_RJT_SENT 0x8049
More information about the svn-src-head
mailing list