USB Speed change event behaviour in some mother boards

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
InAm_1491141
Level 1
Level 1

Hi,

We are facing the same type of issue mentioned USB Speed change event behavior in some mother boards with "AUTO" XHCI mode configuration in BIOS  and the endpoint reconfiguration for USB reset event solves this issue.

But we are working with CX3 based camera with Type-C connector.

In some motherboards boot up below is the sequence of enumeration.

  • Camera connects to PC as a High Speed device.
  • Host issues a reset.
  • Camera comes up as Super Speed device.

In ideal condition we are establishing the USB 3.0 connection as mentioned Type C connector enumeration issue 

1.This works fine in one orientation (where we will toggle the Type-C mux GPIO after a CY_U3P_USB_EVENT_SS_COMP_ENTRY or CY_U3P_USB_EVENT_USB3_LNKFAIL).

2.With the other orientation we are configuring the MUX wrongly and the device end up working as a High Speed device even after a reset from host.

To make this work we have implemented a simple logic where we will disable the USB PHY using CyU3PConnectState(CyFalse, CyFalse) and toggle the MUX GPIO again for every endpoint re-configuration process.

The problem we face in scenario 1 is we are receiving multiple reset requests during the entire boot up process and not getting connect request as USB 3.0 immediately after toggling the MUX.

Is our fix recommended and need advice if there is any other method to solve this.

Regards,

Indumathi. 

0 Likes
2 Replies
KandlaguntaR_36
Moderator
Moderator
Moderator
25 solutions authored 10 solutions authored 5 solutions authored

Please provide a sample firmware that includes the above-said logic implemented.

I can test internally and let you know the observations/ modifications needed.

The thread title says that you are seeing speed change event with some motherboards. Please let us know what are those motherboards and what are the motherboards working fine.

0 Likes

>> To make this work we have implemented a simple logic where we will disable the USB PHY using CyU3PConnectState(CyFalse, CyFalse) and toggle the MUX GPIO again for every endpoint re-configuration process.

Can you please explain what is meant by "every endpoint re-configuration process."?

Can you please confirm whether there are NO resets when you connect the board in single orientation (in which it enumerate in USB 3.0)?

After the MUX logic added to the code and flipping connector, how many resets you have seen?

Reset over the USB 3.0 is common if the link couldn't come up in USB 3.0. It is supposed to establish after one or two resets.

Note that if the USB 3.0 link could not establish after three retries, the link will come up in USB 2.0 unless you specifically disable the USB 2.0 connection and enable only USB 3.0 connection using a loop ​ in firmware​(KBA - Enabling FX3 Only for USB 3.0 Applications – KBA219491 ).

0 Likes