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