Am Tage des Herren Sun, 15 Jun 2025 09:28:38 +0000 (UTC)
> "Bjoern A. Zeeb" <b...@freebsd.org> schrieb:
> 
> > On Sun, 15 Jun 2025, A FreeBSD User wrote:
> > 
> > > Am Tage des Herren Sun, 15 Jun 2025 06:09:39 GMT
> > > Warner Losh <i...@freebsd.org> schrieb:
> > >  
> > >> The branch main has been updated by imp:
> > >>
> > >> URL: 
> > >> https://cgit.FreeBSD.org/src/commit/?id=1349a733cf2828e0040cabef89eeadc3ff00c40b
> > >>
> > >> commit 1349a733cf2828e0040cabef89eeadc3ff00c40b
> > >> Author:     Jaeyoon Choi <j_yoon.c...@samsung.com>
> > >> AuthorDate: 2025-06-13 18:33:01 +0000
> > >> Commit:     Warner Losh <i...@freebsd.org>
> > >> CommitDate: 2025-06-15 06:08:56 +0000
> > >>
> > >>     ufshci: Introduce the ufshci(4) driver
> > >>
> > >>     This commit adds a storage driver that supports the Universal Flash
> > >>     Storage Host Controller Interface (UFSHCI) on FreeBSD.
> > >>
> > >>     Universal Flash Storage (UFS) is a flash-based mobile storage device
> > >>     that replaces eMMC, aiming for high performance with low power. The 
> > >> UFS
> > >>     Host Controller Interface (UFSHCI) is the host side controller and
> > >>     connects UFS device to a system bus, such as PCIe.
> > >>
> > >>     The code targets the latest standards:
> > >>     - UFS 4.1: 
> > >> https://protect2.fireeye.com/v1/url?k=cb832e5e-aafec626-cb82a511-74fe485fffb1-e312001ade8edb13&q=1&e=a7ecea84-b060-48ec-b5d3-c775104b7c66&u=https%3A%2F%2Fwww.jedec.org%2Fstandards-documents%2Fdocs%2Fjesd220g
> > >>     - UFSHCI 4.1: 
> > >> https://protect2.fireeye.com/v1/url?k=b4fdaf27-d580475f-b4fc2468-74fe485fffb1-dfdf98856594733e&q=1&e=a7ecea84-b060-48ec-b5d3-c775104b7c66&u=https%3A%2F%2Fwww.jedec.org%2Fstandards-documents%2Fdocs%2Fjesd223f
> > >>
> > >>     The ufshci(4) driver implements controller/device initialization,
> > >>     interrupt, single-doorbell(SDB) queue based IO requests. Support for
> > >>     multi-queue (MCQ) IO requests is planned for a later commit.
> > >>
> > >>     Implemented features:
> > >>     - PCIe bus support
> > >>     - legacy(INTx) Interrupt Handling
> > >>     - UIC command support
> > >>     - UTP Transfer Request (UTR) support
> > >>     - UTP Task Management Request (UTMR) support
> > >>     - single doorbell queue (SDB) with multiple queue depth
> > >>     - SCSI command set support
> > >>     - sysctl
> > >>
> > >>     Work in progress:
> > >>     - multi-Circular Queue (per-CPU IO queues)
> > >>     - MSI-X interrupt Support
> > >>     - write booster
> > >>     - write Protect
> > >>     - Host Performance Booster (HPB)
> > >>     - interrupt aggregation
> > >>     - ARM based system bus support
> > >>     - ufs-utils port
> > >>
> > >>     Tests were performed on QEMU and an Intel-based laptop.
> > >>     Since QEMU has an emulated UFS device, I tested on QEMU.
> > >>
> > >>     How to test on QEMU:
> > >>     1. Run QEMU
> > >>         $ qemu-system-x86_64 ... -device ufs -drive
> > >> file=blk1g.bin,format=raw,if=none,id=luimg -device 
> > >> ufs-lu,drive=luimg,lun=0 2.
> > >> Loading/unloading the ufshci module on QEMU $ kldload
> > >> /usr/obj/usr/src/amd64.amd64/sys/modules/ufshci/ufshci.ko $ kldunload 
> > >> ufshci
> > >>
> > >>     Testing on real hardware:
> > >>     - Samsung Galaxy Book S (Intel Lakefield) with UFS 3.0
> > >>     - Lenovo duet 3 11ian8 (Intel N100) with UFS 2.1
> > >>
> > >>     Sponsored by:           Samsung Electronics
> > >>     Reviewed by:            imp
> > >>     Differential Revision:  https://reviews.freebsd.org/D50370
> > >> ---
> > >>  sbin/camcontrol/camcontrol.c      |  13 +  
> > >
> > > It seems changes to sources breaks buildkernel (at least for me) on 
> > > customized kernel
> > > config:
> > >
> > > [...]
> > > --- camcontrol.pieo ---
> > > /usr/src/sbin/camcontrol/camcontrol.c:5407:23: error: use of undeclared 
> > > identifier
> > > 'CTS_UFSHCI_VALID_MODE' --- all_subdir_bin ---
> > > --- all_subdir_bin/sleep ---  
> > > ===> bin/sleep (all)  
> > > --- all_subdir_sbin ---
> > > 5407 |                 if (ufshci->valid & CTS_UFSHCI_VALID_MODE) {
> > >      |                                     ^
> > > [...]
> > >
> > > Kind regards,  
> > 
> > 
> > I am running a test build just to be sure but I think this should do:
> > 
> > commit 78f12afc38eabea82fd247c157d340e289dceeb8
> > Author:     Bjoern A. Zeeb <b...@freebsd.org>
> > AuthorDate: Sun Jun 15 09:25:56 2025 +0000
> > Commit:     Bjoern A. Zeeb <b...@freebsd.org>
> > CommitDate: Sun Jun 15 09:25:56 2025 +0000
> > 
> >      ufshci: camcontrol: use correct define to fix the build
> > 
> >      Fixes:  1349a733cf28
> > 
> > diff --git sbin/camcontrol/camcontrol.c sbin/camcontrol/camcontrol.c
> > index 19684c044ef5..15a5d42a2ba5 100644
> > --- sbin/camcontrol/camcontrol.c
> > +++ sbin/camcontrol/camcontrol.c
> > @@ -5404,7 +5404,7 @@ cts_print(struct cam_device *device, struct 
> > ccb_trans_settings *cts)
> >                  struct ccb_trans_settings_ufshci *ufshci =
> >                      &cts->xport_specific.ufshci;
> > 
> > -               if (ufshci->valid & CTS_UFSHCI_VALID_MODE) {
> > +               if (ufshci->valid & CTS_UFSHCI_VALID_LINK) {
> >                          fprintf(stdout, "%sHigh Speed Gear: %d (%d max)\n",
> >                                  pathstr, ufshci->hs_gear, 
> > ufshci->max_hs_gear);
> >                          fprintf(stdout, "%sUnipro TX lanes: %d (%d 
> > max)\n", pathstr,
> > 
> > 
> > 
> > 
> 
> Thank you very much, seems to work, at least, for me.
> 
> Kind regards,
> oh
> 

Oh, that was my mistake, thanks for fixing it!

Jaeyoon

Attachment: No File Name 0
Description: Binary data

Reply via email to