IP Library › Granted Patent US 8,843,664
Granted Patent B2
US 8,843,664 · App. 13/632,084 · Granted Sep 23, 2014

Re-enumeration of USB 3.0 compatible devices

Inventors: Pradeep Kumar Bajpai (Sunnyvale, CA); Robert Rundell (San Jose, CA); Syed Babar Raza (San Jose, CA)
Assignee: Cypress Semiconductor Corporation
G06F3/00G06F8/65
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,843,664
App. No.
13/632,084
Granted
Sep 23, 2014
Kind
B2
Abstract

A host device can download a firmware update to a peripheral device having previously enumerated with the host device. The host device can perform link training with the peripheral device in response to a re-enumeration indication received from the peripheral device. The link training can include switching a Link Training and Status State Machine (LTSSM) in the host device from an active state (U 0 ) to an RX.Detect state and synchronizing with the peripheral device in the RX.Detect state. The host device can re-enumerate with the peripheral device utilizing the firmware update after the host device completes link training with the peripheral device.

Claims (48)

1. A method comprising:

downloading, by a host device, a firmware update to a peripheral device over a Universal Serial Bus (USB);

performing, by the host device, link training with the peripheral device over the USB in response to a simulated condition of the peripheral device indicated by the peripheral device, wherein the link training includes switching a Link Training and Status State Machine (LTSSM) in the host device from an active state (UO) to an RX.Detect state and synchronizing, by the host device, with the peripheral device in the RX.Detect state over the USB; and

receiving, by the host device, a configuration of the peripheral device corresponding to the firmware update over the USB after the host device completes the link training with the peripheral device, the configuration including at least one descriptor identifying a USB class supported by the peripheral device, the at least one descriptor being determined based, at least in part, on the firmware update.

2. The method of claim 1 , wherein the simulated condition indicated by the peripheral device comprises a receipt of a corrupt sequence number, a receipt of a successful exit handshake from a low power state to a recovery, a receipt of an initiation of recovery without detecting an error, or a lack of receipt of one or more link commands from the peripheral device.

3. The method of claim 1 , further comprising transmitting, by the host device, a vendor command to the peripheral device over the USB in response to a completion of the downloading of the firmware update, wherein the host device receives the indication of the simulated condition of the peripheral device from the peripheral device over the USB in response to the transmitting the vendor command to the peripheral device.

4. The method of claim 3 , wherein the firmware update includes at least one new universal serial bus class or configuration for the peripheral device.

5. The method of claim 4 further comprising:

transmitting, by the host device, another vendor command over the USB to prompt the peripheral device to switch to the new universal serial bus class or configuration;

performing, by the host device, another link training with the peripheral device in response to another indication received from the peripheral device; and

receiving, by the host device over the USB, another configuration of the peripheral device corresponding to the new universal serial bus class or configuration after the host device completes the other link training with the peripheral device.

6. The method of claim 1 , wherein performing the link training with the peripheral device further comprises:

switching, by the host device, the LTSSM from the active state (UO) to an inactive state (SS.Inactive);

switching, by the host device, the LTSSM from the inactive state (SS.Inactive) to the RX.Detect state; and

polling, by the host device over the USB, with the peripheral device after synchronizing with the peripheral device.

7. The method of claim 1 , wherein the peripheral device and the host device are coupled over the USB a universal serial bus.

8. An apparatus comprising a computer-readable non-transitory memory device storing instructions configured to cause a processing device to perform operations comprising:

downloading a firmware update to a peripheral device over a Universal Serial Bus (USB);

performing link training with the peripheral device over the USB in response to a simulated condition of the peripheral device presented by the peripheral device, wherein the presented simulated condition is responsive to a signaling, and wherein the link training includes switching a Link Training and Status State Machine (LTSSM) in the processing device from an active state (UO) to an RX.Detect state and synchronizing with the peripheral device in the RX.Detect state over the USB; and

receiving a configuration of the peripheral device corresponding to the firmware update over the USB after the processing device completes the link training with the peripheral device, the configuration including at least one descriptor identifying a USB class supported by the peripheral device, the at least one descriptor being determined based, at least in part, on the firmware update.

9. The apparatus of claim 8 , wherein the presented simulated condition comprises a receipt of a corrupt sequence number, a receipt of a successful exit handshake from a low power state to a recovery, a receipt of an initiation of recovery without detecting an error, or a lack of receipt of one or more link commands from the peripheral device.

10. The apparatus of claim 9 , wherein the signaling comprises transmitting a vendor command to the peripheral device over the USB in response to a completion of the downloading of the firmware update, wherein the processing device is presented with the simulated condition of the peripheral device by the peripheral device in response to the transmitting of the vendor command to the peripheral device.

11. The apparatus of claim 10 , wherein the firmware update includes at least one new universal serial bus class or configuration for the peripheral device.

12. The apparatus of claim 11 , wherein the instructions are further configured to cause the processing device to perform operations comprising:

transmitting another vendor command over the USB to prompt the peripheral device to switch to the new universal serial bus class or configuration;

performing another link training with the peripheral device in response to an indication received from the peripheral device; and

receiving another configuration of the peripheral device corresponding to the new universal serial bus class or configuration over the USB after the processing device completes the other link training with the peripheral device.

13. The apparatus of claim 12 , wherein performing the other link training with the peripheral device comprises:

switching the LTSSM from the active state (UO) to an inactive state (SS.Inactive);

switching the LTSSM from the inactive state (SS.Inactive) to the RX.Detect state; and

polling the peripheral device over the USB after synchronizing with the peripheral device.

14. The apparatus of claim 8 , wherein the peripheral device and the processing device are coupled over the USB.

15. A method comprising:

downloading, by a peripheral device, a firmware update from a host device over a Universal Serial Bus (USB);

presenting, by the peripheral device, to the host device over the USB a simulated condition of the peripheral device in response to a completion of downloading the firmware update, wherein the simulated condition is configured to cause the host device to perform link training, the link training comprising switching a Link Training and Status State Machine (LTSSM) of the host device from active state (UO) to an RX.Detect state;

synchronizing, by the peripheral device, with the host device in the RX.Detect state over the USB; and

presenting, by the peripheral device, a new configuration of the peripheral device corresponding to the firmware update to the host device over the USB after synchronization of the host device with the peripheral device, the new configuration including at least one descriptor identifying a USB class supported by the peripheral device, the at least one descriptor being determined based, at least in part, on the firmware update.

16. The method of claim 15 further comprising receiving, by the peripheral device over the USB, a vendor command configured to identify the completion of downloading the firmware update.

17. The method of claim 15 wherein the presenting of the simulated condition of the peripheral device comprises a transmission of a corrupt sequence number, a transmission of a successful exit handshake from a low power state to a recovery, a transmission of an initiation of recovery without detecting an error, or a lack of transmission of one or more link commands from the peripheral device.

18. The method of claim 15 , further comprising:

receiving, by the peripheral device over the USB, signaling from the host device configured to indicate the host device is entering a warm reset; and

switching, by the peripheral device, to an RX.Detect state in response to the signaling, wherein the synchronizing with the host device is performed with the peripheral device in the RX.Detect state.

19. The method of claim 15 further comprising:

receiving, by the peripheral device over the USB, a vendor command configured to identify a different universal serial bus class or configuration for the peripheral device to utilize;

transmitting, by the peripheral device over the USB, an indication to the host device in response to the vendor command;

synchronizing, by the peripheral device over the USB, with the host device in response to the host device receiving the indication; and

presenting, by the peripheral device over the USB, the different universal serial bus class or configuration for the peripheral device to utilize after synchronization of the host device with the peripheral device.

20. The method of claim 15 , wherein the peripheral device and the host device are coupled over the USB.

Assignments (6)
MERGER Recorded Nov 14, 2025
From: CYPRESS SEMICONDUCTOR CORPORATION
To: INFINEON TECHNOLOGIES AMERICAS CORP.
Reel/Frame 073571/0456 →
RELEASE OF SECURITY INTEREST Recorded Mar 16, 2022
From: MUFG UNION BANK, N.A.
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 059410/0438 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 28, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 050896/0366 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2012
From: BAJPAI, PRADEEP; RUNDELL, ROBERT; RAZA, SYED BABAR
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 029130/0784 →
Continuity (2)
Continuation In Part 13248326 · Sep 29, 2011
Related Publication 20130132614A1 · May 23, 2013