Enabling USB 3.0 on different port - TK1

Hi ,

I have a custom board which is almost similar to Jetson and I want to use USB3.0 in it. In Jetson USB2 port 2 and USB3 port 0 together are used for xUSB controller. In our custom board we want to use USB2 Port 0 and USB3 port 0 as USB3.0 .
After going through TRM i understood that we have to modify the PADCTL registers to use USB2 port 0 for USB3 controller. I have modified XUSB_PADCTL_SS_PORT_MAP_0 to 0x70 to use USB2 port 0 and USB3 port 0 but i am not able to detect as USB3.0 . What all the registers need to be taken care ? Is there anything i am missing. Any help would be really appreciated.

Thanks in advance

On Jetson I found enabling USB3 on the full-size A connector works as expected, but there seems to be a bug in sysfs and lsusb reporting. The result is that full bandwidth and ability for USB3 works when under heavy stress testing, but lsusb and sysfs will all incorrectly claim this goes to the micro A/B port. I’m not positive with regard to what is needed on the other ports for custom hardware, but consider testing for actual bandwidth even if sysfs and lsusb say your expected port is running only at USB2 speeds…you may have succeeded without knowing. So far it seems one of the best tests is the Kinect V2 which has multiple camera streams.

What have you used so far for determining that the port did not reach USB3 speeds?

Hi ,

I have connected a camera module. In Jetson it streams with 1280X740 pixels . But in custom board it streams only in VGA mode. Also i see that it is using xHCI controller but detected as 2.0 root hub.
Here are the logs when i run lsusb command. Refer to BUS 3.

ubuntu@tegra-ubuntu:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 04b4:00c3 Cypress Semiconductor Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/2p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/6p, 480M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M

Also i have enabled xusb_dbg logs and could see that the only difference is “tegra_xhci_process_mbox_message respond fw message 0x9000000 with ACK” , which i don’t get in case of custom board. Will this cause any issue?

Attaching logs for reference.

Hi ,

I have connected a camera module. In Jetson it streams with 1280X740 pixels . But in custom board it streams only in VGA mode. Also i see that it is using xHCI controller but detected as 2.0 root hub.
Here are the logs when i run lsusb command. Refer to BUS 3.

ubuntu@tegra-ubuntu:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 04b4:00c3 Cypress Semiconductor Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/2p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/6p, 480M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M

Also i have enabled xusb_dbg logs and could see that the only difference is “tegra_xhci_process_mbox_message respond fw message 0x9000000 with ACK” , which i don’t get in case of custom board. Will this cause any issue?

Attaching logs for reference.

Hi ,

I have connected a camera module. In Jetson it streams with 1280X740 pixels . But in custom board it streams only in VGA mode. Also i see that it is using xHCI controller but detected as 2.0 root hub.
Here are the logs when i run lsusb command. Refer to BUS 3.

ubuntu@tegra-ubuntu:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 04b4:00c3 Cypress Semiconductor Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/2p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/6p, 480M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M

Also i have enabled xusb_dbg logs and could see that the only difference is “tegra_xhci_process_mbox_message respond fw message 0x9000000 with ACK” , which i don’t get in case of custom board. Will this cause any issue?

Attaching logs for reference.

Debug_logs_USB3.txt (60.4 KB)