I am sponsoring this fast tack for Javen Wu and Dolpher Du. It is to
provide a mpt_sas(7D) driver.  Timer is set to 04/26, requested release
binding is micro.

-Cecilia




--------------------------------------------------------------------
Name:        Driver for LSI MPT2.0 compliant SAS 2.0 controller
Submitters:  Javen Wu, Dolpher Du

1) Background
-------------

Over the past decade the storage industry has moved from traditional 
parallel
SCSI based storage systems to more scalable serial storage connections. With
the emergence of 3 and 6 Gigabit SAS, Sun and other vendors are revamping
software storage stacks to support the new features.

LSI's Fusion MPT Message Passing Technology forms the basis for a very 
popular
family of Serial Attached SCSI HBAs. Sun makes extensive use of MPT for
both PCI-E and PCI-X option cards as well as for motherboard hosted storage.
The mpt(7D) driver was based on LSI's MPT v1.5, supporting both SAS and
Parallel SCSI devices.

LSI's support of the SAS 2.0 specification uses a new driver/firmware 
interface.
MPT(rev2) is now under development. In order for Sun to implement those 
changes
we need to provide a new HBA driver which does not have the legacy 
requirement
of mpt(7D). The proposed new driver mpt_sas(7D) will drive LSI MPT2 
compliant
SAS controllers which include LSI SAS200x/2108 series.

2) Proposal Summary
-------------------

The following features are supported by the proposed mpt_sas(7D) driver:

2.1) mpt_sas(7D) is DDI compliant and SCSA compliant as much as applicable.

2.2) SAS initiator ports registration.

2.3) SAS/SATA/SMP target device dynamic enumeration / reconfiguration.

2.4) Target device representation conforms to FWARC 2008/013.

2.5) SAS/SATA devices multipathing support.

2.6) Power management, FMA and fast reboot support.

2.7) 3rd party ioctl support for management and firmware upgrade.


3) Interface Table
-------------------

|----------------------------------------------------------|
| Interface Name   |  Classification  | Comments           |
|------------------|------------------+--------------------|
| mpt_sas(7D)      |  Committed       | Driver name        |
|                  |                  |                    | 

| mpt_sas.conf     |  Committed       | Configuration file |
|                  |                  |                    |
| SUNWmptsas       |  Committed       | Package name       |
|                  |                  |                    |
|----------------------------------------------------------|

4) Proposal Details
--------------------

4.1) mpt_sas(7D) is as a SCSI/SAS HBA driver across SPARC and x86 platforms
      which supports stock SCSA interfaces.

4.2) The proposed driver supports multiple initiator ports. Exporting 
the real
      SCSI I-T nexus, once mpt_sas(7D) detects initiator ports, it would 
register
      the initiator ports. These are represented as individual child nexus
      devinfo nodes in the Solaris device tree. All attached target 
devices would
      be children of a specific initiator port rather than PCI function. 
The IR
      (Integrated RAID) volumes are children of a special virtual 
initiator port
      nexus.

4.3) The driver class of proposed driver is "scsi-self-identifying" which
      means that the driver is able to discover and enumerate target devices
      automatically rather than relying entries in the .conf file of the 
target
      driver. The proposed driver is able to discover and enumerate 
SAS/SATA/SMP
      /IR target devices.

4.4) The propsed driver represents attached target devices in standard 
way which
      would be compatible with future SCSA v3 naming rules.

4.4.1) The node names of the SAS/SATA target devices are generic node names
        and based on scsi device type (dtype).

4.4.2) The unit-address of SAS/SATA target devices are the form of "target
        identifier, lun". The detail specification of target identifier
        please refer to FWARC 2008/013. The rule is generally of the form:

4.4.2.1) The target identifier of SAS target device is SAS address.

4.4.2.2) The target identifier of SATA target devices with ATA "Device Name"
          (108-111 words of ATA IDENTIFY) is the ATA "Device Name".

4.4.2.3) The target identifier of directly attached SATA device without ATA
          "Device Name" is attached PHY identifier.

4.4.2.4) The target identifier of indirectly attached SATA device 
without ATA
          "Device Name" is STP address which is assigned by expander.

4.4.3) The node name of SMP target is "smp".

4.4.4) The unit address of SMP target is SAS address.

4.4.5) The node name of IR volume is "disk".

4.4.6) The unit address of IR volume is form of "w$WWID,0". WWID of IR 
volume
        is World Wide Identifier of the IR volume by replacing the top 
nibble
        to "3".

4.5) The proposed driver supports Solaris IO Multipathing(MPxIO) for 
SAS/SATA
      devices and MPxIO is turned on by default.
      Solaris I/O multipathing is enabled or disabled on SAS/SATA 
devices which
      associates to mpt_sas(7D) with the mpxio-disable property. Specifying
      mpxio-disable="no" activates  I/O multipathing, while 
mpxio-disable="yes"
      disables the feature. I/O multipathing feature of mpt_sas(7D) may be
      enabled or disabled on a per HBA  basis.

      /kernel/drv/mpt_sas.conf will contain commentary about property
      'mpxio-disable', system administrators will need to modify the 
property,
      or use the stmsboot(1M) utility to disable or enable MPxIO.

      The default setting for 'mpxio-disable' (When missing the entry), 
will be
      "no". This means that the SAS/SATA MPxIO feature will be enabled 
by default
      unless specifically disabled by the system administrator.

4.6) The proposed driver supports Power management, FMA and fast reboot as
      required.

4.7) The proposed driver supports some Project Private ioctl interfaces. 
These
      enable the use of a vendor utility with the mpt_sas(7D) driver.

5) Packaging & Delivery:

The mpt_sas(7d) driver will be delivered initially on both x86 and SPARC
architectures, the driver delivery will include:

/kernel/drv/mpt_sas
/kernel/drv/mpt_sas.conf
/kernel/drv/amd64/mpt_sas
/kernel/drv/sparcv9/mpt_sas

The mpt_sas(7d) manpage will be included in SUNWman.

6). Resources and Schedule:

6.1). Product Approval Committee requested information:

6.1.1) Consolidation or Component Name: ON

6.2) ARC review type: Fast Track

6.3) ARC Exposure: open

6) References
-------------

LSI MPI 2.0 revision J
PSARC/2006/703 MPxIO extension for Serial Attached SCSI (SAS) on mpt(7D)
PSARC/2007/595  Serial Attached SCSI (SAS) Management Protocol (SMP) support
              for Solaris
PSARC/2008/337 scsi-self-identifying
PSARC/2002/510 Sun Fire V440 (Chalupa) - Platform support [introduced MPT]
PSARC/2005/097 Solaris support for LSI SAS1064 on Ontario
FWARC/2008/013 SCSI SAS 1275 Binding

CR 6810441 Solaris needs to expose initiator port for multiple-port HBAs
CR 6762621 Add interconnect type for SAS transport.

Reply via email to