Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Devicesisp(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 preferable 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 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 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 device 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 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.

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 TYPEATTRIBUTE VALUE
ArchitectureSPARC

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


SunOS 5.9Go To TopLast Changed 12 Jan 1998

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.