

Where the circled layer, I believe, provides this port status translation.Īfter that the system knows no difference between a root hub port and any regular hub port.The package provides the installation files for SAMSUNG Mobile USB Composite Device Driver version 2.12.4.0. This is sort-of illustrated in the following Microsoft documentation. However, to maintain bit-wise compatibility between ALL ports in USB tree and provide universal access to all ports, the host controller driver software usually has a special layer that converts the register-based port control statuses (PORTSC) into standard USB port status format. This protocol works up to any valid level of hub stackup, and each port has well-defined status bits within USB responses.Ī root hub performs similar function, except (a) the upstream is associated directly with host controller pipe/bus, and (b) various status bits of each ports are mapped directly into 32-bit registers in host PCI space. These functions are controlled via USB-type control transactions, which are directed to each particular port, all using USB packet-token protocol. To do so, each hub has special control pipe that controls port functions such as connect/disconnect/suspend/resume/disable etc. In a computer terms that would translate into "software controls the host controller using HCI, and since root hub is part of the host controller it does its job share in supporting USB communication".Ī regular USB hub is a USB device that can split USB traffic from one (upstream) link to several downstream ports, and mux the upcoming traffic from many ports into one upstream. So, more precise statement would be "driver controls the car using pedals, steering wheel and a stick, and since engine is part of the car it does its job share in the whole driving process". These parts correspond to internal logic circuitry of the controller. You can say that driver operates an engine using pedals, and that would be correct but not precise, because there are quite a few parts between the pedals and an engine. It also has an engine (root hub) that performs essential part of the car functionality.

It has an interface (pedals) that software (driver) can use to operate the controller. Here is a simple analogue to illustrate to relationships:Ī vehicle is a controller. Basically they are registers that software can access in order to communicate with host controller.įrom the above I don't think term "middleman" is applicable as you pictured it. interfaces of host controller, not root hub. The interfaces that you mention are Host Controller Interfaces (HCI), i.e. More specifically, it is a part of host controller (which itself can be either separate chip or a part of chipset). It might be more convenient to think of root hub as one of the several starting points for enumeration. You can have more than one root hub, so no, it is not the point where all hubs come together.
