ehci —
USB
Enhanced Host Controller driver
device ehci
The
ehci driver provides support for the USB
Enhanced Host Controller Interface, which is used by USB 2.0 controllers.
EHCI controllers are peculiar in that they can only handle the USB 2.0 protocol.
This means that they normally have one or more companion controllers (i.e.,
ohci(4) or
uhci(4))
handling USB 1.x devices. Consequently each USB connector is electrically
connected to two USB controllers. The handling of this is totally automatic,
but can be noticed since USB 1.x and USB 2.0 devices plugged in to the same
connector appear to connect to different USB buses.
When the kernel has been compiled with
options
USB_DEBUG, some tunables become available that affect the behavior of
ehci. These tunables can be set at the
loader(8) prompt before booting the kernel or
stored in
loader.conf(5).
- hw.usb.ehci.lostintrbug
- This tunable enables the lost interrupt quirk. The default
value is 0 (off).
- hw.usb.ehci.iaadbug
- This tunable enables the EHCI doorbell quirk. The default
value is 0 (off).
- hw.usb.ehci.no_hs
- This tunable disables USB devices to attach like HIGH-speed
ones and will force all attached devices to attach to the FULL- or
LOW-speed companion controller. The default value is 0 (off).
The following variables are available as both
sysctl(8) variables and
loader(8) tunables:
- hw.usb.ehci.debug
- Debug output level, where 0 is debugging disabled and
larger values increase debug message verbosity. Default is 0.
ohci(4),
uhci(4),
usb(4),
xhci(4)
The
ehci device driver first appeared in
FreeBSD 5.1.