From sac-owner Thu Nov 11 16:37:16 2004
Received: from sunmail3.sfbay.sun.com (sunmail3.SFBay.Sun.COM [129.149.247.180])
	by sac.sfbay.sun.com (8.12.9+Sun/8.12.9) with ESMTP id iAC0bGac005601
	for <one-pager@sac.eng.sun.com>; Thu, 11 Nov 2004 16:37:16 -0800 (PST)
Received: (from noaccess@localhost)
	by sunmail3.sfbay.sun.com (8.11.7p1+Sun/8.11.7/ENSMAIL,v2.2) id iAC0b6H09238
	for one-pager-not-2b-used-directly; Thu, 11 Nov 2004 16:37:06 -0800 (PST)
Received: from westmail2san.west.sun.com (westmail2san.West.Sun.COM [129.153.85.6])
	by sunmail3.sfbay.sun.com (8.11.7p1+Sun/8.11.7/ENSMAIL,v2.2) with ESMTP id iAC0b4M09220;
	Thu, 11 Nov 2004 16:37:04 -0800 (PST)
Received: from azaka2.West.Sun.COM (azaka2.West.Sun.COM [10.1.48.179])
	by westmail2san.west.sun.com (8.12.10+Sun/8.12.10/ENSMAIL,v2.2) with ESMTP id iAC0b4YW004354;
	Thu, 11 Nov 2004 16:37:04 -0800 (PST)
Received: from azaka2 (azaka2 [10.1.48.179])
	by azaka2.West.Sun.COM (8.12.9+Sun/8.12.2) with SMTP id iAC0T9Fh001729;
	Thu, 11 Nov 2004 16:29:09 -0800 (PST)
Message-Id: <200411120029.iAC0T9Fh001729@azaka2.West.Sun.COM>
Date: Thu, 11 Nov 2004 16:29:09 -0800 (PST)
From: Nagendra Singamsetty <prasad@azaka2.west.sun.com>
Reply-To: Nagendra Singamsetty <prasad@azaka2.west.sun.com>
Subject: [/]SATA HBA Framework Support
To: one-pager@sun.com
MIME-Version: 1.0
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: ldIoUlS2d3Nk3SPJUHtcNw==
X-Mailer: dtmail 1.3.0 @(#)CDE Version 1.5_47 SunOS 5.9 sun4u sparc 
Status: RO
Content-Length: 10904


Template Version: @(#)onepager.txt 1.26 03/08/27 SMI

This information is Copyright 2006 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name:

	SATA HBA Framework Support

   1.2. Name of Document Author/Supplier:

	Prasad Singamsetty

   1.3. Date of This Document:

	11/11/04

   1.4. Name of Major Document Customer(s)/Consumer(s):
	1.4.1. The PAC or CPT you expect to review your project:

		Solaris PAC

	1.4.2. The ARC(s) you expect to review your project:

		PSARC

	1.4.3. The Director/VP who is "Sponsoring" this project:

		Andrew K. Roach

	1.4.4. The name of your business unit:

		OPG

   1.5. Email Aliases:
    	1.5.1. Responsible Manager: Neal Pollack
    	1.5.2. Responsible Engineer: Pawel Wojcik
    	1.5.3. Marketing Manager: Chris Baker
	1.5.4. Interest List: sata-dev

2. Project Summary
   2.1. Project Description:

	Serial ATA (SATA) is the next generation storage interconnect,
	designed to replace parallel ATA technology. Serial ATA
	International Organization (SATA-IO) is the group responsible
	for defining the specification and driving the adoption of this
	technology. See the reference [1] for more information on this
	technology.

	The existing support for SATA controllers in Solaris 10
	(starting from build 62) is limited to controllers operating in
	the basic ATA compatibility (legacy) mode.  The objective of
	this project is to provide formal native mode SATA support in
	Solaris enabling extended features such as hotplug, NCQ, etc.

	This project provides framework for writing new SATA controller
	drivers that use current SCSA framework and 'sd' target driver.
	The implementation is based on the SATA specification version
	1.0a. The SATA Framework would implement generic SATA
	operations and interface with SCSA framework.  The SATA
	Framework will take care of SCSI to SATA translations, hotplug
	support, port multiplier support, etc. and the controller
	specific SATA HBA driver will only deal with hw specific
	implementation.

	The project will be implemented in two phases.

	Phase-I will define and implement SATA Framework interfaces as
	a kernel module and implement SATA HBA driver for Marvel
	controller hardware using the new SATA framework. The SATA
	framework interfaces will be committed as Consolidation Private
	interfaces initially.  The functionality provided in this phase
	include support for hot plugging of SATA drives, port multipler
	support (see [2]), etc.  Phase-I components will be tested on
	the new NSG platform, code named ........., that uses Marvel
	SATA controller (88SX5080). The main components delivered in
	the phase-I are:

		* SATA Framework kernel module
		* cfgadm(1m) plug-in for SATA hotplug feature
		* SATA HBA driver for Marvel controller hardware (88SX50??)

	Phase-II of this project will raise the commitment level on the
	refined SATA Framework interfaces to 'Evolving' state. This
	would allow third party driver writers to implement new SATA
	HBA drivers. This phase will also deliver documentation to
	support writing new SATA HBA drivers and a code template for a
	sample driver.

	Note: Additional SATA HBA drivers (e.g: SiliconImage 3124,
	ICH6, Nforce4, etc.) may be developed in parallel to this
	project but with a dependency on phase-I components. Also,
	phase-I components will be tested and delivered only for x86
	platforms.

   2.2. Risks and Assumptions:

	This technology is very quickly adopted into the current/new
	server and desktop platforms and it is necessary to support
	this technology in Solaris to take advantage of the new
	SATA features.

3. Business Summary
   3.1. Problem Area:

	The current support for SATA controllers in Solaris 10
	(starting from build 62) is limited to controllers operating in
	a compatibility mode, emulating generic parallel ATA
	controllers. This uses only the generic ATA interfaces and
	doesn't take advantage of the native SATA features like Native
	Command Queuing, extended DMA, etc.. Some of the issues with
	the current support for SATA controllers include:

	 * Existing pci-ide/ata framework interfaces are not public, thus
	   requiring Sun to invest into development of drivers for any new
	   SATA controllers.
	 * Hotplug feature is not supported in pci-ide/ata framework.
	 * 'cmdk' target driver doesn't have all the functionality as in
	   'sd' driver (e.g: Tag Queuing feature).
	 * Newer SATA controllers may not support ATA compatibility mode
	   (e.g: Marvel) so the current pci-ide/ata framework is not
	   adequate to support them.
	 * The current 'cmdk' devinfo model doesn't cover all SATA hw
	   configurations (e.g: port multiplier, multiple ports for
	   each controller, etc.).
	 * SATA controllers like Marvel (and may be others) identify
	   themselves as scsi controllers.

	Due to the above issues the 'sd' target driver framework is
	more suitable to support new SATA controllers.

   3.2. Market/Requester:

	NSG platforms .... based on Opteron
	processors use the new SATA controllers.  SATA hotplug feature
	is one of the requirements for ....... platform. Also, there
	are several new platforms from OEMs like Intel, Dell, HP, etc.
	that use new SATA controller interfaces which are considered
	Tier 1 systems for Solaris/X86 market.

   3.3. Business Justification:

	This project is important to support new SATA controllers
	for NSG platforms and Tier 1 systems from OEMs which are based
	on Intel or AMD (Opteron) processors.

   3.4. Competitive Analysis:

	Other operating systems like Windows, Linux already have
	support for new SATA controllers with advanced features
	like hotplug.

   3.5. Opportunity Window/Exposure:

	Serial ATA (SATA) and Serial Attached SCSI (SAS) are the new
	generation of higher performance storage technology for desktop
	as well as low end server platforms.

   3.6. How will you know when you are done?:

	New SATA driver for Marvel controller will use the new SATA framework
	so testing that driver and functionality such as hoptlug will verify
	that the framework is complete.

4. Technical Description:

   4.1 SATA driver software architecture

       The proposed SATA driver architecture model consists of the
       following components:

	* SATA HBA Framework (new): Implemented as a kernel module that
          interfaces with the SCSA framework and provides generic SATA
	  interfaces to hw specific SATA HBA driver.
 
	* SATA HBA driver(new): Controller/Hardware specific driver
	  (e.g: Marvel driver) in Solaris written for the interfaces
          defined by the SATA HBA Framework.

	* SCSA Framework: The current SCSA framework in Solaris.

	* SD target driver: The current Solaris 'sd' driver.

	* cfgadm(1m) plugin for SATA (new):  Implements SATA specific
          hotplug operations for cfgadm(1m) framework.

	The Figure below illustrates the basic driver model.

                        ...................
                        |     cfgadm      |
                        ........^..........
                                |
                                v
                        +=================+
                        | SATA Hot Plug   | SATA specific
                        | library         | plug-in
                        +=======^===-===-=+ library
                                |		       Solaris i/o
                                |			  ^
                                |                         |          User
          ======================|=========================|================
                                |		          |          Kernel
				|		  ........v..........
				|		  | SD driver       |
				|		  .......^...........
				|			  |
		      +=========v==========+      ........v..........
		      | SATA HBA Framework |<---->| SCSA Framework  |
		      +=========^==========+      ...................
				|
		      +=========v==========+
		      | SATA HBA Driver    |
		      | (eg. Marvel driver)|
		      +====================+
				|
				V
			( SATA devices: SATA disks, ATAPI CDROMs, ...)

   4.2 Changes to Solaris

       SATA Framework kernel module:  This will be a new common
       platform independent module to support SATA HBA drivers. This
       module exports new SATA Framework interfaces for the SATA HBA
       drivers.

       cfgadm(1m) plugin: Hotplug support for SATA drives differ from
       the existing SCSI Hotplug implementation so a new plug-in will
       be created to support SATA device hotplugging.

       Boot support: It is expected that the new boot subsystem (see
       PSARC/2004/454) will be integrated into Solaris 10 Update 2 and
       any changes needed to support booting from SATA disks that use
       new SATA HBA drivers will be made to the new boot system.  It is
       not considered a requirement (at least for phase-I) to support
       booting for the current boot architecture in Solaris/X86 which
       require real-mode drivers to support booting.

       Marvel driver (new): This project will implement SATA HBA driver
       for Marvel controller (88SX508? & 88SX504?) with support for
       hotplug feature.

       Power Management: Currently Power Management framework is not
       yet supported in Solaris/X86 so no specific PM requirements are
       considered in this project.

       Note: The phase-I deliverables are only tested and delivered for
       Solaris/X86 platform. SPARC platforms requiring this feature may
       enable this from a separate project.

5. Reference Documents:

   [1] Serial ATA 1.0a Specification
	http://http://www.serialata.org/specifications.asp

   [2] Serial ATA II: Port Multipler, Revision 1.1
	http://http://www.serialata.org/specifications.asp

   [3] Marvel SATA Host Controller (88SX50xx) specifications
	http://marvell.com/products/storage/sata/index.jsp

6. Resources and Schedule:
   6.1. Projected Availability:

	Q2CY05

   6.2. Cost of Effort:

	Estimated cost of the project is 2 staff years.

   6.3. Cost of Capital Resources:

	Required hardware and prototype systems from NSG are already
	available to do this project.

   6.4. Product Approval Committee requested information:
   	6.4.1. Consolidation Name:

		ON Consolidation

   	6.4.2. Contributing OpCo/BU/Division Name:

		OPG

	6.4.3. Type of PAC Review and Approval expected:

		FastTrack

        6.4.4. Project Boundary Conditions: TBD
	6.4.5. Is this a necessary project for OEM agreements: N/A
	6.4.6. Notes/Dependencies:

		None.

	6.4.7. Target RTI Date/Release:

		RTI Q2CY05; Solaris 11 (Nevada) and Solaris 10 Update 2

	6.4.8. Target Code Design Review Date:
	6.4.9. Update approval addition:

		N/A

   6.5. ARC review type:

	Standard PSARC review.

7. Prototype Availability:
   7.1. Prototype Availability:

	Q4CY04

   7.2. Prototype Cost:

	Estimated cost is about 6 staff months.




