Re: [PATCH 0/4] [SCSI] ufshcd: UFS Host Controller Driver

From: Santosh Y
Date: Mon Feb 06 2012 - 02:18:18 EST

On Mon, Feb 6, 2012 at 4:15 AM, Namjae Jeon <linkinjeon@xxxxxxxxx> wrote:
> 2012/2/5 Namjae Jeon <linkinjeon@xxxxxxxxx>:
>> 2012/2/2 Vinayak Holikatti <vinholikatti@xxxxxxxxx>:
>>> From: Santosh Yaraganavi <santoshsy@xxxxxxxxx>
>>> UFS is designed to be the most advanced specification for
>>> both embedded and removable flash memory-based storage in mobile devices
>>> such as smart phones and tablet computers.  The UFS standard represents
>>> an evolutionary progression of JEDEC standards in this field, and has been
>>> specifically tailored for mobile applications and computing systems requiring
>>> high performance and low power consumption.  The initial data throughput for
>>> UFS will be ~300 megabytes per second (MB/s), and the standard also supports
>>> command queuing features to raise random read/write speeds.
>>> To achieve the highest performance and most power efficient data
>>> transport, UFS uses the leading industry interface standards to form its
>>> Interconnect Layer: MIPI® Alliance’s M-PHY and UniProSM  specifications.
>>> UniPro is a comprehensive specification meant to act as a universal
>>> chip-to-chip protocol, providing a common tunnel for other protocols.
>>> The M-PHY interface is designed as the primary physical interface (PHY layer)
>>> for the UniPro specification, and is a high speed serial interface targeting
>>> up to 2.9 gigabits per second (Gbps) per lane with up-scalability to 5.8Gbps
>>> per lane.
>>> MIPI’s M-PHY and UniPro specifications are optimized for mobile applications,
>>> and are designed from the ground up for efficient power management in mobile
>>> devices, including enabling efficient transitions between the active and power
>>> save modes. Combined with a low active power level and a near-zero idle power
>>> level, UFS offers the promise for significant reductions in device power
>>> consumption.
>>> The UFS standard adopts the well-known SCSI Architecture Model and command
>>> protocols supporting multiple commands with command queuing features and
>>> enabling a multi-thread programming paradigm. This differs from conventional
>>> flash-based memory cards and embedded flash solutions which process one
>>> command at a time, limiting random read/write access performance.
>>> In addition, a forthcoming complementary UFS Host Controller Interface (HCI)
>>> specification will allow system designers greater flexibility by simplifying
>>> the involvement of the host processor in the operation of the flash storage
>>> subsystem. The UFS HCI specification and the adoption of SCSI will provide
>>> a well-known software programming model and enable wider market adoption.
>>> This patchset contains PCIe based UFS host controller driver which complies
>>> to UFSHCI 1.0 and 1.1. The driver is based on Linux SCSI framework.
>>> The driver is tested with UFS Host controller(FPGA) and UFS device(FPGA).
>>> This patch set is successfully applied on kernel version 3.3-rc2.
>>> Santosh Yaraganavi (4):
>>>  [SCSI] ufshcd: UFS Host controller driver
>>>  [SCSI] ufshcd: UFS UTP Transfer requests handling
>>>  [SCSI] ufshcd: UFSHCI error handling
>>>  [SCSI] ufshcd: SCSI error handling
>>>  drivers/scsi/Kconfig      |    1 +
>>>  drivers/scsi/Makefile     |    1 +
>>>  drivers/scsi/ufs/Kconfig  |   49 ++
>>>  drivers/scsi/ufs/Makefile |    2 +
>>>  drivers/scsi/ufs/ufs.h    |  203 +++++
>>>  drivers/scsi/ufs/ufshcd.c | 1954 +++++++++++++++++++++++++++++++++++++++++++++
>>>  drivers/scsi/ufs/ufshci.h |  360 +++++++++
>>>  7 files changed, 2570 insertions(+), 0 deletions(-)
>>>  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
>>> --
>> Hi.
>> I have been waiting for ufs contribution.
>> Unfortunately I don't have real target supported ufs(maybe only you
>> have it). I can not debug and run this code, So just review only code
>> with specification.
> Hi. Santosh.
> Would you share performance measurement result (read/write seq,ran) ?
> Thanks.

Hi Namjae,

Currently UFS Driver is being tested on on UFS Controller FPGA and UFS
Device FPGA. So currently the main concentration is on functionality.
Performance on FPGA will not be the correct measurement.

>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at
>>> Please read the FAQ at

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at