ehci
—
USB Enhanced Host Controller driver
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.
The ehci
device driver first appeared in
FreeBSD 5.1.