usb(7)usb(7)NAMEusb - Irix USB subsystem
DESCRIPTION
This page documents the Irix USB implementation for SGI Onyx 3000 and
Fuel systems.
Both the Onyx 3000 system I-brick and the Fuel workstation incorporate a
USB host controller as part of the base I/O device set. There are two
USB ports on one USB controller.
Device Topology
The USB device topology is exported through a subtree in the hardware
graph. The device topology format is subject to change over releases as
the need arises, so it should not be relied on by scripts. Each USB
driver (e.g. keyboard, mouse) should export its own namespace that can be
relied on.
USB hardware graph paths are of the form:
/hw/.../pci/<slot>/usb/<port_path>[/device_path]
Where <slot> is 5 for the I-brick internal USB controller. <port_path>
is a '/' separated sequence of USB hub port numbers. Ports having a
common parent belong to the same USB hub. Port components separated by a
'/' are connected by a hub. For example:
/hw/.../pci/5/usb/1
refers to port 1 of the USB controller, or Root Hub in USB terminology.
/hw/.../pci/5/usb/1/2
refers to port 2 of the hub which is plugged into port 1 of the Root Hub.
If a non-hub device is plugged into a port (and there is a driver for
that device), a driver-specific path will be hung off of the port that
the device is plugged into. In the example:
/hw/.../pci/5/usb/2/3/keyboard
/hw/.../pci/5/usb/2/4/mouse
a driver has detected a keyboard device plugged into hub port 3, and a
mouse plugged into hub port 4. The hub in this example is plugged into
the Root Hub port 2.
USB Topology Rules
The following rules are enforced by the USB subsystem:
- The maximum depth from root hub to end device cannot exceed 7,
where the root hub (i.e. controller) counts as 1. Stated
another way, you can have 5 USB hubs between the root hub and
Page 1
usb(7)usb(7)
an end device.
- All hubs in a path must be self-powered with the exception of
the one closest to the end device.
- Devices plugged into a port of a bus-powered hub must be
classified as low-power devices (which can draw a maximum of
100mA).
Hub Driver
The Irix USB infrastructure implements the driver for USB hubs. Hubs
conforming to the USB 1.1 specification are supported.
Hot Plug
The Irix USB implementation supports hot plugging and unplugging of USB
devices, within the constraints of the USB topology rules.
A device that is hot plugged will be initialized to a default state by
the USB subsystem, and then the appropriate driver (if any) will be
called to do further driver specific initialization. Device
initialization errors will generally be logged to the console, and the
device will not be accessible.
A device that is unplugged will have its entry removed from the USB
hardware graph namespace. It is up to the individual drivers to do any
driver-specific cleanup at unplug time.
Reset
There is no general USB administrative command. If a device needs to be
reset, it should be unplugged, and replugged.
NOTES
The Irix USB implementation is a partial implementation and supports
selected keyboards, mice, and drawing tablets (see usbinput(7)) as well
as USB audio devices. Currently there is no administrative command for
individual device control.
Likewise, the USB infrastructure provides no published API for the
implementation of new USB drivers.
Only controllers conforming to the OpenHCI specification are supported.
SEE ALSOusbinput(7), Universal Serial Bus Specification rev 1.1, OpenHCI Open
Host Controller Interface Specification for USB rev 1.0a
Page 2