ISP(4)
β¨ ISP(4) β¨
Hey bestie! π You're looking at the manual page for ISP(4), and honestly? It's giving "niche but essential" energy. Let's break it down so you can slay your FibreChannel setup. π
β¨ NAME β¨
isp β the Qlogic FibreChannel SCSI Host Adapters driver. Yeah, that's a whole lot of words, but it's iconic. π
π οΈ SYNOPSIS π οΈ
Okay so to compile this driver into the kernel, you gotta place these lines in your kernel configuration file:
device scbus
device isp
device ispfw
Alternatively, to load the driver as a module at boot time, place these lines in loader.conf(5):
isp_load="YES"
ispfw_load="YES"
πΈ DESCRIPTION πΈ
This driver provides access to FibreChannel SCSI devices. No cap. π₯
It supports initiator and target modes of FCP SCSI profile, utilizing Class 3 and Class 2 connections. Support is available for Public and Private loops, Point-to-Point and Fabric connections. So it's versatile, fr fr. π
Supported FC-Tape functionality is highly recommended for connections to tape drives that support it. It encompasses four elements from the T-10 FCP-4 specification:
- Precise Delivery of Commands
- Confirmed Completion of FCP I/O Operations
- Retransmission of Unsuccessfully Transmitted IUs
- Task Retry Identification
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. Like, imagine not knowing if your data made it? π Not the vibe.
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. Periodt. β¨
π» HARDWARE π»
The isp driver supports the following optical Fibre Channel adapters:
- Qlogic QLE2874 (2814) β 64Gb, PCIe
- Qlogic QLE2870/QLE2872 (2812) β 64Gb, PCIe
- Qlogic QLE2774 (2814) β 32Gb, PCIe
- Qlogic QLE2770/QLE2772 (2812) β 32Gb, PCIe
- Qlogic 2740/2742/2764 (2722/2714) β 32Gb, PCIe
- Qlogic 2690/2692/2694 (2684/2692) β 16Gb, PCIe
- Qlogic 267x/836x (2031/8031) FCoE β 16Gb, PCIe
- Qlogic 256x (2532) β 8Gb, PCIe
- Qlogic 246x (2432) β 4Gb, PCIe
- Qlogic 2422 β 4Gb, PCI-X
So many options, bestie! Pick your fighter. π₯
π§ FIRMWARE π§
Firmware loading is supported and handled by firmware(9). The correct firmware is either loaded automatically, if available for this type of adapter, or by manually loading the ispfw(4) module. It is strongly recommended that you use the firmware available from ispfw(4) as it is the one that most likely has been tested with this driver. Like, trust the tested one, okay? π
βοΈ CONFIGURATION OPTIONS βοΈ
Target mode support for Fibre Channel adapters may be enabled with the
options ISP_TARGET_MODE
option.
To disable FC-Tape, use the following configuration option:
options ISP_FCTAPE_OFF
Note that even if theISP_FCTAPE_OFFoption is used, it may be overridden by thefctapehint described below. So watch out! π
π₯Ύ BOOT OPTIONS π₯Ύ
The following options are switchable by setting values in /boot/device.hints. They are:
hint.isp.N.msiβ Limit on number of Message Signaled Interrupts (MSI) to be used.hint.isp.N.msixβ Limit on number of Extended Message Signaled Interrupts (MSI-X) to be used.hint.isp.N.fwload_disableβ A hint value to disable loading of firmware provided byispfw(4).hint.isp.N.fwload_forceβ A hint value to prefer firmware provided byispfw(4), even if it is older than the firmware in flash on the board. Iffwload_disableis also specified,fwload_forcewill be ignored.
By default, with 27XX and newer controllers, the isp(4) driver will use the newer firmware. For older controllers, the isp(4) driver will use the firmware provided by ispfw(4) if it is available, and otherwise use the firmware in flash on the board.
hint.isp.N.ignore_nvramβ A hint value to ignore board NVRAM settings for. Otherwise use NVRAM settings.hint.isp.N.fullduplexβ A hint value to set full duplex mode.hint.isp.N.topologyβ A hint value to select topology of connection. Supported values are:lportβ Prefer arbitrated loop and fallback to point to point.nportβ Prefer point to point and fallback to arbitrated loop.lport-onlyβ Arbitrated loop only.nport-onlyβ Point to point only.
hint.isp.N.portwwnβ This should be the full 64 bit World Wide Port Name you would like to use, overriding the value in NVRAM for the card.hint.isp.N.nodewwnβ This should be the full 64 bit World Wide Node Name you would like to use, overriding the value in NVRAM for the card.hint.isp.N.iidβ A hint to override or set the Initiator ID or Loop ID. For Fibre Channel cards in Local Loop topologies it is strongly recommended that you set this value to non-zero. Like, don't skip this, bestie. πhint.isp.N.roleβ A hint to define default role forispinstance (0-- none,1-- target,2-- initiator,3-- both).hint.isp.N.debugβ A hint value for a driver debug level (see the file/usr/src/sys/dev/isp/ispvar.hfor the values.hint.isp.N.vportsβ A hint to create specified number of additional virtual ports.hint.isp.N.nofctapeβ Set this to1to disable FC-Tape operation on the givenispinstance.hint.isp.N.fctapeβ Set this to1to enable FC-Tape operation on the givenispinstance for targets that support it.
ποΈ SYSCTL OPTIONS ποΈ
dev.isp.N.loop_down_limitβ This value says how long to wait in seconds after loop has gone down before giving up and expiring all of the devices that were visible. The default is300seconds (5 minutes). A separate (nonadjustable) timeout is used when booting to not stop booting on lack of FC connectivity.dev.isp.N.gone_device_timeβ This value says how long to wait for devices to reappear if they (temporarily) disappear due to loop or fabric events. While this timeout is running, I/O to those devices will simply be held.dev.isp.N.use_gff_id,dev.isp.N.use_gft_idβ Setting those options to0allows to disable use of GFF_ID and GFT_ID SNS requests during FC fabric scan. It may be useful if switch does not implement them correctly, preventing some devices from being found. Disabling them may cause unneeded logins to ports not supporting target role or even FCP at all. The default is1(enabled).dev.isp.N.wwnnβ This is the readonly World Wide Node Name value for this port.dev.isp.N.wwpnβ This is the readonly World Wide Port Name value for this port.dev.isp.N.fw_version_flashβ The readonly flash firmware version value in the active region of the controller.dev.isp.N.fw_version_ispfwβ The readonly firmware version value provided byispfw(4).dev.isp.N.fw_version_runβ The readonly firmware version value currently executed on the controller.
π SEE ALSO π
Go check these out, iykyk. π
π AUTHORS π
The isp driver was written by Matthew Jacob originally for NetBSD at NASA/Ames Research Center. Later improvement was done by Alexander Motin <mav@FreeBSD.org>. Like, legends only. π
π BUGS π
The driver currently ignores some NVRAM settings. Not me finding out there's a bug π. But hey, now you know.
So that's the tea, bestie! π This page is from Debian, dated April 8, 2025, for ISP(4). Stay slay, and may your connections always be point-to-point. πβ¨
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π the page's license: BSD-3-Clause
- Copyright (c) 2009-2020 Alexander Motin <mav@FreeBSD.org>
- Copyright (c) 2006 Marcus Alves Grando
- Copyright (c) 1998-2001 Matthew Jacob, for NASA/Ames Research Center
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms