mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-24 03:37:16 +00:00
Add support for Enhanced Gen 5 (16Gb) and Gen 6 (32Gb) QLogic FC HBAs.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
This commit is contained in:
parent
e9c0572e4c
commit
14e084ada5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330121
|
@ -1,4 +1,4 @@
|
|||
.\" Copyright (c) 2009-2017 Alexander Motin <mav@FreeBSD.org>
|
||||
.\" Copyright (c) 2009-2018 Alexander Motin <mav@FreeBSD.org>
|
||||
.\" Copyright (c) 2006 Marcus Alves Grando
|
||||
.\" Copyright (c) 1998-2001 Matthew Jacob, for NASA/Ames Research Center
|
||||
.\"
|
||||
|
@ -26,7 +26,7 @@
|
|||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 3, 2017
|
||||
.Dd February 27, 2018
|
||||
.Dt ISP 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
@ -139,6 +139,10 @@ Optical 4Gb Fibre Channel PCIe cards.
|
|||
Optical 8Gb Fibre Channel PCIe cards.
|
||||
.It Qlogic 267x/836x (aka 2031/8031)
|
||||
Optical 16Gb FC/FCoE PCIe cards.
|
||||
.It Qlogic 2690/2692/2694 (aka 2684/2692)
|
||||
Optical 16Gb Fibre Channel PCIe cards.
|
||||
.It Qlogic 2740/2742/2764 (aka 2722/2714)
|
||||
Optical 32Gb Fibre Channel PCIe cards.
|
||||
.El
|
||||
.Sh CONFIGURATION OPTIONS
|
||||
Target mode support for Fibre Channel adapters may be enabled with the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2009-2017 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 2009-2018 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 1997-2009 by Matthew Jacob
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -226,7 +226,10 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults)
|
|||
btype = "2532";
|
||||
break;
|
||||
case ISP_HA_FC_2600:
|
||||
btype = "2031";
|
||||
btype = "2600";
|
||||
break;
|
||||
case ISP_HA_FC_2700:
|
||||
btype = "2700";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -2020,7 +2023,7 @@ isp_fibre_init_2400(ispsoftc_t *isp)
|
|||
}
|
||||
|
||||
icbp->icb_execthrottle = DEFAULT_EXEC_THROTTLE(isp);
|
||||
if (icbp->icb_execthrottle < 1) {
|
||||
if (icbp->icb_execthrottle < 1 && !IS_26XX(isp)) {
|
||||
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;
|
||||
}
|
||||
|
@ -2125,11 +2128,15 @@ isp_fibre_init_2400(ispsoftc_t *isp)
|
|||
} else if (isp->isp_confopts & ISP_CFG_16GB) {
|
||||
icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK;
|
||||
icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_16GB;
|
||||
} else if (isp->isp_confopts & ISP_CFG_32GB) {
|
||||
icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_MASK;
|
||||
icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_32GB;
|
||||
} else {
|
||||
switch (icbp->icb_fwoptions3 & ICB2400_OPT3_RATE_MASK) {
|
||||
case ICB2400_OPT3_RATE_4GB:
|
||||
case ICB2400_OPT3_RATE_8GB:
|
||||
case ICB2400_OPT3_RATE_16GB:
|
||||
case ICB2400_OPT3_RATE_32GB:
|
||||
case ICB2400_OPT3_RATE_AUTO:
|
||||
break;
|
||||
case ICB2400_OPT3_RATE_2GB:
|
||||
|
@ -3094,6 +3101,8 @@ isp_fclink_test(ispsoftc_t *isp, int chan, int usdelay)
|
|||
if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
|
||||
if (mbs.param[1] == MBGSD_10GB)
|
||||
fcp->isp_gbspeed = 10;
|
||||
else if (mbs.param[1] == MBGSD_32GB)
|
||||
fcp->isp_gbspeed = 32;
|
||||
else if (mbs.param[1] == MBGSD_16GB)
|
||||
fcp->isp_gbspeed = 16;
|
||||
else if (mbs.param[1] == MBGSD_8GB)
|
||||
|
@ -5902,6 +5911,13 @@ isp_parse_async_fc(ispsoftc_t *isp, uint16_t mbox)
|
|||
isp_prt(isp, ISP_LOGERR, "Temperature alert (subcode 0x%x)",
|
||||
ISP_READ(isp, OUTMAILBOX1));
|
||||
break;
|
||||
case ASYNC_TRANSCEIVER_INSERTION:
|
||||
isp_prt(isp, ISP_LOGDEBUG0, "Transceiver insertion (0x%x)",
|
||||
ISP_READ(isp, OUTMAILBOX1));
|
||||
break;
|
||||
case ASYNC_TRANSCEIVER_REMOVAL:
|
||||
isp_prt(isp, ISP_LOGDEBUG0, "Transceiver removal");
|
||||
break;
|
||||
case ASYNC_AUTOLOAD_FW_COMPLETE:
|
||||
isp_prt(isp, ISP_LOGDEBUG0, "Autoload FW init complete");
|
||||
break;
|
||||
|
@ -6826,7 +6842,7 @@ static const uint32_t mbpfc[] = {
|
|||
ISP_FC_OPMAP(0x07, 0x01), /* 0x66: MBOX_TARGET_RESET */
|
||||
ISP_FC_OPMAP(0x07, 0x01), /* 0x67: MBOX_CLEAR_TASK_SET */
|
||||
ISP_FC_OPMAP(0x07, 0x01), /* 0x68: MBOX_ABORT_TASK_SET */
|
||||
ISP_FC_OPMAP(0x01, 0x07), /* 0x69: MBOX_GET_FW_STATE */
|
||||
ISP_FC_OPMAP_HALF(0x00, 0x01, 0x0f, 0x1f), /* 0x69: MBOX_GET_FW_STATE */
|
||||
ISP_FC_OPMAP_HALF(0x6, 0x03, 0x0, 0xcf), /* 0x6a: MBOX_GET_PORT_NAME */
|
||||
ISP_FC_OPMAP(0xcf, 0x01), /* 0x6b: MBOX_GET_LINK_STATUS */
|
||||
ISP_FC_OPMAP(0x0f, 0x01), /* 0x6c: MBOX_INIT_LIP_RESET */
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2009-2018 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 1997-2008 by Matthew Jacob
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -177,6 +178,17 @@ static struct ispmdvec mdvec_2600 = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static struct ispmdvec mdvec_2700 = {
|
||||
isp_pci_run_isr_2400,
|
||||
isp_pci_rd_reg_2600,
|
||||
isp_pci_wr_reg_2600,
|
||||
isp_pci_mbxdma,
|
||||
isp_pci_dmasetup,
|
||||
isp_common_dmateardown,
|
||||
isp_pci_irqsetup,
|
||||
NULL
|
||||
};
|
||||
|
||||
#ifndef PCIM_CMD_INVEN
|
||||
#define PCIM_CMD_INVEN 0x10
|
||||
#endif
|
||||
|
@ -209,142 +221,80 @@ static struct ispmdvec mdvec_2600 = {
|
|||
#define PCIR_ROMADDR 0x30
|
||||
#endif
|
||||
|
||||
#ifndef PCI_VENDOR_QLOGIC
|
||||
#define PCI_VENDOR_QLOGIC 0x1077
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP1020
|
||||
#define PCI_PRODUCT_QLOGIC_ISP1020 0x1020
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP1080
|
||||
#define PCI_PRODUCT_QLOGIC_ISP1080 0x1080
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP10160
|
||||
#define PCI_PRODUCT_QLOGIC_ISP10160 0x1016
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP12160
|
||||
#define PCI_PRODUCT_QLOGIC_ISP12160 0x1216
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP1240
|
||||
#define PCI_PRODUCT_QLOGIC_ISP1240 0x1240
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP1280
|
||||
#define PCI_PRODUCT_QLOGIC_ISP1280 0x1280
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2100
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2100 0x2100
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2200
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2200 0x2200
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2300
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2300 0x2300
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2312
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2312 0x2312
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2322
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2322 0x2322
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2422
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2422 0x2422
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2432
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2432 0x2432
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2532
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2532 0x2532
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP6312
|
||||
#define PCI_PRODUCT_QLOGIC_ISP5432 0x5432
|
||||
#define PCI_PRODUCT_QLOGIC_ISP6312 0x6312
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP6322
|
||||
#define PCI_PRODUCT_QLOGIC_ISP6322 0x6322
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP5432
|
||||
#define PCI_PRODUCT_QLOGIC_ISP5432 0x5432
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP2031
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2031 0x2031
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP8031
|
||||
#define PCI_PRODUCT_QLOGIC_ISP8031 0x8031
|
||||
#endif
|
||||
|
||||
#define PCI_QLOGIC_ISP5432 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP5432 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2684 0x2171
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2692 0x2b61
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2714 0x2071
|
||||
#define PCI_PRODUCT_QLOGIC_ISP2722 0x2261
|
||||
|
||||
#define PCI_QLOGIC_ISP1020 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP1020 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP1080 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP1080 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP10160 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP10160 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP12160 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP12160 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP1240 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP1240 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP1280 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP1280 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2100 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2100 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2200 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2200 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2300 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2300 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2312 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2312 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2322 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2322 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2422 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2422 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2432 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2432 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2532 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2532 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP5432 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP5432 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_QLOGIC_ISP6312 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP6312 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP6322 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP6322 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP2031 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2031 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP8031 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP8031 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_QLOGIC_ISP2684 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2684 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_QLOGIC_ISP2692 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2692 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_QLOGIC_ISP2714 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2714 << 16) | PCI_VENDOR_QLOGIC)
|
||||
#define PCI_QLOGIC_ISP2722 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP2722 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
/*
|
||||
* Odd case for some AMI raid cards... We need to *not* attach to this.
|
||||
|
@ -464,6 +414,18 @@ isp_pci_probe(device_t dev)
|
|||
case PCI_QLOGIC_ISP8031:
|
||||
device_set_desc(dev, "Qlogic ISP 8031 PCI FCoE Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP2684:
|
||||
device_set_desc(dev, "Qlogic ISP 2684 PCI FC Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP2692:
|
||||
device_set_desc(dev, "Qlogic ISP 2692 PCI FC Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP2714:
|
||||
device_set_desc(dev, "Qlogic ISP 2714 PCI FC Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP2722:
|
||||
device_set_desc(dev, "Qlogic ISP 2722 PCI FC Adapter");
|
||||
break;
|
||||
default:
|
||||
return (ENXIO);
|
||||
}
|
||||
|
@ -811,6 +773,16 @@ isp_pci_attach(device_t dev)
|
|||
isp->isp_type = ISP_HA_FC_2600;
|
||||
pcs->pci_poff[MBOX_BLOCK >> _BLK_REG_SHFT] = PCI_MBOX_REGS2400_OFF;
|
||||
break;
|
||||
case PCI_QLOGIC_ISP2684:
|
||||
case PCI_QLOGIC_ISP2692:
|
||||
case PCI_QLOGIC_ISP2714:
|
||||
case PCI_QLOGIC_ISP2722:
|
||||
did = 0x2700;
|
||||
isp->isp_nchan += isp_nvports;
|
||||
isp->isp_mdvec = &mdvec_2700;
|
||||
isp->isp_type = ISP_HA_FC_2700;
|
||||
pcs->pci_poff[MBOX_BLOCK >> _BLK_REG_SHFT] = PCI_MBOX_REGS2400_OFF;
|
||||
break;
|
||||
default:
|
||||
device_printf(dev, "unknown device type\n");
|
||||
goto bad;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2009-2017 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 2009-2018 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 1997-2009 by Matthew Jacob
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -178,6 +178,7 @@
|
|||
#define MBGSD_4GB 0x03 /* 24XX only */
|
||||
#define MBGSD_8GB 0x04 /* 25XX only */
|
||||
#define MBGSD_16GB 0x05 /* 26XX only */
|
||||
#define MBGSD_32GB 0x06 /* 27XX only */
|
||||
#define MBGSD_10GB 0x13 /* 26XX only */
|
||||
#define MBOX_SEND_RNFT 0x005e
|
||||
#define MBOX_INIT_FIRMWARE 0x0060
|
||||
|
@ -299,6 +300,8 @@
|
|||
#define ASYNC_INTER_DRIVER_COMP 0x8100 /* FCoE only */
|
||||
#define ASYNC_INTER_DRIVER_NOTIFY 0x8101 /* FCoE only */
|
||||
#define ASYNC_INTER_DRIVER_TIME_EXT 0x8102 /* FCoE only */
|
||||
#define ASYNC_TRANSCEIVER_INSERTION 0x8130
|
||||
#define ASYNC_TRANSCEIVER_REMOVAL 0x8131
|
||||
#define ASYNC_NIC_FW_STATE_CHANGE 0x8200 /* FCoE only */
|
||||
#define ASYNC_AUTOLOAD_FW_COMPLETE 0x8400
|
||||
#define ASYNC_AUTOLOAD_FW_FAILURE 0x8401
|
||||
|
@ -1072,6 +1075,7 @@ typedef struct {
|
|||
#define ICB2400_OPT3_RATE_4GB 0x00006000
|
||||
#define ICB2400_OPT3_RATE_8GB 0x00008000
|
||||
#define ICB2400_OPT3_RATE_16GB 0x0000A000
|
||||
#define ICB2400_OPT3_RATE_32GB 0x0000C000
|
||||
#define ICB2400_OPT3_ENA_OOF_XFRDY 0x00000200
|
||||
#define ICB2400_OPT3_NO_N2N_LOGI 0x00000100
|
||||
#define ICB2400_OPT3_NO_LOCAL_PLOGI 0x00000080
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2009-2017 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 2009-2018 Alexander Motin <mav@FreeBSD.org>
|
||||
* Copyright (c) 1997-2009 by Matthew Jacob
|
||||
* All rights reserved.
|
||||
*
|
||||
|
@ -633,8 +633,8 @@ struct ispsoftc {
|
|||
#define ISP_CFG_NPORT_ONLY 0x04 /* insist on {N/F}-Port connection */
|
||||
#define ISP_CFG_LPORT 0x06 /* prefer {N/F}L-Port connection */
|
||||
#define ISP_CFG_NPORT 0x08 /* prefer {N/F}-Port connection */
|
||||
#define ISP_CFG_1GB 0x10 /* force 1GB connection (23XX only) */
|
||||
#define ISP_CFG_2GB 0x20 /* force 2GB connection (23XX only) */
|
||||
#define ISP_CFG_1GB 0x10 /* force 1Gb connection (23XX only) */
|
||||
#define ISP_CFG_2GB 0x20 /* force 2Gb connection (23XX only) */
|
||||
#define ISP_CFG_NORELOAD 0x80 /* don't download f/w */
|
||||
#define ISP_CFG_NONVRAM 0x40 /* ignore NVRAM */
|
||||
#define ISP_CFG_NOFCTAPE 0x100 /* disable FC-Tape */
|
||||
|
@ -642,9 +642,10 @@ struct ispsoftc {
|
|||
#define ISP_CFG_OWNFSZ 0x400 /* override NVRAM frame size */
|
||||
#define ISP_CFG_OWNLOOPID 0x800 /* override NVRAM loopid */
|
||||
#define ISP_CFG_OWNEXCTHROTTLE 0x1000 /* override NVRAM execution throttle */
|
||||
#define ISP_CFG_4GB 0x2000 /* force 4GB connection (24XX only) */
|
||||
#define ISP_CFG_8GB 0x4000 /* force 8GB connection (25XX only) */
|
||||
#define ISP_CFG_16GB 0x8000 /* force 16GB connection (82XX only) */
|
||||
#define ISP_CFG_4GB 0x2000 /* force 4Gb connection (24XX only) */
|
||||
#define ISP_CFG_8GB 0x4000 /* force 8Gb connection (25XX only) */
|
||||
#define ISP_CFG_16GB 0x8000 /* force 16Gb connection (26XX only) */
|
||||
#define ISP_CFG_32GB 0x10000 /* force 32Gb connection (27XX only) */
|
||||
|
||||
/*
|
||||
* For each channel, the outer layers should know what role that channel
|
||||
|
@ -745,6 +746,7 @@ struct ispsoftc {
|
|||
#define ISP_HA_FC_2400 0x60
|
||||
#define ISP_HA_FC_2500 0x70
|
||||
#define ISP_HA_FC_2600 0x80
|
||||
#define ISP_HA_FC_2700 0x90
|
||||
|
||||
#define IS_SCSI(isp) (isp->isp_type & ISP_HA_SCSI)
|
||||
#define IS_1020(isp) (isp->isp_type < ISP_HA_SCSI_1240)
|
||||
|
@ -771,6 +773,7 @@ struct ispsoftc {
|
|||
#define IS_24XX(isp) ((isp)->isp_type >= ISP_HA_FC_2400)
|
||||
#define IS_25XX(isp) ((isp)->isp_type >= ISP_HA_FC_2500)
|
||||
#define IS_26XX(isp) ((isp)->isp_type >= ISP_HA_FC_2600)
|
||||
#define IS_27XX(isp) ((isp)->isp_type >= ISP_HA_FC_2700)
|
||||
|
||||
/*
|
||||
* DMA related macros
|
||||
|
|
Loading…
Reference in a new issue