Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UFSHCI(4)		    Kernel Interfaces Manual		     UFSHCI(4)

NAME
       ufshci -- Universal Flash Storage Host Controller Interface driver

SYNOPSIS
       To compile this driver into the kernel, place the following line	in the
       kernel configuration file:

	     device ufshci

       Or, to load the driver as a module at boot, place the following line in
       loader.conf(5):

	     ufshci_load="YES"

DESCRIPTION
       Universal  Flash	Storage	(UFS) is a low-power, high-performance storage
       standard	composed of a host controller and a single target device.

       The driver currently provides:

          Initialization of the host controller and the target	device

          Handling of UFS Interconnect	(UIC) commands

          Support for UTP Transfer Requests (UTR) and UTP Task	Management Re-
	   quests (UTMR)

          Support for the SCSI	command	set

          Operation in	the legacy single-doorbell queue mode

          Support for the PCI Express bus

       After initialization, the controller is registered with the cam(4) sub-
       system and its logical unit appears as the device node /dev/daX.

       The driver is under active development; upcoming	work includes full UFS
       4.1 feature coverage, additional	power-management modes,	and  ACPI/FDT-
       based attach support.

HARDWARE
       The ufshci driver supports both host controllers	and devices implement-
       ing  the	Universal Flash	Storage	Host Controller	Interface 4.1 and ear-
       lier.

CONFIGURATION
       The ufshci driver currently operates with a single doorbell  (one  I/O-
       queue),	so any tunables	that change the	queue count are	ignored.  When
       Multi-Circular Queue (MCQ) support is added and multiple	queues	become
       available, the following	queue count tunable values will	take effect:

       To  force a single I/O queue pair shared	by all CPUs, set the following
       tunable value in	loader.conf(5):

	     hw.ufshci.per_cpu_io_queues=0

       To assign more than one CPU per I/O queue pair,	thereby	 reducing  the
       number  of MSI-X	vectors	consumed by the	device,	set the	following tun-
       able value in loader.conf(5):

	     hw.ufshci.min_cpus_per_ioq=X

       To change the I/O command timeout value (in seconds), set the following
       tunable value in	loader.conf(5):

	     hw.ufshci.timeout_period=X

       To change the I/O command retry count, set the following	tunable	 value
       in loader.conf(5):

	     hw.ufshci.retry_count=X

       To  force  the  driver to use legacy INTx interrupts, set the following
       tunable value in	loader.conf(5):
       (Note: until MCQ	support	is available the  driver  always  uses	legacy
       INTx, so	this value effectively remains 1)

	     hw.ufshci.force_intx=1

SYSCTL VARIABLES
       The  following  controller-level	 sysctl(8)  nodes are currently	imple-
       mented:

       dev.ufshci.0.num_failures
	       (R) Number of command failures for the entire controller.

       dev.ufshci.0.num_retries
	       (R) Number of command retries for the entire controller.

       dev.ufshci.0.num_intr_handler_calls
	       (R) Number of times the interrupt handler has been called.

       dev.ufshci.0.num_cmds
	       (R) Total number	of commands issued by the controller.

       dev.ufshci.0.timeout_period
	       (RW) Configured timeout period (in seconds).

       dev.ufshci.0.cap
	       (R) Host	controller capabilities	register value.

       dev.ufshci.0.num_io_queues
	       (R) Number of I/O-queue pairs.

       dev.ufshci.0.io_queue_mode
	       (R) Indicates single doorbell  mode  or	multi  circular	 queue
	       mode.

       dev.ufshci.0.minor_version
	       (R) Host	controller minor version.

       dev.ufshci.0.major_version
	       (R) Host	controller major version.

       dev.ufshci.0.utmrq.num_failures
	       (R) Number of failed UTP	task-management	requests.

       dev.ufshci.0.utmrq.ioq.num_retries
	       (R) Number of retried UTP task-management requests.

       dev.ufshci.0.utmrq.num_intr_handler_calls
	       (R)  Number  of interrupt handler calls caused by UTP task-man-
	       agement requests.

       dev.ufshci.0.utmrq.num_cmds
	       (R) Number of UTP task-management requests issued.

       dev.ufshci.0.utmrq.cq_head
	       (R) Current location  of	 the  UTP  task-management  completion
	       queue head.

       dev.ufshci.0.utmrq.sq_tail
	       (R)  Current  location  of  the	UTP task-management submission
	       queue tail.

       dev.ufshci.0.utmrq.sq_head
	       (R) Current location  of	 the  UTP  task-management  submission
	       queue head.

       dev.ufshci.0.utmrq.num_trackers
	       (R) Number of trackers in the UTP task-management queue.

       dev.ufshci.0.utmrq.num_entries
	       (R) Number of entries in	the UTP	task-management	queue.

       dev.ufshci.0.ioq.0.num_failures
	       (R) Number of failed UTP	transfer requests.

       dev.ufshci.0.ioq.0.num_retries
	       (R) Number of retried UTP transfer requests.

       dev.ufshci.0.ioq.0.num_intr_handler_calls
	       (R)  Number  of	interrupt-handler calls	caused by UTP transfer
	       requests.

       dev.ufshci.0.ioq.0.num_cmds
	       (R) Number of UTP transfer requests issued.

       dev.ufshci.0.ioq.0.cq_head
	       (R) Current location of the UTP transfer	completion queue head.

       dev.ufshci.0.ioq.0.sq_tail
	       (R) Current location of the UTP transfer	submission queue tail.

       dev.ufshci.0.ioq.0.sq_head
	       (R) Current location of the UTP transfer	submission queue head.

       dev.ufshci.0.ioq.0.num_trackers
	       (R) Number of trackers in the UTP transfer queue.

       dev.ufshci.0.ioq.0.num_entries
	       (R) Number of entries in	the UTP	transfer queue.

SEE ALSO
       cam(4), pci(4), disk(9)

HISTORY
       The ufshci driver first appeared	in FreeBSD 15.0.

AUTHORS
       The ufshci driver was developed by Samsung Electronics  and  originally
       written by Jaeyoon Choi <j_yoon.choi@samsung.com>.

       This manual page	was written by Jaeyoon Choi <j_yoon.choi@samsung.com>.

FreeBSD	16.0-CURRENT		 July 17, 2025			     UFSHCI(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ufshci&sektion=4&manpath=FreeBSD+16.0-CURRENT>

home | help