lkml.org 
[lkml]   [2012]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v2 0/5] [SCSI] ufshcd: UFS Host Controller Driver
    From
    Hi. Santosh.

    The whole patch-set looks good to me.

    Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>

    2012/2/24 Santosh Y <santoshsy@gmail.com>:
    > From: Santosh Yaraganavi <santoshsy@gmail.com>
    >
    > UFS:
    > Universal Flash Storage 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
    >
    > 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,
    >
    > * Application Layer: It 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.
    >
    > * 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).
    >
    > * UFS Interconnect Layer(UIC): This 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.
    >
    > UFSHCD:
    > 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,
    >  - 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.
    >  - 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.
    >  - UFS error handling: Error handling module handles Host controller
    >   fatal errors, Device fatal errors and UIC interconnect layer related
    >   errors.
    >  - 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.
    >
    > This patchset is successfully applied on 3.3-rc4
    >
    > 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
    >
    > Santosh Yaraganavi (5):
    >  [SCSI] ufshcd: UFS Host controller driver
    >  [SCSI] ufshcd: UFS UTP Transfer requests handling
    >  [SCSI] ufshcd: UFSHCI error handling
    >  [SCSI] ufshcd: SCSI error handling
    >  Documentation: UFS Host Controller Driver
    >
    >  Documentation/scsi/00-INDEX |    2 +
    >  Documentation/scsi/ufs.txt  |   89 ++
    >  drivers/scsi/Kconfig        |    1 +
    >  drivers/scsi/Makefile       |    1 +
    >  drivers/scsi/ufs/Kconfig    |   49 ++
    >  drivers/scsi/ufs/Makefile   |    2 +
    >  drivers/scsi/ufs/ufs.h      |  207 +++++
    >  drivers/scsi/ufs/ufshcd.c   | 1985 +++++++++++++++++++++++++++++++++++++++++++
    >  drivers/scsi/ufs/ufshci.h   |  376 ++++++++
    >  9 files changed, 2712 insertions(+), 0 deletions(-)
    >  create mode 100644 Documentation/scsi/ufs.txt
    >  create mode 100644 drivers/scsi/ufs/Kconfig
    >  create mode 100644 drivers/scsi/ufs/Makefile
    >  create mode 100644 drivers/scsi/ufs/ufs.h
    >  create mode 100644 drivers/scsi/ufs/ufshcd.c
    >  create mode 100644 drivers/scsi/ufs/ufshci.h
    >
    > --
    > 1.7.5.4
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at  http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at  http://www.tux.org/lkml/
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2012-02-25 12:41    [W:0.080 / U:30.500 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site