Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jun 2025 13:53:41 +0200
From:      A FreeBSD User <freebsd@walstatt-de.de>
To:        "Bjoern A. Zeeb" <bz@FreeBSD.org>
Cc:        Warner Losh <imp@FreeBSD.org>, Jaeyoon Choi <j_yoon.choi@samsung.com>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: git: 1349a733cf28 - main - ufshci: Introduce the ufshci(4)  driver
Message-ID:  <20250615135324.2fa38fba@thor.sb211.local>
In-Reply-To: <95r7ros1-5296-8orq-sqp5-s7p4935p6039@SerrOFQ.bet>
References:  <202506150609.55F69dn3021406@gitrepo.freebsd.org> <20250615103251.2221265b@thor.sb211.local> <95r7ros1-5296-8orq-sqp5-s7p4935p6039@SerrOFQ.bet>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/OtID_maiV.OnA.ILW47oRd8
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Am Tage des Herren Sun, 15 Jun 2025 09:28:38 +0000 (UTC)
"Bjoern A. Zeeb" <bz@FreeBSD.org> schrieb:

> On Sun, 15 Jun 2025, A FreeBSD User wrote:
>=20
> > Am Tage des Herren Sun, 15 Jun 2025 06:09:39 GMT
> > Warner Losh <imp@FreeBSD.org> schrieb:
> > =20
> >> The branch main has been updated by imp:
> >>
> >> URL: https://cgit.FreeBSD.org/src/commit/?id=3D1349a733cf2828e0040cabe=
f89eeadc3ff00c40b
> >>
> >> commit 1349a733cf2828e0040cabef89eeadc3ff00c40b
> >> Author:     Jaeyoon Choi <j_yoon.choi@samsung.com>
> >> AuthorDate: 2025-06-13 18:33:01 +0000
> >> Commit:     Warner Losh <imp@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 devi=
ce
> >>     that replaces eMMC, aiming for high performance with low power. Th=
e 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://www.jedec.org/standards-documents/docs/jesd220g
> >>     - UFSHCI 4.1: https://www.jedec.org/standards-documents/docs/jesd2=
23f
> >>
> >>     The ufshci(4) driver implements controller/device initialization,
> >>     interrupt, single-doorbell(SDB) queue based IO requests. Support f=
or
> >>     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=3Dblk1g.bin,format=3Draw,if=3Dnone,id=3Dluimg -device ufs-lu,driv=
e=3Dluimg,lun=3D0 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 + =20
> >
> > It seems changes to sources breaks buildkernel (at least for me) on cus=
tomized 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 --- =20
> > =3D=3D=3D> bin/sleep (all) =20
> > --- all_subdir_sbin ---
> > 5407 |                 if (ufshci->valid & CTS_UFSHCI_VALID_MODE) {
> >      |                                     ^
> > [...]
> >
> > Kind regards, =20
>=20
>=20
> I am running a test build just to be sure but I think this should do:
>=20
> commit 78f12afc38eabea82fd247c157d340e289dceeb8
> Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
> AuthorDate: Sun Jun 15 09:25:56 2025 +0000
> Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
> CommitDate: Sun Jun 15 09:25:56 2025 +0000
>=20
>      ufshci: camcontrol: use correct define to fix the build
>=20
>      Fixes:  1349a733cf28
>=20
> 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_tra=
ns_settings *cts)
>                  struct ccb_trans_settings_ufshci *ufshci =3D
>                      &cts->xport_specific.ufshci;
>=20
> -               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,
>=20
>=20
>=20
>=20

Thank you very much, seems to work, at least, for me.

Kind regards,
oh

--=20

A FreeBSD user

--Sig_/OtID_maiV.OnA.ILW47oRd8
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRQheDybVktG5eW/1Kxzvs8OqokrwUCaE60YAAKCRCxzvs8Oqok
r9CUAP9cWLJ7JqSN8dcfV50ElSVe11pb65pCcClM07c2BKFOBAEAtBYGrs2ZIDrL
VLsyeSUF5RZuQ93spMUYoH0s5z55GwU=
=WpPt
-----END PGP SIGNATURE-----

--Sig_/OtID_maiV.OnA.ILW47oRd8--



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