Knowledge

Host controller interface (USB, Firewire)

Source 📝

386:
host controllers on the motherboard, or for any VIA discrete host controllers attached to the computer's expansion bus. The OHCI driver provides low- and full-speed functions for USB ports of all other motherboard chipset vendors' integrated USB host controllers or discrete host controllers attached to the computer's expansion bus. The EHCI driver provided high-speed functions for USB ports on the motherboard or on the discrete USB controller. More recent hardware routes all ports through an internal "rate-matching" hub (RMH) that converts all traffic involving any directly-connected ports working at full-speed and low-speed between the high-speed traffic presented to the EHCI controller and the full-speed or low-speed traffic that the ports operating at those speeds expect, allowing the EHCI controller to handle these devices.
269: 77: 139: 36: 318:
motivation for defining it. 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. OHCI is common on add-in PCI Cards based on an NEC chipset). It has many fewer intellectual property restrictions than UHCI. It only supports 32-bit memory addressing, so it requires an
415:) is the newest host controller standard that improves speed, power efficiency and virtualization over its predecessors. The goal was also to define a USB host controller to replace UHCI/OHCI/EHCI. It supports all USB device speeds (USB 3.1 SuperSpeed+, USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed). 385:
Originally a PC providing high-speed ports had two controllers, one handling low- and full-speed devices and the second handling high-speed devices. Typically such a system had EHCI and either OHCI or UHCI drivers. The UHCI driver provides low- and full-speed interfaces for Intel or VIA chipsets' USB
353:
1.x (full and low speeds). It requires a license from Intel. 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. It only supports 32-bit memory addressing, so it requires an IOMMU or a computationally expensive bounce
317:
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. Compared with UHCI, it moves more intelligence into the controller, and thus is accordingly much more efficient; this was part of the
445: 393:
to work with a 64-bit operating system if a rate-matching hub is implemented to provide full-speed and low-speed connectivity instead of companion controllers using either the UHCI specification or OHCI specification, both of which are 32-bit only specifications.
354:
buffer to work with a 64-bit operating system. 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.
296:. 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 430:) refers to a virtual controller that may export virtual USB devices not backed by physical devices. For instance, on Linux, VHCI controllers are used to expose USB devices from other machines, attached using the 233:
or motherboard controller, this involves much custom logic, with digital logic engines in the motherboard's controller chip, plus analog circuitry managing the high-speed differential signals. On the
442:
The Host Interface defined in the USB4 Specification. It makes operating system to manage USB4 Host Route for USB, DisplayPort, PCI Express, Thunderbolt or Host-to-Host Communication.
49: 431: 674: 370:) is a high-speed controller standard applicable to USB 2.0. UHCI- and OHCI-based systems, as existed previously, entailed greater complexity and 389:
The EHCI software interface specification defines both 32-bit and 64-bit versions of its data structures, so it does not need a bounce buffer or
292:) 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 55: 462: 574: 669: 503: 543: 689: 403: 268: 621: 456: 214:
hardware to communicate with a host controller driver in software. The driver software is typically provided with an
177: 120: 98: 63: 91: 199: 148: 652: 85: 375: 102: 326:
to work with a 64-bit operating system. OHCI interfaces to the rest of the computer only with
504:
http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/ohci_11.pdf
663: 659: 350: 346: 297: 17: 648: 591: 8: 379: 155:
Please help update this article to reflect recent events or newly available information.
568: 327: 272:
Die shot of a VIA VT6307 Integrated Host Controller used for IEEE 1394A communication
219: 649:
An OHCI for USB standard document from Compaq, Microsoft and National Semiconductor
293: 215: 550: 223: 203: 230: 683: 484: 323: 262: 238: 694: 479: 468: 378:(USB-IF) insisted on a public specification for EHCI. Intel hosted EHCI 222:, but may also be implemented by application-specific devices such as a 277: 211: 518: 281: 234: 382:
and this helped to prevent the incursion of proprietary features.
446:
USB4® Host Controller ASM4242 Has Passed the USB-IF Certification
285: 390: 319: 474: 371: 314: 207: 397: 333: 357: 418: 308: 622:"Enhanced Host Controller Interface Specification" 249: 151:may be compromised due to out-of-date information 681: 513: 511: 463:Non-Volatile Memory Host Controller Interface 241:(called a Host Controller Driver, or HCD). 64:Learn how and when to remove these messages 508: 192:USB and Firewire Host Controller Interface 178:Learn how and when to remove this message 121:Learn how and when to remove this message 267: 84:This article includes a list of general 14: 682: 616: 614: 586: 584: 573:: CS1 maint: archived copy as title ( 538: 536: 437: 409:Extensible Host Controller Interface 404:Extensible Host Controller Interface 398:Extensible Host Controller Interface 132: 70: 29: 611: 581: 533: 339:Universal Host Controller Interface 334:Universal Host Controller Interface 24: 457:Advanced Host Controller Interface 374:than necessary. Consequently, the 364:Enhanced Host Controller Interface 358:Enhanced Host Controller Interface 90:it lacks sufficient corresponding 25: 706: 642: 424:Virtual Host Controller Interface 419:Virtual Host Controller Interface 45:This article has multiple issues. 137: 75: 34: 349:interface created by Intel for 322:or a computationally expensive 53:or discuss these issues on the 497: 309:Open Host Controller Interface 255:Open Host Controller Interface 250:Open Host Controller Interface 13: 1: 490: 244: 7: 690:Computer hardware standards 450: 10: 711: 401: 675:Intel xHCI Specification 670:Intel EHCI Specification 105:more precise citations. 376:USB Implementers Forum 313:The OHCI standard for 303: 273: 198:) is a register-level 658:Linux kernel source: 271: 237:side, it requires a 438:USB4 Host Interface 380:conformance-testing 276:When applied to an 274: 27:Software interface 521:. August 27, 2007 328:memory-mapped I/O 294:operating systems 220:personal computer 188: 187: 180: 170: 169: 131: 130: 123: 68: 16:(Redirected from 702: 636: 635: 633: 632: 618: 609: 608: 606: 605: 596: 588: 579: 578: 572: 564: 562: 561: 555: 549:. Archived from 548: 540: 531: 530: 528: 526: 515: 506: 501: 216:operating system 183: 176: 165: 162: 156: 149:factual accuracy 141: 140: 133: 126: 119: 115: 112: 106: 101:this article by 92:inline citations 79: 78: 71: 60: 38: 37: 30: 21: 710: 709: 705: 704: 703: 701: 700: 699: 680: 679: 645: 640: 639: 630: 628: 620: 619: 612: 603: 601: 594: 590: 589: 582: 566: 565: 559: 557: 553: 546: 544:"Archived copy" 542: 541: 534: 524: 522: 519:"Linux USB FAQ" 517: 516: 509: 502: 498: 493: 475:RAID Controller 453: 440: 432:USB/IP protocol 421: 406: 400: 360: 336: 311: 306: 280:(also known as 252: 247: 224:microcontroller 204:host controller 202:that enables a 184: 173: 172: 171: 166: 160: 157: 154: 146:This article's 142: 138: 127: 116: 110: 107: 97:Please help to 96: 80: 76: 39: 35: 28: 23: 22: 15: 12: 11: 5: 708: 698: 697: 692: 678: 677: 672: 667: 656: 644: 643:External links 641: 638: 637: 610: 599:Ftp.netbsd.org 580: 532: 507: 495: 494: 492: 489: 488: 487: 482: 477: 472: 466: 460: 452: 449: 439: 436: 420: 417: 402:Main article: 399: 396: 359: 356: 335: 332: 310: 307: 305: 302: 251: 248: 246: 243: 231:expansion card 186: 185: 168: 167: 145: 143: 136: 129: 128: 83: 81: 74: 69: 43: 42: 40: 33: 26: 9: 6: 4: 3: 2: 707: 696: 693: 691: 688: 687: 685: 676: 673: 671: 668: 666:documentation 665: 661: 657: 654: 650: 647: 646: 627: 623: 617: 615: 600: 593: 592:"UHCI11D.DOC" 587: 585: 576: 570: 556:on 2020-05-18 552: 545: 539: 537: 520: 514: 512: 505: 500: 496: 486: 483: 481: 478: 476: 473: 470: 467: 464: 461: 458: 455: 454: 448: 447: 443: 435: 433: 429: 425: 416: 414: 410: 405: 395: 392: 387: 383: 381: 377: 373: 369: 365: 355: 352: 348: 344: 340: 331: 329: 325: 324:bounce buffer 321: 316: 301: 299: 295: 291: 287: 283: 279: 270: 266: 264: 263:open standard 260: 256: 242: 240: 239:device driver 236: 232: 227: 225: 221: 217: 213: 209: 205: 201: 197: 193: 182: 179: 164: 161:November 2010 152: 150: 144: 135: 134: 125: 122: 114: 104: 100: 94: 93: 87: 82: 73: 72: 67: 65: 58: 57: 52: 51: 46: 41: 32: 31: 19: 629:. Retrieved 625: 602:. Retrieved 598: 558:. Retrieved 551:the original 523:. Retrieved 499: 480:Host adapter 469:Wireless USB 444: 441: 427: 423: 422: 412: 408: 407: 388: 384: 367: 363: 361: 342: 338: 337: 312: 289: 275: 258: 254: 253: 228: 195: 191: 189: 174: 158: 147: 117: 108: 89: 61: 54: 48: 47:Please help 44: 347:proprietary 103:introducing 684:Categories 631:2017-01-10 604:2017-01-10 560:2020-05-12 491:References 471:(WHCI 1.0) 111:April 2014 86:references 50:improve it 626:Intel.com 525:April 13, 278:IEEE 1394 245:IEEE 1394 212:IEEE 1394 200:interface 56:talk page 569:cite web 465:(NVMHCI) 451:See also 298:protocol 282:FireWire 261:) is an 235:software 345:) is a 229:On the 99:improve 459:(AHCI) 286:i.LINK 88:, but 595:(PDF) 554:(PDF) 547:(PDF) 485:LPCIO 391:IOMMU 372:costs 320:IOMMU 218:of a 664:EHCI 662:and 660:OHCI 575:link 527:2014 428:VHCI 413:xHCI 368:EHCI 362:The 343:UHCI 290:Lynx 259:OHCI 206:for 196:UFHC 18:OHCI 695:USB 653:PDF 351:USB 315:USB 304:USB 288:or 210:or 208:USB 686:: 624:. 613:^ 597:. 583:^ 571:}} 567:{{ 535:^ 510:^ 434:. 330:. 300:. 284:; 265:. 226:. 190:A 59:. 655:) 651:( 634:. 607:. 577:) 563:. 529:. 426:( 411:( 366:( 341:( 257:( 194:( 181:) 175:( 163:) 159:( 153:. 124:) 118:( 113:) 109:( 95:. 66:) 62:( 20:)

Index

OHCI
improve it
talk page
Learn how and when to remove these messages
references
inline citations
improve
introducing
Learn how and when to remove this message
factual accuracy
Learn how and when to remove this message
interface
host controller
USB
IEEE 1394
operating system
personal computer
microcontroller
expansion card
software
device driver
open standard

IEEE 1394
FireWire
i.LINK
operating systems
protocol
USB
IOMMU

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.