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)):

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.

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, 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: 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 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 prevails. Only whom != 0 is supported in
the scsi_ifsetcap(9F) call.

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<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 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 hardware.

Stopfirmwarefailed

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.

Polledcommandtimeouton<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/Firmwareerror

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 timeoutontarget <number>.<number>

The isp driver found a command that had not completed in the correct 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.