Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 2025 13:53:46 +0900
From:      Jaeyoon Choi <j_yoon.choi@samsung.com>
To:        "freebsd-hackers@FreeBSD.org" <freebsd-hackers@FreeBSD.org>
Subject:   Universal Flash Storage Driver Proposal
Message-ID:  <20250117045346epcms2p61099ea651d3ca3f00e3134dd00e6a9ac@epcms2p6>
References:  <CGME20250117045346epcms2p61099ea651d3ca3f00e3134dd00e6a9ac@epcms2p6>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

As I mentioned in my previous email to the mailing list last year, I am planning
to start developing a Universal Flash Storage Driver.
- https://lists.freebsd.org/archives/freebsd-hackers/2024-July/003385.html
Before I begin working on the driver, I would like to share my development plan
with you.

Universal Flash Storage (UFS) is a storage device for mobile devices which aims
for high performance and low power consumption.
UFS is currently used in most smartphones and tablets, and I believe there is a
demand for UFS support in FreeBSD.

The Universal Flash Storage Driver is named UFSHCI to avoid confusion with the 
UFS filesystem, and is located in the /sys/dev/ufshci folder.

The driver will be developed based on the UFS 4.1 (JESD220G) and UFSHCI 4.1
(JESD223F) specification documents, which are the latest versions available.
The latest specifications can be found at the following link:
- https://www.jedec.org/standards-documents/focus/flash/universal-flash-storage-ufs

My plan is to first implement a PCIe-based driver and then make it compatible
with various smartphone application processors.
Since UFS uses SCSI commands, we need to use the SCSI I/O path of the CAM.

Please note that there is currently a UFSHCI driver in development for OpenBSD,
but due to its low spec version (UFSHCI 2.1) and lack of compatibility with
FreeBSD, I have decided to start from scratch.

The following platforms will be used for testing:
- QEMU with Emulated UFS device
- Samsung Galaxy Book S (Intel Lakefield + eUFS)
- Lenovo Duet3 11ian8 (Intel N100 + eUFS)

After developing the UFSHCI driver, I will continue to work on additional
features and keep the driver up-to-date with the latest specs.
The approximate development plan is as follows:

- 2025 1H: Implementation of initialization, basic operations, and single
           doorbell-based read/write I/O on Intel CPU-based platforms
- 2025 2H: Implementation of MCQ-based read/write I/O, and implementation of
           additional features such as writebooster

I look forward to receiving your feedback and suggestions.

Best regards,
Jaeyoon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20250117045346epcms2p61099ea651d3ca3f00e3134dd00e6a9ac>