fas(7D) manual page
Table of Contents
fas - FAS SCSI Host Bus Adapter Driver
fas@sbus-slot,0x8800000
Sparc SBus-based systems with FAS366 based SCSI
port and the
SunSWIFT SBus SCSI
adapter.
The fas Host Bus Adapter driver
is a SCSA
compliant nexus driver that supports the Qlogic FAS366 SCSI
chip.
The fas driver supports the standard functions provided by the SCSA
interface.
The driver supports tagged and untagged queuing, wide and fast SCSI
, almost
unlimited transfer size (using a moving DVMA
window approach), and auto
request sense; but it does not support linked commands.
The
fas driver can be configured by defining properties in fas.conf which
override the global SCSI
settings. Supported properties are: scsi-options,
target<n>-scsi-options, target<n>-sync-speed, target<n>-wide, target<n>-TQ, scsi-reset-delay,
scsi-watchdog-tick, scsi-tag-age-limit, scsi-initiator-id.
target<n>-scsi-options overrides
the scsi-options property value for target<n>.
<n> can vary from 0 to F. The supported scsi-options are: SCSI_OPTIONS_DR
,
SCSI_OPTIONS_SYNC
, SCSI_OPTIONS_TAG
, SCSI_OPTIONS_FAST
, SCSI_OPTIONS_WIDE
.
scsi-watchdog-tick is the periodic interval where the fas driver goes through
all current and disconnected commands searching for timeouts.
scsi-tag-age-limit
is the number of times that the fas 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 scsi-tag-age-limit times, no
more commands will be submitted to this target until all outstanding commands
complete or timeout.
Refer to scsi_hba_attach(9F)
for details.
Create
a file /kernel/drv/fas.conf and add this line:
scsi-options=0x78;
This will
disable tagged queuing, fast SCSI
, and Wide mode for all fas instances.
To disable an option for one specific fas (refer to driver.conf(4)
):
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;
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 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:
# ls -l /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
The register property values can be determined from prtconf(1M)
output
(-v option):
SUNW,fas, instance #0
....
Register Specifications:
Bus Type=0x3, Address=0x8800000, Size=10
Bus Type=0x3, Address=0x8810000, Size=40
The target driver needs to set capabilities in the
fas 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 u_char (0 to 255) while qfull-retry-interval is a u_short (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 fas 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.
- /kernel/drv/fas
- ELF
Kernel Module
- /kernel/drv/fas.conf
- Optional configuration file
prtconf(1M)
, driver.conf(4)
, scsi_abort(9F)
, scsi_hba_attach(9F)
,
scsi_ifgetcap(9F)
, scsi_ifsetcap(9F)
, scsi_reset(9F)
, scsi_sync_pkt(9F)
,
scsi_transport(9F)
, scsi_device(9S)
, scsi_extended_sense(9S)
, scsi_inquiry(9S)
,
scsi_pkt(9S)
OpenBoot Command Reference
ANSI Small Computer System Interface-2
(SCSI-2)
FAS366 Technical Manuals, QLogic Corp.
The messages described
below are some that may appear on the system console, as well as being
logged.
The first five messages may be displayed while the fas driver
is trying to attach; these messages mean that the fas driver was unable
to attach. All of these messages are preceded by "fas%d", where "%d" is
the instance number of the fas controller.
- Device in slave-only slot
- 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
- The device
was configured with an interrupt level that cannot be used with this fas
driver. Check the SBus device.
- Unable to map FAS366 registers
- Driver was
unable to map device registers; check for bad hardware. Driver did not
attach to device; SCSI
devices will be inaccessible.
- Cannot map dma
- Driver
was unable to locate a dma controller. This is an auto-configuration error.
- Cannot attach
- The driver was unable to attach; usually follows another
warning that indicates why attach failed.
- Disabled TQ since disconnects
are disabled
- Tagged queuing was disabled because disconnects were disabled
in scsi-options.
- Bad clock frequency
- Check for bad hardware.
- Sync of pkt (%x)
failed
- Syncing a SCSI
packet failed. Refer to scsi_sync_pkt(9F)
.
- All tags
in use!
- The driver could not allocate another tag number. The target devices
do not properly support tagged queuing.
- Cannot alloc tag queue
- The driver
could not allocate space for tag queue.
- Gross error in FAS366 status
- The
driver experienced severe SCSI
bus problems. Check cables and terminator.
- Spurious interrupt
- The driver received an interrupt while the hardware
was not interrupting.
- Lost state in phasemanage
- The driver is confused about
the state of the SCSI
bus.
- Unrecoverable DMA error during selection
- The
DMA controller experienced host SBus problems. Check for bad hardware.
- Bad
sequence step (0x%x) in selection
- The FAS366 hardware reported a bad sequence
step. Check for bad hardware.
- Undetermined selection failure
- The selection
of a target failed unexpectedly. Check for bad hardware.
- Target <n>: failed
reselection (bad reselect bytes)
- A reconnect failed, target sent incorrect
number of message bytes. Check for bad hardware.
- Target <n>: failed reselection
(bad identify message)
- A reconnect failed, target didn’t sent identify message
or it got corrupted. Check for bad hardware.
- Target <n>: failed reselection
(not in msgin phase)
- Incorrect SCSI
bus phase after reconnection. Check
for bad hardware.
- Target <n>: failed reselection (unexpected bus free)
- Incorrect
SCSI
bus phase after reconnection. Check for bad hardware.
- Target <n>: failed
reselection (timeout on receiving tag msg)
- A reconnect failed; target failed
to send tag bytes. Check for bad hardware.
- Target <n>: failed reselection
(botched tag)
- A reconnect failed; target failed to send tag bytes. Check
for bad hardware.
- Target <n>: failed reselection (invalid tag)
- A reconnect
failed; target sent incorrect tag bytes. Check for bad hardware.
- Target
<n>: failed reselection (Parity error in reconnect msg’s)
- A reconnect failed;
parity error detected. Check for bad hardware.
- Target <n>: failed reselection
(no command)
- A reconnect failed; target accepted abort or reset, but still
tries to reconnect. Check for bad hardware.
- Unexpected bus free
- Target disconnected
from the bus without notice. Check for bad hardware.
- Target <n> didn’t disconnect
after sending <message>
- The target unexpectedly did not disconnect after
sending <message>.
- Illegal dma boundary?
- An attempt was made to cross a boundary that the
driver could not handle.
- Unwanted data xfer direction for Target <n>
- The target
went into an unexpected phase.
- Spurious <name> phase from target <n>
- The target
went into an unexpected phase.
- SCSI bus DATA IN phase parity error
- The driver
detected parity errors on the SCSI
bus.
- SCSI bus MESSAGE IN phase parity
error
- The driver detected parity errors on the SCSI
bus.
- SCSI bus STATUS
phase parity error
- The driver detected parity errors on the SCSI
bus.
- Premature end of extended message
- An extended SCSI
bus message did not
complete. Suspect a target f/w problem.
- Premature end of input message
- A
multibyte input message was truncated. Suspect a target f/w problem.
- Input
message botch
- The driver is confused about messages coming from the target.
- Extended message <n> is too long
- The extended message sent by the target
is longer than expected.
- <name> message <n> from Target <m> garbled
- Target <m>
sent message <name> of value <n> which the driver did not understand.
- Target
<n> rejects our message <name>
- Target <n> rejected a message sent by the driver.
- Rejecting message <name> from Target <n>
- The driver rejected a message received
from target <n>.
- Cmd transmission error
- The driver was unable to send out
command bytes.
- Target <n> refused message resend
- The target did not accept
a message resend.
- Two-byte message <name> <value> rejected
- The driver does not
accept this two-byte message.
- Unexpected selection attempt
- An attempt was
made to select this host adapter by another initiator.
- Polled cmd failed
(target busy)
- A polled command failed because the target did not complete
outstanding commands within a reasonable time.
- Polled cmd failed
- A polled command failed because of timeouts or bus errors.
- Disconnected command timeout for Target <id>.<lun>
- A timeout occurred while
target/lun was disconnected. This is usually a target f/w problem. For tagged
queuing targets, <n> commands were outstanding when the timeout was detected.
- Disconnected tagged cmds (<n>) timeout for Target <id>.<lun>
- A timeout occurred
while target/lun was disconnected. This is usually a target f/w problem.
For tagged queuing targets, <n> commands were outstanding when the timeout
was detected.
- Connected command timeout for Target <id>.<lun>
- This is usually
a SCSI
bus problem. Check cables and termination.
- Target <id>.<lun> reverting to async. mode
- A data transfer hang was detected.
The driver attempts to eliminate this problem by reducing the data transfer
rate.
- Target <id>.<lun> reducing sync. transfer rate
- A data transfer hang was
detected. The driver attempts to eliminate this problem by reducing the
data transfer rate.
- Reverting to slow SCSI cable mode
- A data transfer hang
was detected. The driver attempts to eliminate this problem by reducing
the data transfer rate.
- Reset SCSI bus failed
- An attempt to reset the SCSI
bus failed.
- External SCSI bus reset
- Another initiator reset the SCSI
bus.
The fas hardware (FAS366) supports both Wide and fast SCSI
mode,
but fast20 is not supported. The maximum SCSI
bandwidth is 20 MB/sec. Initiator
mode block sequence (IBS) is not supported.
The fas driver exports
properties indicating per target the negotiated transfer speed (target<n>-sync-speed),
whether wide bus is supported (target<n>-wide), scsi-options for that particular
target (target<n>-scsi-options), and whether tagged queuing has been enabled
(target<n>-TQ). The sync-speed property value is the data transfer rate in KB/sec.
The target<n>-TQ and the target<n>-wide property have value 1 to indicate
that the corresponding capability is enabled, or 0 to indicate that the
capability is disabled for that target. Refer to prtconf(1M)
(verbose option)
for viewing the fas properties.
SUNW,fas, instance #1
Driver software properties:
name <target3-TQ> length <4>
value <0x00000001>.
name <target3-wide> length <4>
value <0x00000000>.
name <target3-sync-speed> length <4>
value <0x00002710>.
name <target3-scsi-options> length <4>
value <0x000003f8>.
name <target0-TQ> length <4>
value <0x00000001>.
name <pm_norm_pwr> length <4>
value <0x00000001>.
name <pm_timestamp> length <4>
value <0x30040346>.
name <scsi-options> length <4>
value <0x000003f8>.
name <scsi-watchdog-tick> length <4>
value <0x0000000a>.
name <scsi-tag-age-limit> length <4>
value <0x00000002>.
name <scsi-reset-delay> length <4>
value <0x00000bb8>.
Register Specifications:
Bus Type=0x3, Address=0x8800000, Size=10
Bus Type=0x3, Address=0x8810000, Size=40
Interrupt Specifications:
Interrupt Priority=0x35 (ipl 5)
Table of Contents