Problem: WaitForXfer function doesn't work properly, when the FX3 is in U2 state.
FX3 program is running, and it is controlled by JTAG debugger.
BulkLoop Application is controlled by software debugger (Visual Studio).
First, the following is the case of U1/U2 state disabled.
=========================================================================================
Step 1. [u2disabled_1.png]
Run the BulkLoop Application in from software debugger.
Set settings in BulkLoop Application.
Step 2. [u2disabled_2.png]
Push "Start" button in BulkLoop application, then the program breaks at the breakpoint.
Step 3. [u2disabled_3.png]
Step over OUT-EP's BeginDataXfer in the software debugger
Then FX3 Firmware receives input-data, copies the data to a buffer for output,
and breaks at the breakpoint.
Step 4. [u2disabled_4.png]
Step over several lines until the program counter reaches the line of IN-EP's WaitForXfer
in the software debugger.
Step 5. [u2disabled_5.png]
Step over IN-EP's WaitForXfer in the software debugger.
(WaitForXfer is waiting for IN-EP transfer data for 10 seconds.)
Step over CyU3PDmaChannelCommitBuffer in the JTAG debugger during WaitForXfer is waiting.
Then BulkLoop application returns immediately from IN-EP's WaitForXfer in the software debugger.
Step 6. [u2disabled_6.png]
Step over several lines until the program has done IN-EP's FinishDataXfer
in the software debugger.
Check the return value, then you'll find IN-EP's FinishDataXfer succeeded.
Yes, the USB3.0 tansfers work properly.
=========================================================================================
Next, the following is the case of U1/U2 state enabled.
=========================================================================================
Step 1 to 4 are same as the case of U1/U2 state disabled.
Step 5. [u2disabled_5.png]
Step over IN-EP's WaitForXfer in the software debugger.
(WaitForXfer is waiting for IN-EP transfer data for 10 seconds.)
Step over CyU3PDmaChannelCommitBuffer in the JTAG debugger during WaitForXfer is waiting.
However, BulkLoop application doesn't return from IN-EP's WaitForXfer in the software debugger,
unless timeout-error happens.
Step 6. [u2disabled_6.png]
Step over several lines until the program has done IN-EP's FinishDataXfer
in the software debugger.
Check the return value, then you'll find IN-EP's FinishDataXfer failed.
No, the USB3.0 tansfers don't work properly.
Extra step. [u2disabled_7.png]
Terminate BulkLoop.exe.
Move on to the USB Control Center, select "Bulk in endpoint" in the tree,
and select "Data Tranfers" tab.
Push [Transfer Data-IN] button, it'll receive data.
It means the USB host controller on the host computer received data properly.
That's why I think the hardware part has no problem.
=========================================================================================
For additional information, there are a few screenshots.
[driver_info1.png]
[driver_info2.png]
[driver_info3.png]
Thank you.
(the end of contents)