Turn on FC-Tape by default in the isp(4) driver.
FC-Tape provides additional link level error recovery, and is highly recommended for tape devices. It will only be turned on for a given target if the target supports it. Without this setting, we default to whatever FC-Tape setting is in NVRAM on the card. This can be overridden by setting the following loader tunable, for example for isp0: hint.isp.0.nofctape=1 sys/conf/options: Add a new kernel config option, ISP_FCTAPE_OFF, that defaults the FC-Tape configuration to off. sys/dev/isp/isp_pci.c: If ISP_FCTAPE_OFF is defined, turn off FC-Tape. Otherwise, turn it on if the card supports it. share/man/man4/isp.4: Add a description of FC-Tape to the isp(4) man page. Add descriptions of the fctape and nofctape options, as well as the ISP_FCTAPE_OFF kernel configuration option. Add the ispfw module and kernel drivers to the suggested configurations at the top of the man page so that users are less likely to leave it out. The driver works well with the included firmware, but may not work at all with whatever firmware the user has flashed on their card. MFC after: 3 days Sponsored by: Spectra Logic
This commit is contained in:
parent
f6080aabd7
commit
08167db8d6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=310338
@ -26,7 +26,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd December 9, 2015
|
||||
.Dd December 20, 2016
|
||||
.Dt ISP 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -39,13 +39,15 @@ kernel configuration file:
|
||||
.Bd -ragged -offset indent
|
||||
.Cd "device scbus"
|
||||
.Cd "device isp"
|
||||
.Cd "device ispfw"
|
||||
.Ed
|
||||
.Pp
|
||||
Alternatively, to load the driver as a
|
||||
module at boot time, place the following line in
|
||||
module at boot time, place the following lines in
|
||||
.Xr loader.conf 5 :
|
||||
.Bd -literal -offset indent
|
||||
isp_load="YES"
|
||||
ispfw_load="YES"
|
||||
.Ed
|
||||
.Sh DESCRIPTION
|
||||
This driver provides access to
|
||||
@ -62,6 +64,30 @@ Fibre Channel supports initiator and target modes of FCP SCSI profile,
|
||||
utilizing Class 3 and Class 2 (2200 and later) connections.
|
||||
Support is available for Public and Private loops, Point-to-Point
|
||||
and Fabric connections.
|
||||
.Pp
|
||||
FC-Tape is supported on 4Gb (2400) and newer controllers.
|
||||
FC-Tape is highly recommended for connections to tape drives that support
|
||||
it.
|
||||
It encompasses four elements from the the T-10 FCP-4 specification:
|
||||
.Bl -bullet -offset indent
|
||||
.It
|
||||
Precise Delivery of Commands
|
||||
.It
|
||||
Confirmed Completion of FCP I/O Operations
|
||||
.It
|
||||
Retransmission of Unsuccessfully Transmitted IUs
|
||||
.It
|
||||
Task Retry Identification
|
||||
.El
|
||||
.Pp
|
||||
Together these features allow for link level error recovery with tape
|
||||
devices.
|
||||
Without it, an initiator cannot, for instance, tell whether a tape write
|
||||
command that has timed out resulted in all, part or none of the data going to
|
||||
the tape drive.
|
||||
FC-Tape is automatically enabled when connecting controller that supports
|
||||
it to a target that supports it.
|
||||
It may be disabled using configuration and hint options described below.
|
||||
.Sh FIRMWARE
|
||||
Firmware loading is supported if the
|
||||
.Xr ispfw 4
|
||||
@ -120,6 +146,13 @@ Target mode support for Fibre Channel adapters may be enabled with the
|
||||
.Cd options ISP_TARGET_MODE
|
||||
.Pp
|
||||
option.
|
||||
.Pp
|
||||
To disable FC-Tape, use the following configuration option:
|
||||
.Pp
|
||||
.Cd options ISP_FCTAPE_OFF
|
||||
.Pp
|
||||
Note that even if the ISP_FCTAPE_OFF option is used, it may be overridden
|
||||
by the fctape hint described below.
|
||||
.Sh BOOT OPTIONS
|
||||
The following options are switchable by setting values in
|
||||
.Pa /boot/device.hints .
|
||||
@ -169,6 +202,11 @@ A hint value for a driver debug level (see the file
|
||||
for the values.
|
||||
.It Va hint.isp.0.vports
|
||||
A hint to create specified number of additional virtual ports.
|
||||
.It Va hint.isp.0.nofctape
|
||||
Set this to 1 to disable FC-Tape operation on the given isp instance.
|
||||
.It Va hint.isp.0.fctape
|
||||
Set this to 1 to enable FC-Tape operation on the given isp instance for
|
||||
targets that support it.
|
||||
.El
|
||||
.Sh SYSCTL OPTIONS
|
||||
.Bl -tag -width indent
|
||||
|
@ -384,6 +384,7 @@ ISP_TARGET_MODE opt_isp.h
|
||||
ISP_FW_CRASH_DUMP opt_isp.h
|
||||
ISP_DEFAULT_ROLES opt_isp.h
|
||||
ISP_INTERNAL_TARGET opt_isp.h
|
||||
ISP_FCTAPE_OFF opt_isp.h
|
||||
|
||||
# Options used only in dev/iscsi
|
||||
ISCSI_INITIATOR_DEBUG opt_iscsi_initiator.h
|
||||
|
@ -598,11 +598,18 @@ isp_get_specific_options(device_t dev, int chan, ispsoftc_t *isp)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ISP_FCTAPE_OFF
|
||||
isp->isp_confopts |= ISP_CFG_NOFCTAPE;
|
||||
#else
|
||||
isp->isp_confopts |= ISP_CFG_FCTAPE;
|
||||
#endif
|
||||
|
||||
tval = 0;
|
||||
snprintf(name, sizeof(name), "%snofctape", prefix);
|
||||
(void) resource_int_value(device_get_name(dev), device_get_unit(dev),
|
||||
name, &tval);
|
||||
if (tval) {
|
||||
isp->isp_confopts &= ~ISP_CFG_FCTAPE;
|
||||
isp->isp_confopts |= ISP_CFG_NOFCTAPE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user