mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Santosh Y <santoshsy@gmail.com>
To: James.Bottomley@hansenpartnership.com
Cc: linux-scsi@vger.kernel.org, patches@linaro.org,
	linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	arnd.bergmann@linaro.org, saugata.das@linaro.org,
	dsaxena@linaro.org, stephen.doel@linaro.org, venkat@linaro.org,
	ilho215.lee@samsung.com, nala.la@samsung.com,
	girish.shivananjappa@linaro.org, vishak.g@samsung.com,
	k.rajesh@samsung.com, yejin.moon@samsung.com,
	sreekumar.c@samsung.com, vinholikatti@gmail.com,
	linkinjeon@gmail.com, michaelc@cs.wisc.edu,
	Santosh Yaraganavi <santoshsy@gmail.com>
Subject: [PATCH v3 5/5] Documentation: UFS Host Controller Driver
Date: Wed, 29 Feb 2012 12:11:54 +0530	[thread overview]
Message-ID: <1330497714-26504-6-git-send-email-santoshsy@gmail.com> (raw)
In-Reply-To: <1330497714-26504-1-git-send-email-santoshsy@gmail.com>

From: Santosh Yaraganavi <santoshsy@gmail.com>

The document provides Universal Flash Storage(UFS) and
UFS host controller driver overview.

Signed-off-by: Santosh Yaraganavi <santoshsy@gmail.com>
Reviewed-by: Vishak G <vishak.g@samsung.com>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
---
 Documentation/scsi/00-INDEX |    2 +
 Documentation/scsi/ufs.txt  |  133 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 135 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/scsi/ufs.txt

diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX
index b48ded5..b7dd650 100644
--- a/Documentation/scsi/00-INDEX
+++ b/Documentation/scsi/00-INDEX
@@ -94,3 +94,5 @@ sym53c8xx_2.txt
 	- info on second generation driver for sym53c8xx based adapters
 tmscsim.txt
 	- info on driver for AM53c974 based adapters
+ufs.txt
+	- info on Universal Flash Storage(UFS) and UFS host controller driver.
diff --git a/Documentation/scsi/ufs.txt b/Documentation/scsi/ufs.txt
new file mode 100644
index 0000000..41a6164
--- /dev/null
+++ b/Documentation/scsi/ufs.txt
@@ -0,0 +1,133 @@
+                       Universal Flash Storage
+                       =======================
+
+
+Contents
+--------
+
+1. Overview
+2. UFS Architecture Overview
+  2.1 Application Layer
+  2.2 UFS Transport Protocol(UTP) layer
+  2.3 UFS Interconnect(UIC) Layer
+3. UFSHCD Overview
+  3.1 UFS controller initialization
+  3.2 UTP Transfer requests
+  3.3 UFS error handling
+  3.4 SCSI Error handling
+
+
+1. Overview
+-----------
+
+Universal Flash Storage(UFS) is a storage specification for flash devices.
+It is aimed to provide a universal storage interface for both
+embedded and removable flash memory based storage in mobile
+devices such as smart phones and tablet computers. The specification
+is defined by JEDEC Solid State Technology Association. UFS is based
+on MIPI M-PHY physical layer standard. UFS uses MIPI M-PHY as the
+physical layer and MIPI Unipro as the link layer.
+
+The main goals of UFS is to provide,
+ * Optimized performance:
+   For UFS version 1.0 and 1.1 the target performance is as follows,
+   Support for Gear1 is mandatory (rate A: 1248Mbps, rate B: 1457.6Mbps)
+   Support for Gear2 is optional (rate A: 2496Mbps, rate B: 2915.2Mbps)
+   Future version of the standard,
+   Gear3 (rate A: 4992Mbps, rate B: 5830.4Mbps)
+ * Low power consumption
+ * High random IOPs and low latency
+
+
+2. UFS Architecture Overview
+----------------------------
+
+UFS has a layered communication architecture which is based on SCSI
+SAM-5 architectural model.
+
+UFS communication architecture consists of following layers,
+
+2.1 Application Layer
+
+  The Application layer is composed of UFS command set layer(UCS),
+  Task Manager and Device manager. The UFS interface is designed to be
+  protocol agnostic, however SCSI has been selected as a baseline
+  protocol for versions 1.0 and 1.1 of UFS protocol  layer.
+  UFS supports subset of SCSI commands defined by SPC-4 and SBC-3.
+  * UCS: It handles SCSI commands supported by UFS specification.
+  * Task manager: It handles task management functions defined by the
+     UFS which are meant for command queue control.
+  * Device manager: It handles device level operations and device
+     configuration operations. Device level operations mainly involve
+     device power management operations and commands to Interconnect
+     layers. Device level configurations involve handling of query
+     requests which are used to modify and retrieve configuration
+     information of the device.
+
+2.2 UFS Transport Protocol(UTP) layer
+
+  UTP layer provides services for
+  the higher layers through Service Access Points. UTP defines 3
+  service access points for higher layers.
+  * UDM_SAP: Device manager service access point is exposed to device
+    manager for device level operations. These device level operations
+    are done through query requests.
+  * UTP_CMD_SAP: Command service access point is exposed to UFS command
+    set layer(UCS) to transport commands.
+  * UTP_TM_SAP: Task management service access point is exposed to task
+    manager to transport task management functions.
+  UTP transports messages through UFS protocol information unit(UPIU).
+
+2.3 UFS Interconnect(UIC) Layer
+
+  UIC is the lowest layer of UFS layered architecture. It handles
+  connection between UFS host and UFS device. UIC consists of
+  MIPI UniPro and MIPI M-PHY. UIC provides 2 service access points
+  to upper layer,
+  * UIC_SAP: To transport UPIU between UFS host and UFS device.
+  * UIO_SAP: To issue commands to Unipro layers.
+
+
+3. UFSHCD Overview
+------------------
+
+The UFS host controller driver is based on Linux SCSI Framework.
+UFSHCD is a low level device driver which acts as an interface between
+SCSI Midlayer and PCIe based UFS host controllers.
+
+The current UFSHCD implementation supports following functionality,
+
+3.1 UFS controller initialization
+
+  The initialization module brings UFS host controller to active state
+  and prepares the controller to transfer commands/response between
+  UFSHCD and UFS device.
+
+3.2 UTP Transfer requests
+
+  Transfer request handling module of UFSHCD receives SCSI commands
+  from SCSI Midlayer, forms UPIUs and issues the UPIUs to UFS Host
+  controller. Also, the module decodes, responses received from UFS
+  host controller in the form of UPIUs and intimates the SCSI Midlayer
+  of the status of the command.
+
+3.3 UFS error handling
+
+  Error handling module handles Host controller fatal errors,
+  Device fatal errors and UIC interconnect layer related errors.
+
+3.4 SCSI Error handling
+
+  This is done through UFSHCD SCSI error handling routines registered
+  with SCSI Midlayer. Examples of some of the error handling commands
+  issues by SCSI Midlayer are Abort task, Lun reset and host reset.
+  UFSHCD Routines to perform these tasks are registered with
+  SCSI Midlayer through .eh_abort_handler, .eh_device_reset_handler and
+  .eh_host_reset_handler.
+
+In this version of UFSHCD Query requests and power management
+functionality are not implemented.
+
+UFS Specifications can be found at,
+UFS - http://www.jedec.org/sites/default/files/docs/JESD220.pdf
+UFSHCI - http://www.jedec.org/sites/default/files/docs/JESD223.pdf
-- 
1.7.5.4


  parent reply	other threads:[~2012-02-29  6:44 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29  6:41 [PATCH v3 0/5] [SCSI] ufshcd: " Santosh Y
2012-02-29  6:41 ` [PATCH v3 1/5] [SCSI] ufshcd: UFS Host controller driver Santosh Y
2012-03-26  4:32   ` KOBAYASHI Yoshitake
2012-03-27  4:01     ` Santosh Y
2012-02-29  6:41 ` [PATCH v3 2/5] [SCSI] ufshcd: UFS UTP Transfer requests handling Santosh Y
2012-03-26  4:34   ` KOBAYASHI Yoshitake
2012-03-27  4:03     ` Santosh Y
2012-03-27  5:52     ` Santosh Y
2012-03-29  1:40       ` KOBAYASHI Yoshitake
2012-04-10 11:08     ` Venkatraman S
2012-02-29  6:41 ` [PATCH v3 3/5] [SCSI] ufshcd: UFSHCI error handling Santosh Y
2012-02-29  6:41 ` [PATCH v3 4/5] [SCSI] ufshcd: SCSI " Santosh Y
2012-02-29  6:41 ` Santosh Y [this message]
2012-03-22 13:51 ` [PATCH v3 0/5] [SCSI] ufshcd: UFS Host Controller Driver James Bottomley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1330497714-26504-6-git-send-email-santoshsy@gmail.com \
    --to=santoshsy@gmail.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=arnd.bergmann@linaro.org \
    --cc=dsaxena@linaro.org \
    --cc=girish.shivananjappa@linaro.org \
    --cc=ilho215.lee@samsung.com \
    --cc=k.rajesh@samsung.com \
    --cc=linkinjeon@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=nala.la@samsung.com \
    --cc=patches@linaro.org \
    --cc=saugata.das@linaro.org \
    --cc=sreekumar.c@samsung.com \
    --cc=stephen.doel@linaro.org \
    --cc=venkat@linaro.org \
    --cc=vinholikatti@gmail.com \
    --cc=vishak.g@samsung.com \
    --cc=yejin.moon@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®