ncrs(7D)
NAME
ncrs - SCSI host bus adapter driver
SYNOPSIS
scsi@unit-address
DESCRIPTION
The ncrs host bus adapter driver is a SCSA-compliant nexus
driver that supports the LSI Logic (formerly Symbios Logic
or NCR) 53C810, 53C810A, 53C815, 53C820, 53C825, 53C825A,
53C860, 53C875, 53C875J, 53C876, and 53C895 SCSI (Small Com-
puter Systems Interface) chips.
The ncrs driver supports standard functions provided by the
SCSA interface, including tagged and untagged queuing,
Wide/Fast/Ultra/Ultra2 SCSI, and auto request sense. The
ncrs driver does not support linked commands.
PRECONFIGURATION
Known Problems and Limitations
o The LSI BIOS and the Solaris fdisk program may be
incompatible. To avoid problems, you should create an
entry in the FDISK partition table using the DOS ver-
sion of FDISK (or equivalent utility) before instal-
ling the Solaris software. To ensure your system will
reboot following Solaris installation, create a DOS
partition at least 1-cylinder in size that starts at
cylinder 0.
o Add-in cards containing 53C815, 53C820, 53C825, or
53C825A controllers must be used in bus-mastering PCI
slots. PCI slots on dual PCI slot motherboards are
generally bus-master capable. However, motherboards
that contain three or more PCI slots, or motherboards
that feature several embedded PCI controllers may con-
tain PCI slots that are not bus-master capable.
o PCI motherboards that feature LSI Logic SDMS BIOS and
an embedded 53C810 or 53C810A controller may not be
compatible with 53C82x add-in cards equipped with LSI
Logic SDMS BIOs. To prevent conflicts, it may be
necessary to upgrade the motherboard BIOS, the add-in
card, or both.
o Early PCI systems that are equipped with an 53C810
motherboard chip may contain unconnected interrupt
pins. These systems cannot be used with Solaris
software.
o Wide-to-narrow target connections are not supported by
Solaris software; as a result, you should not attempt
to connect wide targets to narrow connectors on any of
the supported devices.
o If your adapter supports the LSI Logic SCSI configura-
tion utility, the value of the host SCSI ID (found
under the Adapter Setup menu) must be set to 7. (You
can access the Symbios Logic SCSI configuration util-
ity using Control-C.)
o If you experience problems with old target devices,
add the following to the /kernel/drv/ncrs.conf file:
targetn-scsi-options = 0x0;
where n is the ID of the failing target.
o If you are using a Conner 1080S narrow SCSI drive, the
system may display the following warnings:
WARNING: /pci@0,0/pci1000,f@d (ncrs0):
invalid reselection (0,0)
WARNING: /pci@0,0/pci1000,f@d/sd@0,0 (sd0);
SCSI transport failed: 'reset: retrying command'
To supress these warnings, disable tagged queuing in the
ncrs.conf file.
o Pentium motherboards (Intel NX chipset) using P90 or
slower processors may cause the ncrs driver to hang.
If this occurs, the following messages are displayed
on the console:
WARNING: /pci@0,0/pci1000,3@6 (ncrs0)
Unexpected DMA state:active dstat=c0<DMA-FIFO-empty,
master-data-parity-error>
This is an unrecoverable state and the system will not
install using the ncrs driver.
o The ncrs driver supports the 53C875 chipset Revision
4, or later versions only. Pre-release versions of the
chip are not supported.
o On rare occasions, use of an SDT7000/SDT9000 tape
drive may result in the following message being
displayed on the console:
Unexpected DMA state: ACTIVE. dstat=81<DMA-FIFO-empty,
illegal-instruction>
After the above message is displayed, the system and tape
drive will recover and remain usable.
DRIVER CONFIGURATION
The ncrs host bus adapter driver is configured by defining
the properties found in ncrs.conf. Properties in the
ncrs.conf file that can be modified by the user include:
scsi-options, target<n>-scsi-options, scsi-reset-delay,
scsi-tag-age-limit, scsi-watchdog-tick, scsi-initiator-id,
and ncrs-iomap. Properties in the ncrs.conf file override
global SCSI settings.
The property target<n>-scsi-options overrides the scsi-
options property value for target<n>, where <n> can vary
from decimal 0 to 15. The ncrs driver supports the follow-
ing SCSI options: SCSI_OPTIONS_DR(0x8),
SCSI_OPTIONS_SYNC(0x20), SCSI_OPTIONS_TAG(0x80),
SCSI_OPTIONS_FAST(0x100), SCSI_OPTIONS_WIDE(0x200),
SCSI_OPTIONS_FAST20(0x400), and SCSI_OPTIONS_FAST40(0x800).
After periodic interval scsi-watchdog-tick, the ncrs driver
searches through all current and disconnected commands for
timeouts.
The scsi-tag-age-limit property represents the number of
times that the ncrs driver attempts to allocate a tag ID
that is currently in use after going through all tag IDs in
a circular fashion. When encountering the same tag ID used
scsi-tag-age-limit times, no additional commands are submit-
ted to the target until all outstanding commands complete or
timeout.
The ncrs-iomap property enables the driver to utilize IO
mapping (rather than memory mapping) of registers.
Refer to scsi_hba_attach(9F) for details.
EXAMPLES
Example 1: A sample ncrs configuration file
Create a file called /kernel/drv/ncrs.conf, then add the
following line:
scsi-options=0x78;
The above example disables tagged queuing, Fast/Ultra SCSI,
and wide mode for all ncrs instances.
The following example disables an option for one specific
ncrs device. See driver.conf(4) and pci(4) for more details.
name="ncrs" parent="/pci@1f,4000"
unit-address="3"
target1-scsi-options=0x58
scsi-options=0x178 scsi-initiator-id=6;
In the example, the default initiator ID in OBP is 7; the
change to ID 6 will occur at attach time. The scsi-options
property is set for target 1 to 0x58 and all other targets
set to 0x178. Note that it may be preferable to change the
initiator ID in OBP.
The physical path name of the parent can be determined using
the /devices tree or by following the link of the logical
device name:
# ls -l /dev/rdsk/c0t0d0s0
lrwxrwxrwx 1 root root 45 May 16 10:08 /dev/rdsk/c0t0d0s0 ->
../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
In the example above, the parent is /pci@1f,4000 and the
unit-address is the number bound to the scsi@3 node.
To set scsi-options more specifically per target, do the
following:
target1-scsi-options=0x78;
device-type-scsi-options-list =
"SEAGATE ST32550W", "seagate-scsi-options" ;
seagate-scsi-options = 0x58;
scsi-options=0x3f8;
With the exception of one specific disk type that has scsi-
options set to 0x58, the example above sets scsi-options for
target 1 to 0x78 and all other targets to 0x3f8.
The scsi-options properties that are specified per target ID
have the highest precedence, followed by scsi-options per
device type. Global scsi-options (for all ncrs instances)
per bus have the lowest precedence.
To turn on IO mapping for all ncrs cards in the system, do
the following:
ncrs-iomap=1;
The above action will noticeably slow the performance of the
driver. You must reboot the system for the specified scsi-
options to take effect.
Driver Capabilities
To enable some driver features, the target driver must set
capabilities in the ncrs driver. The following capabili-
ties can be queried and modified by the target driver: syn-
chronous, tagged-qing, wide-xfer, auto-rqsense, qfull-
retries, and qfull-retry-interval. All other capabilities
are query only.
The tagged-qing, auto-rqsense, wide-xfer, disconnect, and
Ultra/Ultra2 synchronous capabilities are enabled by
default, and can be assigned binary (0 or 1) values only.
The default value for qfull-retries is 10, while the default
value for qfull-retry-interval is 100. The qfull-retries
capability is a uchar_t (0 to 255), while qfull-retry-
interval is a ushort_t (0 to 65535).
If a conflict exists 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.
The ncrs host bus adapter driver also supports hotplugging
of targets using the cfgadm tool. Hotplug operations on the
SCSI bus that hosts the root partition should not be per-
formed. See the cfgadm(1M) man page for more information.
FILES
/kernel/drv/ncrs
ELF kernel module
/kernel/drv/ncrs.conf
Optional configuration file
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
bute:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE |
| ____________________________|_____________________________|_
| VALUE | |
| ____________________________|_____________________________|_
| Architecture | Limited to PCI-based sys-|
| | tems with Symbios 53C810,|
| | 53C810A, 53C815, 53C820,|
| | 53C825, 53C825A, 53C860,|
| | 53C875, 53C875J, 53C876,|
| | and 53C895 SCSI I/O proces-|
| | sors. |
|_____________________________|_____________________________|
SEE ALSO
prtconf(1M), driver.conf(4), pci(4), attributes(5),
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)
Writing Device Drivers
ANSI Small Computer System Interface-2 (SCSI-2)
Symbios Logic Inc., SYM53C895 PCI-Ultra2 SCSI I/O Processor
With LVDlink
Symbios Logic Inc., SYM53C875 PCI-SCSI I/O Processor With
Fast-20
Symbios Logic Inc., SYM53C825A PCI-SCSI I/O Processor
Symbios Logic Inc., SYM53C810A PCI-SCSI I/O Processor
DIAGNOSTICS
The messages described below are logged and may also appear
on the system console.
Device is using a hilevel intr
The device was configured with an interrupt level that can-
not be used with this ncrs driver. Check the PCI device.
map setup failed
The driver was unable to map device registers; check for bad
hardware. Driver did not attach to device; SCSI devices will
be inaccessible.
glm_script_alloc failed
The driver was unable to load the SCRIPTS for the SCSI pro-
cessor; check for bad hardware. Driver did not attach to
device; SCSI devices will be inaccessible.
cannot map configuration space
The driver was unable to map in the configuration registers.
Check for bad hardware. SCSI devices will be inaccessible
attach failed
The driver was unable to attach; usually preceded by another
warning that indicates why attach failed. These can be con-
sidered hardware failures.
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.
Unexpected bus free
Target disconnected from the bus without notice. Check for
bad hardware.
Disconnected command timeout for Target <id>.<lun>
A timeout occurred while target id/lun was disconnected.
This is usually a target firmware problem. For tagged queu-
ing targets, <n> commands were outstanding when the timeout
was detected.
Disconnected tagged cmd(s) (<n>) timeout for Target <id>.<lun>
A timeout occurred while target id/lun was disconnected.
This is usually a target firmware problem. For tagged queu-
ing 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 termi-
nation.
Target <id> reducing sync. transfer rate
A data transfer hang or DATA-IN phase parity error was
detected. The driver attempts to eliminate this problem by
reducing the data transfer rate.
Target <id> reverting to async. mode
A second data transfer hang was detected for this target.
The driver attempts to eliminate this problem by reducing
the data transfer rate.
Target <id> disabled wide SCSI mode
A second data phase hang was detected for this target. The
driver attempts to eliminate this problem by disabling wide
SCSI mode.
auto request sense failed
An attempt to start an auto request packet failed. Another
auto request packet may already be in transport.
invalid reselection (<id>.<lun>)
A reselection failed; target accepted abort or reset, but
still tries to reconnect. Check for bad hardware.
invalid intcode
The SCRIPTS processor generated an invalid SCRIPTS inter-
rupt. Check for bad hardware.
NOTES
The ncrs hardware (53C875) supports Wide, Fast, and Ultra
SCSI mode. The maximum SCSI bandwidth is 40 MB/sec.
The ncrs hardware (53C895) supports Wide, Fast, Ultra and
Ultra2 SCSI mode using a LVD bus. The maximum SCSI
bandwidth is 80 MB/second.
The ncrs driver exports properties indicating the negotiated
transfer speed per target (target<n>-sync-speed), whether
wide bus is supported (target<n>-wide) for that particular
target (target<n>-scsi-options), and whether tagged queuing
has been enabled (target<n>-TQ). The sync-speed property
value indicates 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
for that target), or 0 (to indicate that the capability is
disabled for that targe). See prtconf(1M) (verbose option)
for details on viewing the ncrs properties.
scsi, instance #0
Driver properties:
name <target6-TQ> length <4>
value <0x00000000>.
name <target6-wide> length <4>
value <0x00000000>.
name <target6-sync-speed> length <4>
value <0x00002710>.
name <target1-TQ> length <4>
value <0x00000001>.
name <target1-wide> length <4>
value <0x00000000>.
name <target1-sync-speed> length <4>
value <0x00002710>.
name <target0-TQ> length <4>
value <0x00000001>.
name <target0-wide> length <4>
value <0x00000001>.
name <target0-sync-speed> length <4>
value <0x00009c40>.
name <scsi-options> length <4>
value <0x000007f8>.
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>.
name <latency-timer> length <4>
value <0x00000088>.
name <cache-line-size> length <4>
value <0x00000010>.
Man(1) output converted with
man2html