blk2scsa One Pager (DRAFT)
en

blk2scsa One Pager (DRAFT)

NOTE: The sdcard-drivers project is no longer active on this website so information here may be out of date. Current Oracle Solaris 11 product documentation can be found here. Information about downloading Oracle Solaris 11 can be found here.

Template Version: @(#)onepager.txt 1.34 07/08/27 SMI

Copyright 2007 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name:
   	Generic Block Device to SCSA Translator

   1.2. Name of Document Author/Supplier:
   	Garrett D'Amore

   1.3. Date of This Document:
	9-Nov-2007

   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 Roach
	1.4.4. The name of your business unit:
		Software

   1.5. Email Aliases:
    	1.5.1. Responsible Manager: neal.pollack@sun.com
    	1.5.2. Responsible Engineer: garrett.damore@sun.com
    	1.5.3. Marketing Manager:
	1.5.4. Interest List: driver-discuss@opensolaris.org

2. Project Summary
   2.1. Project Description:
   	A project to allow simple block devices to present themselves
	as SCSI devices, allowing them benefit from sd(7d).

   2.2. Risks and Assumptions:
   	The sd(7d) driver currently supports our SCSI-2 emulation.  Significant
	changes to sd(7d) can have an adverse impact on this project.

	Block devices that make use of this layer must conform to a certain
	set of core assumptions.

3. Business Summary
   3.1. Problem Area:
   	Writing device drivers for block devices, especially ones that are
	similiar to disks, is fairly complex, as can be seen by the size
	and complexity of the sd(7d) driver.

	Further, it turns out that various pieces of userland code, such
	as that related to automatic volume mounting and umounting, is
	reliant on sd(7d), or would require additional custom plugin code
	to be written (libsmedia).

	Additionally, some devices are accessible via multiple busses (USB,
	IEEE1394, and other busses such as SDcard.  It is desirable that these
	devices appear the same with respect to labeling and VTOC information,
	regardless of how they are physically attached to the system.

	It is desirable to allow such devices to make use of the same
	sd(7d) driver and avoid duplication of effort, and to assure
	consistency no matter how the media is made available to the
	host system.

   3.2. Market/Requester:
   	This is needed for the SDcard project, which will provide support
	for using SDcard and MMC media via SDcard standard slots, commonly
	found on laptops.

   3.3. Business Justification:
   	Fundamentally, this project aims to reduce code duplication and
	levarage the large body of effort that has already been invested
	in the sd(7d) driver.

	This will allow us to accelerate delivery of projects for alternate
	media such as SDcard, MMC, or MemStick.  These media are widely
	popular in the growing mobile sector.

   3.4. Competitive Analysis:
   	This project is only relevant to Solaris.  Other operating systems
	have their own ways of handling this, some better, some worse, than
	ours.

   3.5. Opportunity Window/Exposure:
   	This is needed now to facilitate delivery of SDcard driver software.

   3.6. How will you know when you are done?:
   	* SDcard driver operates with sd(7d)

	* Media in SDcard is mountable with this layer, and portable
	  between USB readers (which work today) and SD host controller
	  readers.

	* SDcard media will react properly to hot insertion and removal,
	  with automatic volume mounting and unmounting handling done
	  by the userland components that rely on sd(7d).

4. Technical Description:
   4.1. Details:
   	This case creates a new misc module (blk2scsa) in the kernel.  Block
	oriented devices will register with this misc module using a very
	simple operations vector.

	The blk2scsa layer will register as a SCSI HBA on behalf of the block
	driver, and emulate one or more SCSI-2 block device targets (of
	SCSI type DTYPE_DIRECT) on its bbus, using the operations vector
	supplied by the block driver.

   4.2. Bug/RFE Number(s):
   	TBD

   4.3. In Scope:
   	Block device translation using SCSI-2 commands.  Simple direct access
	block-oriented devices (e.g. NVRAM flash-based devices).

   4.4. Out of Scope:
   	Optical media (CDROMs).  Devices that need to manage on-device defect
	lists as part of their formatting.  Devices that require specific
	control commands from userland.  Non-direct access type devices.

   4.5. Interfaces:
   	* blk2scsa operations vector
	* blk2scsa device registration
	* sd(7d) device (imported)
	* scsi_pkt2bp() (imported)
	* SCSI-2

   4.6. Doc Impact:
   	* man pages: blk2scsa(7d)

	Furthermore, if the APIs in the project are to be made available to
	third parties, then additional documentation would be required.  It
	is not clear at this time whether an interface stability level higher
	than Consolidation Private will be sought.  If it is, then we would
	need the following:

	* man pages: blk2scsa(9f), blk2scsa(9e)
	* Writing Device Drivers: chapter on blk2scsa API would be helpful

   4.7. Admin/Config Impact:
   	None.  Devices will appear as ordinary SCSI disk devices.

   4.8. HA Impact:
	N/A

   4.9. I18N/L10N Impact:
   	N/A

   4.10. Packaging & Delivery:
	SUNWcsr will be modified.  The blk2scsa driver will need to be
	delivered as part of the mini-root if devices using this translation
	layer are going to be able to be used to hose the root filesystem.

   4.11. Security Impact:
   	N/A

   4.12. Dependencies:
   	scsi_pkt2bp() is not documented anywhere, but this project requires
	the ability to use it.   	

5. Reference Documents:
   	SCSI-2 (ANSI X3.131-1994)

6. Resources and Schedule:
   6.1. Projected Availability:
	Fall 2007

   6.2. Cost of Effort:
   	Development: 1 engineer-week
	Test Development: 1 engineer-week
	Docs: TBD

   6.3. Cost of Capital Resources:
	No additional resources needed.

   6.4. Product Approval Committee requested information:
	6.4.1. Consolidation or Component Name: ON
	6.4.3. Type of CPT Review and Approval expected:
		Standard
	6.4.4. Project Boundary Conditions:
		TBD
	6.4.5. Is this a necessary project for OEM agreements:
		This project is a prequisite for the SDcard Stack
		project, which is necessary to meet OEM agreements
		with laptop manufacturers.
	6.4.6. Notes:
		// See dependencies section above.
	6.4.7. Target RTI Date/Release:
		snv_80
	6.4.8. Target Code Design Review Date:
		Nov 2007
	6.4.9. Update approval addition:
	        At this time, only Nevada is targetted.  However, nothing
		in the project would be difficult to backport to Solaris 10
		if market conditions justify it.

   6.5. ARC review type:
		Standard
   6.6. ARC Exposure:
		open
       6.6.1. Rationale:

7. Prototype Availability:
   7.1. Prototype Availability:
   	A fully-functional prototype is expected to be available
	by mid-Nov 2007.

   7.2. Prototype Cost:
	// Subset of Cost of Effort to leave "prototype" stage.

Tags:
Created by admin on 2009/10/26 12:17
Last modified by admin on 2009/10/26 12:17

Collectives


XWiki Enterprise 2.7.1.34853 - Documentation