This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: SerDes3 USB3.0 + PCIe support

Part Number: TDA4VM

Hello TI experts,

We are developing custom platform with TDA4x as main control SoC.

Current SDK version: 07.02.00
Host platform: Ubuntu 18.04

Our problem is that we can not bring-up USB3.0 alongside PCIe on same SerDes. We have bean debugging this issues for quite some time, and we have found some possible issues, but would like to have your support in confirming our possibilities to fix this.

This is our hardware configuration:

As you can see, we have connected USB3.0  to lane0 and PCIe to lane1 of SerDes3.

Later we found in TRM section 12.2.4.2 USB Environment these footnotes:

(2) USB3SS0 Superspeed can go to either SERDES0 or SERDES3. Refer to Section 12.2.5, 16-G Serializer/Deserializer for more
details.
(3) Lane 1 is active always, regardless if non-Type C or Type C connector is being used.
(4) Lane 0 is active only if Type C connector is being used.

Does this mean that Lane1 is default go-to lane for USBSS, and USB3.0 will not work in super-speed mode if connected to lane0?

Also can you please confirm is it even possible in SDK version we are currently using to configure SerDes lanes to different interfaces?

Because we have tested PCIe on our current HW configuration when both lanes of SerDes are designated as PCIe, then PCIe is working as expected. On the other hand when we configure both lanes of SerDes3 as USB, USB3.0 starts working but only in high-speed mode?

Later we created a HW patch to connect USB interface directly to SerDes3 lane1, and USB still would not work in super-speed mode.

Is it because USB3.0 requires both lanes to work properly?

Please let us know which of our conclusions are correct, and if there is something else we are missing here.

Thank you for your support!

Uros

  • Uros, 

    "Figure 12-1955. SERDES3 Overview" in Section 12.2.5.1 may give you a better view of the SERDES3 muxing. The diagram shows accurate SERDES muxing of the SERDES3 IP, where only one of the following combinations are allowed:

    1. Both Lane 0 and Lane 1 are occupied by USB0, when USB0 needs to support Type C connectors (SERDESs support either way of plugging), or, 

    2. Both lanes used by PCIe0, where PCIe0 is configured as 2-lane port, or, 

    3. Lane 0 used by PCIe0, and Lane 1 used by USB0. In this case, USB3 do support Superspeed, but, it will not support Type C connectors. Therefore, only regular Type A connector can be supported. 

    In your case, you tested PCIe works with both lanes, but USB failed with either Lane1 or Lane0+1 configuration. This can be debugged by verifying:

    1. USB0+Lane1 in USB 3 mode should work, regardless of Lane0, or, 

    2. USB0+ (SERDES3 in USB 3.1 type C mode) should work. 

    In either case, SERDES shall be configured in consistence with the controllers. 

    Let me know if these notes helps. 

    regards

    Jian