'\" te .\" Copyright (c) 1995, Sun Microsystems, Inc. .\" All Rights Reserved .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] .TH FAS 7D "Jun 20, 1997" .SH NAME fas \- FAS SCSI Host Bus Adapter Driver .SH SYNOPSIS .LP .nf fas@\fIsbus-slot\fR,0x8800000 .fi .SH DESCRIPTION .sp .LP The \fBfas\fR Host Bus Adapter driver is a \fBSCSA\fR compliant nexus driver that supports the Qlogic FAS366 \fBSCSI\fR chip. .sp .LP The \fBfas\fR driver supports the standard functions provided by the \fBSCSA\fR interface. The driver supports tagged and untagged queuing, wide and fast \fBSCSI,\fR almost unlimited transfer size (using a moving \fBDVMA\fR window approach), and auto request sense; but it does not support linked commands. .SS "Driver Configuration" .sp .LP The \fBfas\fR driver can be configured by defining properties in \fBfas.conf\fR which override the global \fBSCSI\fR settings. Supported properties are: \fBscsi-options\fR, \fBtarget<\fIn\fR>-scsi-options\fR, \fBscsi-reset-delay\fR, \fBscsi-watchdog-tick\fR, \fBscsi-tag-age-limit\fR, \fBscsi-initiator-id\fR. .sp .LP \fBtarget<\fIn\fR>-scsi-options\fR overrides the \fBscsi-options\fR property value for \fBtarget<\fIn\fR>\fR. <\fIn\fR> can vary from decimal \fB0\fR to \fB15\fR. The supported \fBscsi-options\fR are: \fBSCSI_OPTIONS_DR\fR, \fBSCSI_OPTIONS_SYNC\fR, \fBSCSI_OPTIONS_TAG\fR, \fBSCSI_OPTIONS_FAST\fR, and \fBSCSI_OPTIONS_WIDE\fR. .sp .LP After periodic interval \fBscsi-watchdog-tick\fR, the \fBfas\fR driver searches all current and disconnected commands for timeouts. .sp .LP \fBscsi-tag-age-limit\fR is the number of times that the \fBfas\fR driver attempts to allocate a particular tag ID that is currently in use after going through all tag IDs in a circular fashion. After finding the same tag ID in use \fBscsi-tag-age-limit\fR times, no more commands will be submitted to this target until all outstanding commands complete or timeout. .sp .LP Refer to \fBscsi_hba_attach\fR(9F) for details. .SH EXAMPLES .LP \fBExample 1 \fRA sample of fas configuration file .sp .LP Create a file called \fB/kernel/drv/fas.conf\fR and add this line: .sp .LP \fBscsi-options=0x78;\fR .sp .LP This disables tagged queuing, Fast \fBSCSI,\fR and Wide mode for all \fBfas\fR instances. The following example disables an option for one specific \fBfas\fR (refer to \fBdriver.conf\fR(4) for more details): .sp .in +2 .nf name="fas" parent="/iommu@f,e0000000/sbus@f,e0001000" reg=3,0x8800000,0x10,3,0x8810000,0x40 target1-scsi-options=0x58 scsi-options=0x178 scsi-initiator-id=6; .fi .in -2 .sp .LP 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. .sp .LP The example above sets \fBscsi-options\fR for target 1 to \fB0x58\fR and all other targets on this \fBSCSI\fR bus to \fB0x178\fR. .sp .LP The physical pathname of the parent can be determined using the \fB/devices\fR tree or following the link of the logical device name: .sp .in +2 .nf # ls \fB-l\fR /dev/rdsk/c1t3d0s0 lrwxrwxrwx 1 root other 78 Aug 28 16:05 /dev/rdsk/c1t3d0s0 -> \&.\|.\|/.\|.\|/devices/iommu@f,e0000000\ sbus@f,e0001000/SUNW,fas@3,8800000/sd@3,0:a,raw .fi .in -2 .sp .LP Determine the register property values using the output from \fBprtconf\fR(1M) (with the \fB-v\fR option): .sp .in +2 .nf SUNW,fas, instance #0 \|.\|.\|.\|. Register Specifications: Bus Type=0x3, Address=0x8800000, Size=10 Bus Type=0x3, Address=0x8810000, Size=40 .fi .in -2 .sp .LP \fBscsi-options\fR can also be specified per device type using the device inquiry string. All the devices with the same inquiry string will have the same \fBscsi-options\fR set. This can be used to disable some \fBscsi-options\fR on all the devices of the same type. .sp .in +2 .nf device-type-scsi-options-list= "TOSHIBA XM5701TASUN12XCD", "cd-scsi-options"; cd-scsi-options = 0x0; .fi .in -2 .sp .LP The above entry in \fB/kernel/drv/fas.conf\fR sets the \fBscsi-options\fR for all devices with inquiry string \fBTOSHIBA XM5701TASUN12XCD\fR to \fBcd-scsi-options\fR. To get the inquiry string, run the \fBprobe-scsi\fR or \fBprobe-scsi-all\fR command at the \fBok\fR prompt before booting the system. .sp .LP To set \fBscsi-options\fR more specifically per target: .sp .in +2 .nf target1-scsi-options=0x78; device-type-scsi-options-list = "SEAGATE ST32550W", "seagate-scsi-options" ; seagate-scsi-options = 0x58; scsi-options=0x3f8; .fi .in -2 .sp .LP The above sets \fBscsi-options\fR for target 1 to \fB0x78\fR and for all other targets on this \fBSCSI\fR bus to \fB0x3f8\fR except for one specific disk type which will have \fBscsi-options\fR set to \fB0x58\fR. .sp .LP \fBscsi-options\fR specified per target ID have the highest precedence, followed by \fBscsi-options\fR per device type. Global \fBfas scsi-options\fR (effecting all instances) per bus have the lowest precedence. .sp .LP The system needs to be rebooted before the specified \fBscsi-options\fR take effect. .SS "Driver Capabilities" .sp .LP The target driver needs to set capabilities in the \fBfas\fR driver in order to enable some driver features. The target driver can query and modify these capabilities: \fBsynchronous\fR, \fBtagged-qing\fR, \fBwide-xfer\fR, \fBauto-rqsense\fR, \fBqfull-retries\fR, \fBqfull-retry-interval\fR. All other capabilities can only be queried. .sp .LP By default, \fBtagged-qing\fR, \fBauto-rqsense\fR, and \fBwide-xfer\fR capabilities are disabled, while \fBdisconnect\fR, \fBsynchronous\fR, and \fBuntagged-qing\fR are enabled. These capabilities can only have binary values (\fB0\fR or \fB1\fR). The default value for \fBqfull-retries\fR is \fB10\fR and the default value for \fBqfull-retry-interval\fR is \fB100\fR. The \fBqfull-retries\fR capability is a \fBuchar_t\fR (\fB0\fR to \fB255\fR) while \fBqfull-retry-interval\fR is a \fBushort_t\fR (\fB0\fR to \fB65535\fR). .sp .LP The target driver needs to enable \fBtagged-qing\fR and \fBwide-xfer\fR explicitly. The \fBuntagged-qing\fR capability is always enabled and its value cannot be modified, because \fBfas\fR can queue commands even when \fBtagged-qing\fR is disabled. .sp .LP Whenever there is a conflict between the value of \fBscsi-options\fR and a capability, the value set in \fBscsi-options\fR prevails. Only \fBwhom != 0\fR is supported in the \fBscsi_ifsetcap\fR(9F) call. .sp .LP Refer to \fBscsi_ifsetcap\fR(9F) and \fBscsi_ifgetcap\fR(9F) for details. .SH FILES .sp .ne 2 .na \fB\fB/kernel/drv/fas\fR\fR .ad .RS 24n \fBELF\fR Kernel Module .RE .sp .ne 2 .na \fB\fB/kernel/drv/fas.conf\fR\fR .ad .RS 24n Optional configuration file .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Architecture T{ Limited to Sparc SBus-based systems with FAS366-based SCSI port and SunSWIFT SBus SCSI Host Adapter/Fast Ethernet option. T} .TE .SH SEE ALSO .sp .LP \fBprtconf\fR(1M), \fBdriver.conf\fR(4), \fBattributes\fR(5), \fBscsi_abort\fR(9F), \fBscsi_hba_attach\fR(9F), \fBscsi_ifgetcap\fR(9F), \fBscsi_ifsetcap\fR(9F), \fBscsi_reset\fR(9F), \fBscsi_sync_pkt\fR(9F), \fBscsi_transport\fR(9F), \fBscsi_device\fR(9S), \fBscsi_extended_sense\fR(9S), \fBscsi_inquiry\fR(9S), \fBscsi_pkt\fR(9S) .sp .LP \fIWriting Device Drivers\fR .sp .LP \fIANSI Small Computer System Interface-2 (SCSI-2)\fR .sp .LP QLogic Corporation, \fIFAS366 Technical Manuals\fR. .SH DIAGNOSTICS .sp .LP The messages described below are some that may appear on the system console, as well as being logged. .sp .LP The first five messages may be displayed while the \fBfas\fR driver is trying to attach; these messages mean that the \fBfas\fR driver was unable to attach. All of these messages are preceded by "fas%d", where "%d" is the instance number of the \fBfas\fR controller. .sp .ne 2 .na \fBDevice in slave-only slot\fR .ad .sp .6 .RS 4n The SBus device has been placed in a slave-only slot and will not be accessible; move to non-slave-only SBus slot. .RE .sp .ne 2 .na \fBDevice is using a hilevel intr\fR .ad .sp .6 .RS 4n The device was configured with an interrupt level that cannot be used with this \fBfas\fR driver. Check the SBus device. .RE .sp .ne 2 .na \fBCannot alloc dma handle\fR .ad .sp .6 .RS 4n Driver was unable to allocate memory for a DMA controller. .RE .sp .ne 2 .na \fBCannot alloc cmd area\fR .ad .sp .6 .RS 4n Driver was unable to allocate memory for a command address. .RE .sp .ne 2 .na \fBCannot create kmem_cache\fR .ad .sp .6 .RS 4n Driver was unable to allocate memory for internal data structures. .RE .sp .ne 2 .na \fBUnable to map FAS366 registers\fR .ad .sp .6 .RS 4n Driver was unable to map device registers; check for bad hardware. Driver did not attach to device; \fBSCSI\fR devices will be inaccessible. .RE .sp .ne 2 .na \fBCannot add intr\fR .ad .sp .6 .RS 4n Driver could not add its interrupt service routine to the kernel. .RE .sp .ne 2 .na \fBCannot map dma\fR .ad .sp .6 .RS 4n Driver was unable to locate a \fBDMA\fR controller. This is an auto-configuration error. .RE .sp .ne 2 .na \fBCannot bind cmdarea\fR .ad .sp .6 .RS 4n Driver was unable to bind the \fBDMA\fR handle to an address. .RE .sp .ne 2 .na \fBCannot create devctl minor node\fR .ad .sp .6 .RS 4n Driver is unable to create a minor node for the controller. .RE .sp .ne 2 .na \fBCannot attach\fR .ad .sp .6 .RS 4n The driver was unable to attach; usually follows another warning that indicates why attach failed. .RE .sp .ne 2 .na \fBDisabled TQ since disconnects are disabled\fR .ad .sp .6 .RS 4n Tagged queuing was disabled because disconnects were disabled in \fBscsi-options\fR. .RE .sp .ne 2 .na \fBBad clock frequency\fR .ad .sp .6 .RS 4n Check for bad hardware. .RE .sp .ne 2 .na \fBSync of pkt (
) failed\fR .ad .sp .6 .RS 4n Syncing a \fBSCSI\fR packet failed. Refer to \fBscsi_sync_pkt\fR(9F). .RE .sp .ne 2 .na \fBAll tags in use!\fR .ad .sp .6 .RS 4n The driver could not allocate another tag number. The target devices do not properly support tagged queuing. .RE .sp .ne 2 .na \fBGross error in FAS366 status\fR .ad .sp .6 .RS 4n The driver experienced severe \fBSCSI\fR bus problems. Check cables and terminator. .RE .sp .ne 2 .na \fBSpurious interrupt\fR .ad .sp .6 .RS 4n The driver received an interrupt while the hardware was not interrupting. .RE .sp .ne 2 .na \fBLost state in phasemanage\fR .ad .sp .6 .RS 4n The driver is confused about the state of the \fBSCSI\fR bus. .RE .sp .ne 2 .na \fBUnrecoverable DMA \fBerror\fR \fBduring selection\fR\fR .ad .sp .6 .RS 4n The \fBDMA\fR controller experienced host SBus problems. Check for bad hardware. .RE .sp .ne 2 .na \fBBad sequence step (