usb(7)
usb - Irix USB subsystem
As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.19.
NAME usb - Irix USB subsystem DESCRIPTION This page documents the Irix USB implementation for Onyx3. The SN1 system Ibrick incorporates a USB host controller as part of the baseio 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 (eg. keyboard, mouse) should export it's own namespace that can be relied on. Usb hwgraph paths are of the form: /hw/.../pci/<slot>/usb/<port_path>[/device_path] Where <slot> is 5 for the Ibrick 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 (ie. controller) counts as 1. Stated another way, you can have 5 usb hubs between the root hub and 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 (max 100ma draw). Hub Driver The Irix USB infrastructure implements the driver for USB hubs. Hubs conforming to the USB 1.1 spec 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 hwgraph 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 SGI USB implementation is a partial implementation, intended to provide support for selected keyboards and mice (see usbinput(7)) for Onyx3. Currently there is no administrative command for individual device control, and there is no support for devices other than keyboard/mouse. Likewise, the usb infrastructure provides no published api for the implementation of new usb drivers. Only controllers conforming to the OpenHCI spec are supported. SEE ALSO usbinput(7), Universal Serial Bus Specification rev 1.1, OpenHCI Open Host Controller Interface Specification for USB rev 1.0a