
Typically such a system had EHCI and either OHCI or UHCI drivers. Originally a PC providing high-speed ports had two controllers, one handling low- and full-speed devices and the second handling high-speed devices. Intel hosted EHCI conformance-testing and this helped to prevent the incursion of proprietary features. Consequently, the USB Implementers Forum (USB-IF) insisted on a public specification for EHCI. UHCI- and OHCI-based systems, as existed previously, entailed greater complexity and costs than necessary. The Enhanced Host Controller Interface ( EHCI) is a high-speed controller standard applicable to USB 2.0. UHCI is configured with port-mapped I/O and memory-mapped I/O, and also requires memory-mapped I/O for status updates and for data buffers needed to hold data that needs to be sent or data that was received.

It only supports 32-bit memory addressing, so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64-bit operating system. A USB controller using UHCI does little in hardware and requires a software UHCI driver to do much of the work of managing the USB bus. Universal Host Controller Interface ( UHCI) is a proprietary interface created by Intel for USB 1.x (full and low speeds).

OHCI interfaces to the rest of the computer only with memory-mapped I/O. It has many fewer intellectual property restrictions than UHCI. OHCI is common on add-in PCI Cards based on an NEC chipset). If a computer provides non-x86 USB 1.1, or x86 USB 1.1 from a USB controller that is not made by Intel or VIA, it probably uses OHCI (e.g. Compared with UHCI, it moves more intelligence into the controller, and thus is accordingly much more efficient this was part of the motivation for defining it. The OHCI standard for USB is similar to the OHCI standard for IEEE 1394, but supports USB 1.1 (full and low speeds) only so as a result its register interface looks completely different.

Because the card has a standard OHCI interface, the OS does not need to know in advance exactly who makes the card or how it works it can safely assume that the card understands the set of well-defined commands that are defined in the standard protocol. When applied to an IEEE 1394 (also known as FireWire i.LINK or Lynx) card, OHCI means that the card supports a standard interface to the PC and can be used by the OHCI IEEE 1394 drivers that come with all modern operating systems. Open Host Controller Interface ( OHCI) is an open standard. IEEE 1394 Open Host Controller Interface 2.4 Extensible Host Controller Interface.2.2 Universal Host Controller Interface.
