If it rejects it with an LXU, it remains in U0. This is backed up by the following important rule: A port that receives TS1 ordered sets, indicating that the other side has entered Recovery, also enters Recovery, and aborts the low-power handshake.Ĭonsider the port that receives an LGO_Ux command. The state transition handshake ensures that both sides either enter the low power state, or both sides remain in U0 (possibly with a detour into Recovery in the middle). The link between the splitter and computer is allowed to enter a low power state only if all of its downstream ports are in a low power state. For example, if a device is connected to a computer through a USB splitter hub, the link between the splitter and the device may (and often will) enter a low power state even if the link between the splitter and the computer is fully up. The power state is local between link partners. Note that when these feature flags are enabled, the device is permitted, and not required, to initiate requests for U1 and/or U2. By default, these features are disabled per spec, but the common practice is to enable them when a device is enumerated. Note that a device is allowed to request a low-power state only an explicit SET_FEATURE control command, enabling the device’s capability to request U1 and/or U2 (these have separate feature flags, U1_ENABLE and U2_ENABLE). The state transition is aborted if any of the first two are lost, and just slightly delayed if the third is lost. So all in all, it’s a three-way handshake: LGO_Ux, LAU and LPMA. The LPMA packet is not necessary for entering the low power state, but saves a few microseconds of staying in U0 on the port that sent the LAU packet, as explained below. If an LAU packet is received, the requesting port sends an LPMA Link Layer packet and enters the relevant power state after that. If the requesting port receives an LXU packet, both ports remain in the active U0 state, as if no request was sent. Within 3 μs (PM_LC_TIMER), the link partner must respond with either an LAU Link Layer command for confirming the request, or with an LXU to reject it (rejection is disallowed in some cases however). To enter a low power state, either port of a link sends one of the LGO_U1, LGO_U2 or LGU_U3 Link Layer command, each requesting the respective low power state U1, U2 or U3. There is also a page with an broader view of power states. It’s by no means a replacement for reading the USB 3.0 spec, but rather an attempt to clarify its underlying concepts.Ī similar discussion on waking up from these low-power states can be found on this page. This is a crude summary of the key issues related to entering the U1, U2 or U3 low-power states on a SuperSpeed USB link.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |