isp(7D)
NAME
isp - ISP SCSI Host Bus Adapter Driver
SYNOPSIS
Sbus
QLGC,isp@sbus-slot,10000
PCI
SUNW,isptwo@pci-slot
DESCRIPTION
The ISP Host Bus Adapter is a SCSA compliant nexus driver
that supports the Qlogic ISP1000 SCSI and the ISP1040B
SCSI chips. The ISP1000 chip works on SBus and the ISP1040B
chip works on PCI bus. The ISP is an intelligent SCSI Host
Bus Adapter chip that reduces the amount of CPU overhead
used in a SCSI transfer.
The isp driver supports the standard functions provided by
the SCSA interface. The driver supports tagged and untagged
queuing, fast and wide SCSI, and auto request sense, but
does not support linked commands. The PCI version ISP Host
bus adapter based on ISP1040B also supports Fast-20 scsi
devices.
CONFIGURATION
The isp driver can be configured by defining properties in
isp.conf which override the global SCSI settings. Supported
properties are scsi-options, target<n>-scsi-options, scsi-
reset-delay, scsi-watchdog-tick, scsi-tag-age-limit, scsi-
initiator-id, and scsi-selection-timeout.
target<n>-scsi-options overrides the scsi-options property
value for target<n>. <n> is a hex value that can vary from 0
to f. Refer to scsi_hba_attach(9F) for details.
Both the ISP1000 and ISP1040B support only certain SCSI
selection timeout values. The valid values are 25, 50, 75,
100, 250, 500, 750 and 1000. These properties are in units
of milliseconds.
EXAMPLES
Example 1: SCSI Options
Create a file called /kernel/drv/isp.conf and add this
line:
scsi-options=0x78;
This will disable tagged queuing, fast SCSI, and Wide mode
for all isp instances. The following will disable an option
for one specific ISP (refer to driver.conf(4)):
name="isp" parent="/iommu@f,e0000000/sbus@f,e0001000"
reg=1,0x10000,0x450
target1-scsi-options=0x58
scsi-options=0x178 scsi-initiator-id=6;
Note that the default initiator ID in OBP is 7 and that the
change to ID 6 will occur at attach time. It may be prefer-
able to change the initiator ID in OBP.
The above would set scsi-options for target 1 to 0x58 and
for all other targets on this SCSI bus to 0x178.
The physical pathname of the parent can be determined using
the /devices tree or following the link of the logical dev-
ice name:
example# ls -l /dev/rdsk/c2t0d0s0
lrwxrwxrwx 1 root root 76 Aug 22 13:29 /dev/rdsk/c2t0d0s0 ->
../../devices/iommu@f,e0000000/sbus@f,e0001000/QLGC,isp@1,10000/sd@0,0:a,raw
Determine the register property values using the output of
prtconf(1M) with the -v option:
QLGC,isp, instance #0
...
Register Specifications:
Bus Type=0x1, Address=0x10000, Size=450
Example 2: ISP Properties
The isp driver exports properties indicating per target the
negotiated transfer speed (target<n>-sync-speed), whether
tagged queuing has been enabled (target<n>-TQ), and whether
the wide data transfer has been negotiated (target<n>-wide).
The sync-speed property value is the data transfer rate in
KB/sec. The target-TQ and target-wide properties have no
value. The existence of these properties indicate that
tagged queuing or wide transfer has been enabled. Refer to
prtconf(1M) (verbose option) for viewing the isp properties.
QLGC,isp, instance #2
Driver software properties:
name <target0-TQ> length <0> -- <no value>.
name <target0-wide> length <0> -- <no value>.
name <target0-sync-speed> length <4>
value <0x000028f5>.
name <scsi-options> length <4>
value <0x000003f8>.
name <scsi-watchdog-tick> length <4>
value <0x0000000a>.
name <scsi-tag-age-limit> length <4>
value <0x00000008>.
name <scsi-reset-delay> length <4>
value <0x00000bb8>.
Example 3: PCI Bus
To achieve the same setting of SCSI-options as in instance
#0 above on a PCI machine, create a file called
/kernel/drv/isp.conf and add the following entries.
name="isp" parent="/pci@1f,2000/pci@1"
unit-address="4"
scsi-options=0x178
target3-scsi-options=0x58 scsi-initiator-id=6;
The physical pathname of the parent can be determined using
the /devices tree or following the link of the logical dev-
ice name:
To set scsi-options more specifically per device type, add
the following line in the /kernel/drv/isp.conf file:
device-type-scsi-options-list =
"SEAGATE ST32550W", "seagate-scsi-options" ;
seagate-scsi-options = 0x58;
All device which are of this specific disk type will have
scsi-options set to 0x58.
scsi-options specified per target ID has the highest pre-
cedence, followed by scsi-options per device type. Global
(for all isp instances) scsi-options per bus has the lowest
precedence.
The system needs to be rebooted before the specified scsi-
options take effect.
Example 4: Driver Capabilities
The target driver needs to set capabilities in the isp
driver in order to enable some driver features. The target
driver can query and modify these capabilities: synchro-
nous, tagged-qing, wide-xfer, auto-rqsense, qfull-retries,
qfull-retry-interval. All other capabilities can only be
queried.
By default, tagged-qing, auto-rqsense, and wide-xfer capa-
bilities are disabled, while disconnect, synchronous, and
untagged-qing are enabled. These capabilities can only have
binary values (0 or 1). The default values for qfull-retries
and qfull-retry-interval are both 10. The qfull-retries
capability is a uchar_t (0 to 255) while qfull-retry-
interval is a ushort_t (0 to 65535).
The target driver needs to enable tagged-qing and wide-xfer
explicitly. The untagged-qing capability is always enabled
and its value cannot be modified, because isp can queue
commands even when tagged-qing is disabled.
Whenever there is a conflict between the value of scsi-
options and a capability, the value set in scsi-options pre-
vails. Only whom != 0 is supported in the scsi_ifsetcap(9F)
call.
Refer to scsi_ifsetcap(9F) and scsi_ifgetcap(9F) for
details.
FILES
/kernel/drv/isp
ELF Kernel Module
/kernel/drv/isp.conf
Configuration file
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | SPARC |
|_____________________________|_____________________________|
SEE ALSO
prtconf(1M), driver.conf(4), attributes(5), scsi_abort(9F),
scsi_hba_attach(9F), scsi_ifgetcap(9F), scsi_reset(9F),
scsi_transport(9F), scsi_device(9S),
scsi_extended_sense(9S), scsi_inquiry(9S), scsi_pkt(9S)
Writing Device Drivers
ANSI Small Computer System Interface-2 (SCSI-2)
QLogic Corporation, ISP1000 Firmware Interface Specification
QLogic Corporation, ISP1020 Firmware Interface Specification
QLogic Corporation, ISP1000 Technical Manual
QLogic Corporation, ISP1020a/1040a Technical Manual
QLogic Corporation, Differences between the ISP1020a/1040a
and the ISP1020B/1040B - Application Note
DIAGNOSTICS
The messages described below may appear on the system con-
sole as well as being logged.
The first set of messages may be displayed while the isp
driver is first trying to attach. All of these messages
mean that the isp driver was unable to attach. These mes-
sages are preceded by "isp<number>", where "<number>" is
the instance number of the ISP Host Bus Adapter.
Device in slave-only slot, unused
The SBus device has been placed in a slave-only
slot and will not be accessible; move to non-
slave-only SBus slot.
Device is using a hilevel intr, unused
The device was configured with an interrupt level
that cannot be used with this isp driver. Check
the device.
Failed to alloc soft state
Driver was unable to allocate space for the
internal state structure. Driver did not attach
to device; SCSI devices will be inaccessible.
Bad soft state
Driver requested an invalid internal state struc-
ture. Driver did not attach to device; SCSI dev-
ices will be inaccessible.
Unable to map registers
Driver was unable to map device registers; check
for bad hardware. Driver did not attach to dev-
ice; SCSI devices will be inaccessible.
Cannot add intr
Driver was not able to add the interrupt routine
to the kernel. Driver did not attach to device;
SCSI devices will be inaccessible.
Unable to attach
Driver was unable to attach to the hardware for
some reason that may be printed. Driver did not
attach to device; SCSI devices will be inaccessi-
ble.
The next set of messages can be displayed at any time. They
will be printed with the full device pathname followed by
the shorter form described above.
Firmware should be < 0x<number> bytes
Firmware size exceeded allocated space and will
not download firmware. This could mean that the
firmware was corrupted somehow. Check the isp
driver.
Firmware checksum incorrect
Firmware has an invalid checksum and will not be
downloaded.
Chip reset timeout
ISP chip failed to reset in the time allocated;
may be bad hardware.
Stop firmware failed
Stopping the firmware failed; may be bad
hardware.
Load ram failed
Unable to download new firmware into the ISP
chip.
DMA setup failed
The DMA setup failed in the host adapter driver
on a scsi_pkt. This will return TRAN_BADPKT to a
SCSA target driver.
Bad request pkt
The ISP Firmware rejected the packet as being set
up incorrectly. This will cause the isp driver
to call the target completion routine with the
reason of CMD_TRAN_ERR set in the scsi_pkt.
Check the target driver for correctly setting up
the packet.
Bad request pkt header
The ISP Firmware rejected the packet as being set
up incorrectly. This will cause the isp driver
to call the target completion routine with the
reason of CMD_TRAN_ERR set in the scsi_pkt.
Check the target driver for correctly setting up
the packet.
Polled command timeout on <number>.<number>
A polled command experienced a timeout. The tar-
get device, as noted by the target lun
(<number>.<number>) information, may not be
responding correctly to the command, or the ISP
chip may be hung. This will cause an error
recovery to be initiated in the isp driver. This
could mean a bad device or cabling.
SCSI Cable/Connection problem
Hardware/Firmware error
The ISP chip encountered a firmware error of some
kind. The problem is probably due to a faulty
scsi cable or improper cable connection. This
error will cause the isp driver to do error
recovery by resetting the chip.
Received unexpected SCSI Reset
The ISP chip received an unexpected SCSI Reset
and has initiated its own internal error
recovery, which will return all the scsi_pkt
with reason set to CMD_RESET.
Fatal timeout on target <number>.<number>
The isp driver found a command that had not com-
pleted in the correct amount of time; this will
cause error recovery by the isp driver. The dev-
ice that experienced the timeout was at target
lun (<number>.<number>).
Fatal error, resetting interface
This is an indication that the isp driver is
doing error recovery. This will cause all out-
standing commands that have been transported to
the isp driver to be completed via the scsi_pkt
completion routine in the target driver with rea-
son of CMD_RESET and status of STAT_BUS_RESET
set in the scsi_pkt.
Man(1) output converted with
man2html