***************************************************************************** 
                         Solaris_X86_ReadMe.TXT  
***************************************************************************** 

Installation Guide for the LSI Logic itmpt Solaris X86 driver and utility 
package. 
 
This driver supports:

o  LSI Fibrechannel HBAs for the Solaris 8.0 and 9.0 Operating System

   For Fibre Channel and Solaris 10, please use the itmptfc driver package

o  LSI SAS HBAs for the Solaris 8.0, 9.0 and 10.0 Operating System

o  LSI SCSI HBAs for the Solaris 8.0, 9.0 and 10.0 Operating System

                                                 
This file contains these sections:   

Introduction for Solaris X86 
     Driver Features
     Devices Supported
     Device Mapping
     Fibre Channel Persistent Binding
     Configuration Options
     
Installing the Driver in Existing Systems

Installing the Driver in an New System
     ITU Driver Diskette Creation from Solaris
     ITU Driver Diskette Creation from DOS or Windows
 


1.0 Introduction for Solaris X86 
................................ 

The LSI Logic driver, itmpt, allows the Solaris X86 operating system
to interface with the devices connected to the LSI Fusion-MPT host 
adapters. The driver is optimized for low CPU overhead and high I/O 
throughput, making use of the LSI Logic Fusion-MPT architecture.  The
driver conforms to the Sun SCSA driver standard. 


1.1 Driver Features
................... 

The Solaris X86 driver supports these features:

o  Fibre Channel, SAS and SCSI protocols
o  PCI, PCI-X and PCIe bus protocols
o  LSI Logic MPT common software interface 
o  Multiple host adapters 
o  Multiple Logical Unit Numbers (LUNs) 
o  Scatter-Gather 
o  SCSI pass-through functionality 
o  Disk array configurations with no LUN 0 
o  Disk array configurations with non-contiguous LUNs 
o  Auto request sense 
o  Multiprocessor environments.


1.2 LSI Logic Devices Supported 
...............................

The LSI Solaris X86 driver supports all LSI Fibre Channel and SAS host
adapters, as well as all LSI SCSI host adapters based on Fusion-MPT
technology.   

1.3 Device Mapping
..................

The driver reads the /kernel/drv/sd.conf file, which is a user-editable 
file containing entries that map each Solaris target ID to an FC target.
Each target / LUN that to be probed must have an entry in the sd.conf 
file, and should use this syntax:

    name="sd" target=x lun=y;

Root Boot persistent target ID selection is configurable through the BIOS. 


1.4 Fibre Channel Persistent Binding
.....................................

The /kernel/drv/itmpt.conf configuration file may be optionally used to 
configure Fibre Channel persistent bindings. Note that the default behavior
is to map targets by World Wide Name. It is important to use the "port" wwn
for the device you want to map, rather than the "node" wwn, or only part 
of the wwn.

The wwn displayed by lsiutil, menu option 8, under the WWPN column, is 
the correct wwn to use (i.e. the port wwn).

If the device was connected to the Fibre Channel bus via port A,
the port wwn for that device would generally be:

      2100002037102d0f

If the device was connected to the Fibre Channel bus via port B,
the port wwn for that device would generally be:

      2200002037102d0f

Many times the wwn printed on the physical device is only part of
the full wwn.  For example, for the wwn used in the preceeding
example, the wwn listed on the disk case itself is:

      002037102d0f

Optionally, targets may be mapped by their Port ID. To map according 
to the Port ID, the firmware must be reconfigured. You can use the 
'lsiutil' utility to make this change.  Run the utility, choose 
the adapter to work on, then choose menu item number 13 (Change FC port 
settings).  When asked the question:

       Assignment of Bus and Target IDs:

enter a '1' to "sort by DID" rather than "sort by WWN".


- To persistently map a Fibre Channel World Wide Name (wwn) to a target
  device, use this syntax:  

    target-X-wwn="port wwn"

  For example:
     target-4-wwn="2200002037102d0f"

  will persistently map the wwn 2200002037102d0f to target 4 across all
  HBA ports.

- To restrict the mapping to a single bus, use the syntax:
    
    hba-X-target-Y-wwn="port wwn"

  For example:
    hba-1-target-4-wwn="2200002037102d0f"

  will persistently map wwn 2200002037102d0f to target 4 on bus itmpt1 only


- To persistently map a Fibre Channel Port ID to a given target, use the 
  following syntax:

     target-X-did="port id"

  For example:
     target-4-did="0000ca"

  will persistently map the port id 0000ca to target 4 on all
  itmpt busses.
 

1.5 Configuration Options
.........................

The /kernel/drv/itmpt.conf configuration file may be used to configure optional
driver parameters.  The itmpt.conf file includes options for SCSI, SAS and
Fibre Channel. The following parameters are specific to Fibre Channel:

SYM_ADAPTER_FLAGS_ENABLE_ABORT_TASK 
    
    When set, use Abort Task to abort timed-out I/Os, instead of using
    Bus Reset and/or Target Reset.

SYM_ADAPTER_FLAGS_LOOP_ID_NAMING        

    When set, use LoopIdNaming when possible for fibre channel targets.
    For targets on a private loop, the AL_PA is converted to a Loop ID,
    and that Loop ID is used as a target number.  For targets not on a
    local loop, target numbers are assigned starting with 128.

scsi-reset-delay 

    This is the amount of time to delay after a bus reset and is reported 
    in milliseconds.  The default is 250ms.  

scsi-watchdog-tick 

    This is how often the timeout handler is executed to walk the active 
    I/O queue looking for I/O's that have timed out.  The value is in 
    seconds, default is 5.

max-queue-depth 

    This is the maximum number of active I/O's that can be sent to a target
    at a given time.  The default is 32.  The minimum settable value is 4 
    and the maximum is 256.

coalesce-count 

    This is the number of I/O's to hold off before interrupting the driver.
    The minimum count is 0 (turns off coalescing) and the maximum is 128 
    I/O's.  If set to -1, the default value of the firmware is used.

coalesce-time

    This is the time in microseconds to hold off before interrupting the
    driver.  The minimum time is 0 (turns off coalescing) and the
    maximum settable time is 1000 microseconds.  If set to -1, the default
    value of the firmware is used.


2.0 Installing the Driver in an Existing System 
................................................ 

This section provides installation instructions for existing systems.

Note: You must be logged on as root to perform the installation.

Step 1. Uncompress and untar the itmpt-x86-XXX.tar.Z file by typing the
following commands in order to create a directory named
install:

    uncompress itmpt-x86-XXX.tar.Z
    tar -xvf itmpt-x86-XXX.tar
    cd install

Step 2. Execute the pkgadd procedure to add the itmpt driver to the
operating system.

    Example: pkgadd -d .

You will see the display on the screen as shown below.

    The following packages are available:

    1 ITImpt LSI Logic FusionMPT(tm) Fibrechannel/SCSI drivers

              (X86) itmpt kit version X.XX.XX
    Select package(s) you wish to process (or 'all' to process all packages). 
        (default: all) [?,??,q]: 1

    Processing package instance <ITImpt> from </floppy/lsilogic>

    LSI Logic FusionMPT(tm) Fibrechannel/SCSI drivers (X86) 
    itmpt kit version X.XX.XX

    LSI Logic
    Using </> as the package base directory.
    ## Processing package information.
    ## Processing system information.

    2 package pathnames are already properly installed.
    ## Verifying disk space requirements.
    ## Checking for conflicts with packages already installed.
    ## Checking for setuid/setgid programs.

    This package contains scripts which will be executed with
    superuser permission during the process of installing this
    package.

    Do you want to continue with the installation of <ITImpt>
    [y,n,?] y

    Installing LSI Logic FusionMPT(tm)
    Fibrechannel/SCSI drivers as <ITImpt>
    ## Installing part 1 of 1.
    /kernel/drv/itmpt
    /kernel/drv/itmpt.conf
    [ verifying class <none> ]
    ## Executing postinstall script.

    Following installation, please reboot the system to properly
    configure and load the drivers.
    Installation of <ITImpt> was successful.



3.0 Installing the Driver in an New System 
................................................

If you are adding the LSI Logic adapter at the time you are creating
your X86 Solaris system disk, you must build an Install Time Update (ITU) 
diskette. 

3.1 ITU Driver Diskette Creation from Solaris
..............................................

Follow these steps to create the ITMPT driver diskette:

1. Insert a 3.5" diskette into the floppy diskette drive.

2. At the shell prompt, type:

    #volcheck -v

    #dd if=/<path>/itmpt-x86-XXX-itu.dd of=/vol/dev/aliases/floppy0 bs=32768

    #eject floppy

   <path> is the path name where the file itmpt-x86-XXX-itu.dd is
   located. The "dd" command will copy the image to the floppy
   diskette thus creating the ITMPT supplemental driver diskette.

3.  Label this diskette "ITMPT Driver Diskette."


3.2 ITU Driver Diskette Creation from DOS or Windows
.....................................................

Use a utility that will copy the raw diskette image onto a 1.44 Mbytes
floppy diskette.

FDIMAGE.EXE, which is a public domain utility, is included in the zip file.

FDIMAGE - Write disk image to floppy disk
Version 1.5   Copyright (c) 1996-7 Robert Nordier

Usage: fdimage [-dqsv] [-f size] [-r count] file drive

  -d         Debug mode
  -f size    Specify the floppy disk format by capacity, eg:
             160K, 180K, 320K, 360K, 720K, 1.2M, 1.44M, 2.88M
  -q         Quick mode: don't format the disk
  -r count   Retry count for format/write operations
  -s         Single-sector I/O
  -v         Verbose


This example assumes you have a formatted, 1.44MB diskette inserted in your
"a:" floppy drive.  All of the files found in the zip file should
be present in the current working directory.

>fdimage -qv itmpt-x86-XXX-itu.dd a:

This command should work when running MS-DOS, Windows 9x, Windows ME,
Windows NT, Windows 2000, or Windows XP. If you are running anti-virus
software, it is recommended that you temporarily disable it when running
fdimage. Otherwise fdimage may not be able to get exclusive access to your
floppy drive which it requires to write the image to a diskette.



Legal and Copyright Notices for FDIMAGE.EXE
===========================================

Copyright (c) 1996-7 Robert Nordier
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

