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

FreeBSD Manual Pages

  
 
  

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

NAME
       udbc -- USB Debug Class device driver

SYNOPSIS
       device usb
       device ucom
       device udbc

       In rc.conf(5):
       kld_list="udbc"

DESCRIPTION
       The  udbc driver	provides support for USB Debug Class devices whose in-
       terface class is	Diagnostic Class and the subclass is DbC.GP.

       The USB Debug Class is defined in the USB 3.1 Device  Class  Specifica-
       tion  for Debug Devices.	 This is designed to provide a general-purpose
       communication channel for debugging.  It	has also  been	widely	imple-
       mented  in  USB	xHCs  (USB  eXtensible Host Controllers), which	can be
       found on	many commodity computers, as an	optional feature.   Once  this
       feature	is enabled on a	USB xHC, one of	the USB	ports will behave as a
       USB Debug Class device, not a host port,	when a USB debug cable is con-
       nected.	The supported class in USB xHCs	is typically DbC.GP, while the
       specification defines several types of Debug Class devices.  The	DbC.GP
       uses IN and OUT endpoint	pairs and realizes a single bidirectional ser-
       ial communication channel.  On most  systems,  including	 FreeBSD,  the
       DbC.GP is seen as a simple serial device.

       Most  systems  with USB xHC can be configured to	provide	DbC.GP access.
       The udbc	is a driver that connects to DbC.GP-supported devices,	offer-
       ing tty(4) devices to connect to	them via the ucom(4) device driver.

HARDWARE CONFIGURATION
       A  native  DbC.GP  device  can  be  attached using the udbc driver in a
       straightforward way.

       A USB xHC DbC.GP	device on a target system  needs  a  special  hardware
       configuration  because  all of the ports	are supposed to	be a USB Host.
       There is	one method to expose DbC.GP is to use a	USB 3.1	 A-to-A	 cable
       (section	 5.5.2	in  USB	3.1 Legacy Cable and Connector Specification).
       When this cable is connected to a USB 3.1 port on  the  target  system,
       the  DbC-enabled	 USB  xHC automatically	switches the port as a USB De-
       vice.  The udbc driver can find a DbC.GP	device on that port.

       Note that a USB xHC with	USB 3.2	support	(USB Type-C connectors)	is not
       compatible with the USB 3.1 A-to-A cable.  Connecting a USB 3.2	C-to-C
       cable  or  A-to-C cable does not	automatically work, either, because it
       needs role configuration	of the port, which is not supported on FreeBSD
       yet.

FILES
       /dev/ttyU*.*	  for callin ports
       /dev/ttyU*.*.init
       /dev/ttyU*.*.lock  corresponding	callin	initial-state  and  lock-state
			  devices

       /dev/cuaU*.*	  for callout ports
       /dev/cuaU*.*.init
       /dev/cuaU*.*.lock  corresponding	 callout  initial-state	and lock-state
			  devices

SEE ALSO
       tty(4), ucom(4),	usb(4),	xhci(4)

STANDARDS
       eXtensible Host Controller Interface for	Universal Serial  Bus  (XHCI),
       https://www.intel.com/content/dam/www/public/us/en/documents/technical-
       specifications/extensible-host-controler-interface-usb-xhci.pdf.	   USB
       3.1    Device	Class	  Specification	    for	    Debug     Devices,
       https://www.usb.org/sites/default/files/documents/usb_debug_class_rev_1_0_final_0.pdf.
       USB     3.1     Legacy	  Cable	    and	   Connector	Specification,
       https://www.usb.org/document-library/usb-31-legacy-cable-and-connector-
       revision-10.

HISTORY
       The udbc	driver first appeared FreeBSD 15.0.

AUTHORS
       The udbc	driver was written by Hiroki Sato <hrs@FreeBSD.org>.

BUGS
       According to the	XHCI specification the host side of USB	 Debug	should
       work  with any USB 3.0 port, whether connected directly to a controller
       or with a hub in	between.  Testing on some controllers has  encountered
       issues  when  using  a hub rather than a	directly connected port	on the
       controller.

FreeBSD	15.0		       September 3, 2025		       UDBC(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=udbc&sektion=4&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help