System, apparatus, and method for fast startup of USB devices
AssigneeQUALCOMM Incorporated
InventorSteven F. Harris
Life of this patent
Estimating the term…
Abstract
Exemplary embodiments are directed to fast enumeration of a device in a USB system including a USB device and a USB host. The USB device includes two device descriptors, a memory for holding firmware for operation of the USB device, and a controller for executing the firmware. A first device descriptor is for enumerating the USB device in a firmware-loading mode and a second device descriptor is for enumerating the USB device in an operational mode. The USB host controls a first enumeration of the USB device using the first device descriptor. After the first enumeration, the USB host receives a re-enumerate indicator from the USB device and controls a second enumeration of the USB device using the second device descriptor.
Claims32
A USB device, comprising:
- a memory for holding firmware for operation of the USB device;
- a controller for executing the firmware;
- a first device descriptor for enumerating the USB device in a firmware-loading mode for generating a first USB stack during a first stage of a dual-enumeration process;
- and
- a second device descriptor for enumerating the USB device in an operational mode upon completion of the firmware-loading mode of the first stage of the dual-enumeration process and in response to a re-enumerate indicator generated by the USB device for generating a second USB stack to replace the first USB stack during a second, different stage of the dual-enumeration process;
- wherein firmware comprises:
- first firmware for controlling the firmware-loading mode;
- and
- second firmware for controlling the operational mode.
A USB host for operable coupling to a USB device and comprising computing instruction for execution by a computer, to:
- perform a first stage of a dual-enumeration process of the USB device using a first device descriptor from the USB device after a first portion of firmware has been downloaded by the USB device to generate a first USB stack;
- receive a re-enumerate indicator from the USB device;
- and
- perform a second, different stage of the dual-enumeration process of the USB device using a second device descriptor from the USB device upon completion of the firmware-loading mode of the first stage of the dual-enumeration process and in response to the re-enumerate indicator after a second, different portion of firmware has been downloaded by the USB device to generate a second USB stack to replace the first USB stack.
A system, comprising:
- a USB device, comprising:
- a memory for holding firmware for operation of the USB device;
- a controller for executing the firmware;
- a first device descriptor for enumerating the USB device in a firmware-loading mode for generating a first USB stack during a first stage of a dual-enumeration process;
- and
- a second device descriptor for enumerating the USB device in an operational mode upon completion of the firmware-loading mode of the first stage of the dual-enumeration process and for generating a second USB stack to replace the first USB stack during a second, different stage of the dual-enumeration process;
- and
- a USB host operably coupled to the USB device and for controlling the USB device by:
- controlling a first enumeration of the USB device using the first device descriptor;
- and
- after the first enumeration:
- receiving a re-enumerate indicator from the USB device;
- and
- controlling a second enumeration of the USB device using the second device descriptor.
A method, comprising:
- detecting a USB device on a USB topology;
- enumerating the USB device with a first firmware and a first device descriptor of the USB device in a firmware-loading mode for generating a first USB stack during a first stage of a dual-enumeration process;
- enabling the USB device for access by first client software in the firmware-loading mode;
- downloading a second firmware to a memory of the USB device;
- enumerating the USB device with a second device descriptor of the USB device in an operational mode upon completion of the firmware-loading mode of the first stage of the dual-enumeration process and in response to a re-enumerate indicator generated by the USB device for generating a second USB stack to replace the first USB stack during a second, different stage of the dual-enumeration process;
- and
- enabling the USB device for access by second client software in the operational mode using the second firmware.
A system, comprising:
- means for detecting a USB device on a USB topology;
- means for enumerating the USB device with a first firmware and a first device descriptor of the USB device in a firmware-loading mode for generating a first USB stack during a first stage of a dual-enumeration process;
- means for enabling the USB device for access by first client software in the firmware-loading mode;
- means for downloading a second firmware to a memory of the USB device;
- means for enumerating the USB device with a second device descriptor of the USB device in an operational mode upon completion of the firmware-loading mode of the first stage of the dual-enumeration process and in response to a re-enumerate indicator generated by the USB device for generating a second USB stack to replace the first USB stack during a second, different stage of the dual-enumeration process;
- and
- means for enabling the USB device for access by second client software in the operational mode using the second firmware.
Dependencies are inferred from the claim text.