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