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

From: Santosh Y
Date: Thu Feb 09 2012 - 02:54:09 EST


On Thu, Feb 9, 2012 at 10:04 AM, Namjae Jeon <linkinjeon@xxxxxxxxx> wrote:
> 2012/2/6 Santosh Y <santoshsy@xxxxxxxxx>:
>> 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
>>>>>
>>>>> --
>>>>> 1.7.5.4
>>>> 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.
> Hi. Santosh.
> If possible, I hope that you share performance to us when you post new
> patch next time.
> And Personally I am expecting good random I/O speed on UFS.
> Thanks.

Hi Namjae,
As soon as the hardware is available, we'll share the performance results.

>>
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>> Please read the FAQ at  http://www.tux.org/lkml/
>>
>> --
>> ~Santosh



--
~Santosh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/