Date: Tue, 21 Jan 2025 09:26:02 +0900 From: Jaeyoon Choi <j_yoon.choi@samsung.com> To: Warner Losh <imp@bsdimp.com> Cc: "freebsd-hackers@FreeBSD.org" <freebsd-hackers@freebsd.org> Subject: Re: Universal Flash Storage Driver Proposal Message-ID: <20250121002602epcms2p6067990e98b8143ff596d90af0ec54492@epcms2p6> In-Reply-To: <CANCZdfotpi0W8ivsShzvWqgaCQhCOU0enb_RrPn7QdMEvvXpnw@mail.gmail.com> References: <CANCZdfotpi0W8ivsShzvWqgaCQhCOU0enb_RrPn7QdMEvvXpnw@mail.gmail.com> <20250117045346epcms2p61099ea651d3ca3f00e3134dd00e6a9ac@epcms2p6> <CGME20250117045346epcms2p61099ea651d3ca3f00e3134dd00e6a9ac@epcms2p6>
index | next in thread | previous in thread | raw e-mail
Hi Warner Thank you for your reply. I have learned a lot from your presentation and paper. Universal Flash Storage (UFS) only attaches one device to a single controller, meaning there is only one SCSI target. UFS supports a subset of SCSI commands, so the CAM periph driver may need to restrict requests for certain commands. (e.g. UFS does not support the MODE SENSE(6), READ(12)/WRITE(12) commands). So, I think I can just use the existing SCSI transport. Am I right? (I'm referring to sys/dev/usb/storage/umass.c and sys/dev/virtio/scsi/virtio_scsi.c). I would greatly appreciate your advice. Thank you, Jaeyoon > Hi Jaeyoon > > This sounds really cool! > > What layering scheme did you have in mind to allow multiple storage devices > per > controller? Will it be a new kind of SIM in the CAM layer, or will it be > SCSI with > a different transport? Is this a full SCSI implementation, or will the CAM > periph > drivers need to restrict the requests they send down for this? We already > have a > number of subsets that we handle in an ad-hoc way, but maybe we need to be > a little > more organized about it. > > In the past, I've helped with the MMC and NVMe integration intro CAM, so I > have > an interest.... > > Warner > > On Thu, Jan 16, 2025 at 9:54 PM Jaeyoon Choi <j_yoon.choi@samsung.com> > wrote: > > > 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 > > > >home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20250121002602epcms2p6067990e98b8143ff596d90af0ec54492>
