When the link is U1, the link partners may go to U2 when the U2 inactivity timeout. In this case, the device is going to U2.
But the host is going to Polling. LFPS.
In general, the device will come to U0 when the host issues LFPS exit. This is not happening in this case.
However, the host is sending polling LFPS. If the device is not responding to polling.LFPS, the host should issue WARM RESET. Is this happening this case? I guess NO.
1. Can you please check the same functionality with any other PC (other than Intel i7-6700)?
2. Please load the USB Bulk Sourcesink example firmware and collect the log while restarting the PC i.e Intel i7-6700.
The host does not send the expected WARM RESET when it gets no response to polling.LFPS.
To 1: The device is tested within many other environments and the problem was seen only with this specific PC.
To 2: When performing a PC restart with the USB Bulk Sourcesink running on the FX3 we do not see the problem but the device does not go to U2 state. As written in initial problem description we face the problem only when our device enters the U2 state. We would expect the device change from U2 to Rx.Detect state due to detected LFPS Timeout disconnect during system restart.
I can not comment on why the host is entering into LFPS.Polling instead of sending LFPS Exit. Please check with host controller vendor.
Here is the Exit from U2 requirements from the USB 3.0 Spec.
Section 126.96.36.199 Exit from U2
• A downstream port shall transition to eSS.Disabled when directed.
• A downstream port shall transition to Rx.Detect upon detection of a far-end high-impedance
receiver termination (ZRX-HIGH-IMP-DC-POS) defined in Table 6-21.
• A downstream port shall transition to Rx.Detect when directed to issue Warm Reset.
• An upstream port shall transition to Rx.Detect when Warm Reset is detected.
• A self-powered upstream port shall transition to eSS.Disabled upon not detecting valid Vbus as
defined in Section 11.4.5.
• The port shall transition to Recovery upon successful completion of a LFPS handshake meeting
the U2 LFPS exit signaling defined in Section 6.9.2.
• The port shall transition to eSS.Inactive upon the 2-ms LFPS handshake timer timeout
(tNoLFPSResponseTimeout) and a successful LFPS handshake meeting the U2 LFPS exit
handshake signaling in Section 6.9.2 is not achieved.