How to change USB3 port speed to gen1

Hi,

For some reasons that we want to change USB3 port speed from gen2 to gen1.
After adding “nvidia,usb3-gen1-only= <1>” property in tegra194-p3668-common.dtsi,
the USB3 port still runs in 10Gbps.

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M

How can I change USB3 speed?

Hi,
Do you useXavier NX devkit or your own custom board? There is an embedded USB hub on devkit. Not sure if your usecase is to have each port being limited to 5Gbps. Or you have designed your own custom board.

Hi,

We use our own custom board. Our custom board design is similar to Xavier NX devkit that there is a USB hub(Bus2 Dev2) under USB3(Bus2 Dev1).

We are getting usb device losing frequently issue and want to lower USB3 speed from 10Gbps to 5Gbps for testing.

Hi,
Please refer to Xavier Technical Reference Manual. There is description:

9.2.2.1.2 USB 3.1 Ports
USB 3.1 ports support both Generation 1 SuperSpeed USB and Generation 2 SuperSpeedPlus USB 10 Gbps
transfer rates.
Note that due to throughput limitations in the xHCI controller, USB 3.1 port 0 and port 3 are connected to the
same SuperSpeedPlus hub to share 10 Gbps total bandwidth, while USB 3.1 port 1 and port 2 share another 10
Gbps total bandwidth. Note also that in the case of two SuperSpeed devices connected to the same
SuperSpeedPlus hub, due to scheduling policy reasons each SuperSpeed device may not be able sustain the
full SuperSpeed unit bandwidth if the other is device is active.

Xavier does not support this function of limiting bandwidth to certain port. Not sure if the hub supports it. You may check with hub vendor.