Tegra xhci issues

Hi ,

We have a NVIDIA custom board , which is similar to Jetson TK1 apart from some changes . We want to enable USB3.0 on it which uses USB3 port 0 and USB2 port 0 for USB3.0. Accordingly i have modified the padctl registers(TRM section 19.13.12.6) to select those ports and usb_port_owner_info = ‘1’ but so far no success is seen.

After googling i have seen that their are some issues in Tegra xHCI and they are using patches. One of the link is as below http://lwn.net/Articles/610475/.

I am using L4T21.1 release. Has anyone faced issues with the xHCI drivers? Does L421.1 require any patches for xHCI. Please note that i am using different ports . In Jetson i am able to use default ports as USB3.0 . Any help would be really appreciated.

Regards ,
Sai

I believe that for USB 3.0 the correct setting is:

usb_port_owner_info=2

Hi Kangalow,

usb_port_owner_info = 2 , selects USB3 port 0 and USB2 port 2. But in our case we want USB3 port 0 and USB2 port 0, hence we selected usb_port_owner_info =1 . Below is the part of code in kernel which does the job

} else if (board_info.board_id == BOARD_PM375) {
if (!(usb_port_owner_info & UTMI1_PORT_OWNER_XUSB))
{
xusb_pdata.portmap &= ~(TEGRA_XUSB_USB2_P0);
}
if (!(usb_port_owner_info & UTMI2_PORT_OWNER_XUSB))
{
xusb_pdata.portmap &= ~(TEGRA_XUSB_USB2_P2 |
TEGRA_XUSB_USB2_P1 | TEGRA_XUSB_SS_P0);
}

This is probably already correct, but just for sanity checks I’d confirm that the controller being used is truly the one controller capable of USB3. That aside, you may have succeeded and just not know it. Here’s part of a thread discussing some USB3 configuration reporting issues:
https://devtalk.nvidia.com/default/topic/811034/embedded-systems/kinect-2-libfreenect2-hw-acceleration-full-performance-obtained/post/4475113/#4475113

You may want to read more of the thread, but the short story is that there seems to be a problem with the system working in USB3 as it should, yet reporting incorrectly that the port is only using USB2 speeds…or reporting the wrong port as USB3. If you have a way to check actual bandwidth life will be simplified.