USB Host Controller and Hubs

A USB hub is responsible for the following:

Monitoring the insertion or removal of a device on its ports

Power managing individual devices on its ports

Controlling power to its ports

The USB host controller has an embedded
hub called the root hub. The ports that are visible at
the system's back panel are the ports of the root hub. The USB host controller
is responsible for the following:

Polling the devices by using a polling interval that is determined
by the device. The device is assumed to have sufficient buffering to account
for the time between the polls.

Sending data between the USB host controller and its attached
devices. Peer-to-peer communication is not supported.

USB Hub Devices

Do not cascade hubs beyond four levels on either SPARC based
systems or x86 based systems. On SPARC systems, the OpenBoot PROM
cannot reliably probe beyond four levels of devices.

Do not plug a bus-powered hub into another bus-powered hub
in a cascading style. A bus-powered hub does not have its own power supply.

Do not connect a device that requires a large amount of power
to a bus-powered hub. These devices might be denied connection to bus-powered
hubs or might drain the hub of power for other devices. An example of such
a device is a USB diskette device.

SPARC: USB Power Management

Suspending and resuming USB devices is fully supported on SPARC systems.
However, do not suspend a device that is busy and never remove a device when
the system is powered off under a suspend shutdown.

The USB framework makes a best effort to power manage all devices on
SPARC based systems with power management enabled. Power managing a USB device
means that the hub driver suspends the port to which the device is connected.
Devices that support remote wake up can notify the system
to wake up everything in the device's path so that the device can be used.
The host system could also wake up the device if an application sends an I/O
to the device.

All HID devices (keyboard, mouse, hub, and storage devices), hub devices,
and storage devices are power managed by default if they support remote wake-up
capability. A USB printer is power managed only between two print jobs. Devices
that are managed by the generic USB driver (UGEN) are power managed only when
they are closed.

When power management is running to reduce power consumption,
USB leaf devices are powered down first. After all devices that are connected
to a hub's ports are powered down, the hub is powered down after some delay.
To achieve the most efficient power management, do not cascade many hubs.