- Qlogic Ultra3 SCSI ISP10160 Host Bus Adapter Driver
pci@pci-slot/scsi@4 - Scsi bus-1
pci@pci-slot/scsi@5 - Scsi bus-2
The ISP10160 host bus adapter is a SCSA-compliant nexus driver that supports Qlogic ISP10160 SCSI chips on the PCI bus. The ISP10160 is an intelligent SCSI host bus adapter chip that reduces the amount of CPU overhead used in a SCSI transfer.
The qus driver supports the standard functions provided by the SCSA interface. The driver supports tagged and untagged queuing, fast, fast-20, fast-40, fast-80, and auto request sense, but does not support linked commands.
You configure the qus driver by defining properties in qus.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.
Example 1: SCSI Options:
Create a file called /kernel/drv/qus.conf, then add the following line to disable tagged queuing, fast SCSI, and Wide mode for all qus instances:
To disable an option for a specific ISP10160 (see driver.conf(4)), do the following:
name="qus" parent="/pci@1f,2000/pci@1" unit-address="4" scsi-options=0x178 target3-scsi-options=0x58 scsi-initiator-id=6;
The default initiator ID in OBP is 7 and that the change to ID 6 occurs at attach time. You might prefer to change the initiator ID in OBP.
Example 1 sets scsi-options for target 3 to 0x58 and all other targets on this SCSI bus to 0x178.
To determine the physical pathname of the parent, use the /devices tree or follow the link of the logical device name:
example# ls -l /dev/rdsk/c2t0d0s0 lrwxrwxrwx 1 root root 76 Aug 22 13:29 /dev/rdsk/c2t0d0 s0 -> ../../devices/pci@1f,2000/pci@1/scsi@5/sd@0,0:a,raw
To determine the hardware property values, use the output of prtconf(1M) with the -v option:
pci, instance #0 Driver properties: name='device_type' type=string items=1 dev=none value='pci' Hardware properties: name='ranges' type=int items=8 value=82000000.00000000.00100000.82000000.00000000.00100000./ 00000000.00100000 name='latency-timer' type=int items=1 value=00000040 name='cache-line-size' type=int items=1 value=00000010 scsi, instance #0 Driver properties: name='scsi-selection-timeout' type=int items=1 dev=(249,0) value=000000fa name='scsi-options' type=int items=1 dev=(249,0) value=00107ff8 name='scsi-watchdog-tick' type=int items=1 dev=(249,0) value=0000000a name='scsi-tag-age-limit' type=int items=1 dev=(249,0) value=00000002 name='scsi-reset-delay' type=int items=1 dev=(249,0) value=00000bb8 Hardware properties: name='cache-line-size' type=int items=1 value=00000010 sd (driver not attached) st (driver not attached) scsi, instance #1 Driver properties: name='scsi-selection-timeout' type=int items=1 dev=(249,0) value=000000fa name='scsi-options' type=int items=1 dev=(249,0) value=00107ff8 name='scsi-watchdog-tick' type=int items=1 dev=(249,0) value=0000000a name='scsi-tag-age-limit' type=int items=1 dev=(249,0) value=00000002 name='scsi-reset-delay' type=int items=1 dev=(249,0) value=00000bb8 Hardware properties: name='cache-line-size' type=int items=1 value=00000010 sd (driver not attached) st (driver not attached)
Example 2: ISP10160 Properties
The qus 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 is enabled. Refer to prtconf(1M) (verbose option) for information on qus properties.
scsi, instance #1 Driver properties: name='target2-wide' type=boolean dev=none name='target2-TQ' type=boolean dev=none name='target2-sync-speed' type=int items=1 dev=none value=00027100 name='target0-wide' type=boolean dev=none name='target0-TQ' type=boolean dev=none name='target0-sync-speed' type=int items=1 dev=none value=00027100
To determine the physical pathname of the parent, use the /devices tree or follow the link of the logical deiice name.
To set scsi-options more specifically per device type, add the following line to the /kernel/drv/qus.conf file:
device-type-scsi-options-list = "SEAGATE ST32550W", "seagate-scsi-options" ; seagate-scsi-options = 0x58;
All devices of this specific disk type 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 qus instances) scsi-options per bus has the lowest precedence.
You must reboot your system for the specified scsi-options to take effect.
Example 3: Driver Capabilities
To enable some driver features, the target driver must set capabilities in the qus driver. The target driver can query and modify the following capabilities: synchronous, tagged-qing, wide-xfer, auto-rqsense, qfull-retries, qfull-retry-interval. All other capabilities are query only.
By default, tagged-qing, auto-rqsense, and wide-xfer capabilities are disabled, while disconnect, synchronous, and untagged-qing are enabled. These capabilities can have binary values (0 or 1) only. The default value for both qfull-retries and qfull-retry-interval is 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 must enable tagged-qing and wide-xfer explicitly. The untagged-qing capability is always enabled and its value cannot be modified due to the qus driver's ability to queue commands even when tagged-qing is disabled.
When a conflict occurs 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.
64–bitELF kernel module
See attributes(5) for a description of the following attribute:
prtconf(1M), driver.conf(4) , attributes(5), scsi_abort(9F), scsi_hba_attach(9F), scsi_ifgetcap(9F), scsi_ifsetcap(9F), scsi_reset(9F), scsi_transport(9F), scsi_device(9S), scsi_extended_sense(9S), scsi_inquiry(9S), scsi_pkt(9S)
ANSI Small Computer System Interface-2 (SCSI-2)
SCSI Parallel Interface-3 (SPI-3)
QLogic Corporation, ISP1080/1280/10160A/12160A Initiator Firmware Interface Specification
QLogic Corporation, ISP10160A/12160A Technical Manual
QLogic Corporation, ISP1080 Technical Manual
QLogic Corporation, ISP1280 Technical Manual
In addition to being logged, the following messages can appear on the system console.
The first set of messages shown below can be displayed while the qus driver is first trying to attach. All messages in the first set indicate that the qus driver was unable to attach. Each message is preceded by "qus<number>)", where "<number>" is the instance number of the JASPER Host Bus Adapter.
The SBus device has been placed in a slave-only slot and are not accessible; move to non- slave-only SBus slot.
The device was configured with an interrupt level that cannot be used with the qus driver. Check the device.
Driver is unable to allocate space for the internal state structure. Driver did not attach to device; SCSI devices are inaccessible.
Driver requested an invalid internal state structure. Driver did not attach to device; SCSI devices are inaccessible.
Driver is unable to reload firmware; check for bad hardware. Driver did not attach to device; SCSI devices are inaccessible.
Driver is unable to reset the hardware. Driver did not attach to device; SCSI devices are inaccessible.
Driver is unable to find PCI device-id. Driver did not attach to device; SCSI devices are inaccessible.
Driver is unable to support the ISP chip, which is in the interface. Driver did not attach to device; SCSI devices are inaccessible.
Driver is unable to map device registers. Check for bad hardware. Driver did not attach to device. SCSI devices are inaccessible.
Driver is unable to attach to the hardware. Driver did not attach to device; SCSI devices are inaccessible.
The following messages can be displayed at any time and are printed with the full device pathname followed by the shorter form described above.
These messages indicate a firmware download failure and possible corruption of the firmware. Check the ISP driver.
ISP chip failed to reset in the time allocated. Potential hardware problem.
The ISP Firmware rejected the packet, indicating that the packet was set up incorrectly. As a result, the qus driver calls the target completion routine with the reason of CMD_TRAN_ERR set in the scsi_pkt. To correctly set up the packet, check the target driver.
The ISP Firmware rejected the packet because the packet was set up incorrectly. As a result, the qus driver calls the target completion routine with the reason of CMD_TRAN_ERR set in the scsi_pkt. To correctly set up the packet, check the target driver.
These messages indicate that the target is reducing its transfer rate. Reboot the system to obtain the maximum transfer rate.
These messages indicate a possible ISP chip failure. Driver attempts to recover from this condition by reloading and restarting the firmware.
Although all driver recovery procedure are completed, the interface did not come online and might need replacement.
The SCSI cable is faulty or is connected improperly.
The ISP chip encountered a firmware error that is probably due to a faulty SCSI cable or improper cable connection. As a result, the qus driver attempts to do error recovery by resetting the chip.
The ISP chip received an unexpected SCSI Reset and has initiated its own internal error recovery, which returns scsi_pkt with reason set to CMD_RESET.
The qus driver is performing error recovery. As a result, all outstanding commands that have been transported to the qus driver is completed by way of the scsi_pkt completion routine in the target driver with reason of CMD_RESET and status of STAT_BUS_RESET set in scsi_pkt.
Possible SCSI cable failure. Driver might still be able to communicate with the target and continue sending commands. Leaving the system in the same state triggers this message once per hour. System I/O throughput might be reduced. The SCSI might need to be replaced.
These messages indicate a possible cable failure. Outstanding commands are returned with CMD_RESET or CMD_TRAN_ERR set in scsi_pkt.