Universal Serial Bus (USB) Subsystem
The USB device driver protocol stack for AIX® consists of several drivers that communicate with each other.
The following figure illustrates several drivers communicating
with each other in a layered fashion.
The top layer consists of several client drivers that support
various USB classes that include mass storage, human interface device,
audio, hub, and other classes. The client drivers hides the class
level function from the operating system and provide uniform file-oriented
interface to the applications in accessing the corresponding class-level
devices. The mid-layer consists of a USB bus driver that hides the
host controller implementation details and the bus-level hardware
complexity present in the system. It provides uniform interface to
each top-level client driver in accessing the corresponding class-level
devices regardless of which USB bus the device is on. The lower-layer
consists of several host controller drivers that provide the software
interface between the host-controller hardware and the USB System
Driver (USBD). The details of each host controller driver depend on
the host controller interface definition. These three layer drivers
in the USB subsystem work together to support the attachment of a
range of USB devices. The USB devices such as flash drive, tape, CD-ROM,
keyboard, mouse, speaker, and other devices are supported.
The location code is in the [USB Host Controller Number]:[Port Number] format.
For a USB 3.0 controller, 8 logical ports correspond to 4 physical USB ports on the card. The ports are logically numbered based on whether the devices are connected to the port USB 2.0 or to the port USB 3.0. If all devices connected to the ports are USB 2.0 devices, the lsdev command displays 1, 2, 3, or 4 for the logical port number. If the devices connected to the port are USB 3.0 devices, the ports are logically numbered as 5, 6, 7, or 8.
The following table shows the logical port values
for both USB 2.0 and USB 3.0 devices at various physical
ports.
Physical port | Logical port (if USB 2.0 device) | Logical port (if USB 3.0 device) |
---|---|---|
T1 (top) | 0.4 | 0.8 |
T2 | 0.2 | 0.6 |
T3 | 0.1 | 0.5 |
T4 | 0.3 | 0.7 |
Example
# lsdev -C | grep usbms
usbms0 Available 0.7 USB Mass Storage
As shown above, if a USB 3.0 device (usbms0)
is showing logical port no = 0.7, then it is connected physically
to port T4 of the usbhc0 controller.