isp(7D) Devices isp(7D)NAMEisp - 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 com‐
mands. 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 time‐
out 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 preferable to change the ini‐
tiator 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 device 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 queu‐
ing 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 device name:
To set scsi-options more specifically per device type, add the follow‐
ing 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 precedence, fol‐
lowed 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: synchronous, 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 capabilities 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 explic‐
itly. The untagged-qing capability is always enabled and its value can‐
not 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 prevails. 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 attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │SPARC │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOprtconf(1M), driver.conf(4), attributes(5), scsi_abort(9F),
scsi_hba_attach(9F), scsi_ifgetcap(9F), scsi_reset(9F), scsi_trans‐
port(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 console 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 messages are preceded by "isp<num‐
ber>", 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 struc‐
ture. Driver did not attach to device; SCSI devices will be inac‐
cessible.
Bad soft state
Driver requested an invalid internal state structure. Driver did
not attach to device; SCSI devices will be inaccessible.
Unable to map registers
Driver was unable to map device registers; check for bad hardware.
Driver did not attach to device; 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 inaccessible.
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 hard‐
ware.
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 rou‐
tine 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 rou‐
tine 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 target 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 connec‐
tion. 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 completed in the cor‐
rect amount of time; this will cause error recovery by the isp
driver. The device 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 outstanding commands that have been transported
to the isp driver to be completed via the scsi_pkt completion
routine in the target driver with reason of CMD_RESET and status
of STAT_BUS_RESET set in the scsi_pkt.
SunOS 5.10 12 Jan 1998 isp(7D)