USB SS1 on superspeed mode negotiation (custom carrier)

Hi,

I have custom carrier board which uses USB3 SS1 port from pins d42,d43,g42,g43 of TX1 for SS1, and b42,b43 for USB2 DP and DN in the same USB 3 type A connector. The problem is, when i plug a usb 3 camera to that connector, it negotiates as high speed (USB2) rather than super speed (USB3). Anybody succeeded to run USBSS1 in superspeed mode?

My devicetree is as follows: (same as 24.2 revision)

xusb_pad_ctl: xusb_padctl { /* Put common control config here */
	nvidia,ss_portmap = <0x21>;
	nvidia,lane_owner = <0xff56>; /* Use 0xF to disable lane assign */
	nvidia,lane-map = <0x14>;
	nvidia,enable-sata-port;
	status = "okay";
};

xusb@70090000 {
	/* nvidia,uses_external_pmic;
	/* nvidia,gpio_controls_muxed_ss_lanes; */
	nvidia,gpio_ss1_sata = <0>;
	nvidia,ulpicap = <0>; /* No ulpi support. can we remove */
	nvidia,portmap = <0x0e03>;
	nvidia,common_padctl = <&xusb_pad_ctl>;
	status = "okay";
};

As far as i understand, it enables the SS1 in nvidia,portmap = <0x0e03>; and allocates the lane in nvidia,lane_owner = <0xff56>. But it still can not negotiate as a superspeed port.

Any thoughts?

BR,

The dmesg xhci and usb related lines are: (the 5000M is the SS0, and the 480M is the SS1)

ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/5p, 480M

ubuntu@tegra-ubuntu:~$ cat A.txt | grep xhci
[ 4.914341] tegra-xhci tegra-xhci: num_hsic_port 0
[ 4.933449] tegra-xhci tegra-xhci: Firmware timestamp: 2016-06-16 13:21:43 UTC, Version: 50.16 release, Falcon state 0x20
[ 4.959083] tegra-xhci tegra-xhci: Nvidia xHCI Host Controller
[ 4.966001] tegra-xhci tegra-xhci: new USB bus registered, assigned bus number 1
[ 4.994390] tegra-xhci tegra-xhci: irq 71, io mem 0x70090000
[ 5.048759] usb usb1: Manufacturer: Linux 3.10.96-tegra tegra-xhci
[ 5.066805] usb usb1: SerialNumber: tegra-xhci
[ 5.073029] xHCI xhci_add_endpoint called for root hub
[ 5.073037] xHCI xhci_check_bandwidth called for root hub
[ 5.160717] tegra-xhci tegra-xhci: Nvidia xHCI Host Controller
[ 5.167870] tegra-xhci tegra-xhci: new USB bus registered, assigned bus number 2
[ 5.178011] usb usb2: Manufacturer: Linux 3.10.96-tegra tegra-xhci
[ 5.178015] usb usb2: SerialNumber: tegra-xhci
[ 5.221257] xHCI xhci_add_endpoint called for root hub
[ 5.221259] xHCI xhci_check_bandwidth called for root hub
[ 5.654576] usb 2-1: new SuperSpeed USB device number 2 using tegra-xhci
[ 5.942825] usb 2-1: reset SuperSpeed USB device number 2 using tegra-xhci

ubuntu@tegra-ubuntu:~$ cat A.txt | grep usb
[ 4.669586] usbcore: registered new interface driver xpad
[ 4.669609] usbcore: registered new interface driver usb_acecad
[ 4.669632] usbcore: registered new interface driver aiptek
[ 4.669653] usbcore: registered new interface driver gtco
[ 4.669678] usbcore: registered new interface driver hanwang
[ 4.669705] usbcore: registered new interface driver kbtab
[ 4.669727] usbcore: registered new interface driver wacom
[ 5.001172] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 5.021980] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.041907] usb usb1: Product: Nvidia xHCI Host Controller
[ 5.048759] usb usb1: Manufacturer: Linux 3.10.96-tegra tegra-xhci
[ 5.066805] usb usb1: SerialNumber: tegra-xhci
[ 5.177996] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 5.178002] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.178007] usb usb2: Product: Nvidia xHCI Host Controller
[ 5.178011] usb usb2: Manufacturer: Linux 3.10.96-tegra tegra-xhci
[ 5.178015] usb usb2: SerialNumber: tegra-xhci
[ 5.252276] usbcore: registered new interface driver uvcvideo
[ 5.654576] usb 2-1: new SuperSpeed USB device number 2 using tegra-xhci
[ 5.758444] usb 2-1: New USB device found, idVendor=0955, idProduct=09ff
[ 5.758450] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ 5.758454] usb 2-1: Product: USB 10/100/1000 LAN
[ 5.758458] usb 2-1: Manufacturer: Nvidia
[ 5.758461] usb 2-1: SerialNumber: 000001000000
[ 5.942825] usb 2-1: reset SuperSpeed USB device number 2 using tegra-xhci
[ 6.015601] usbcore: registered new interface driver usbhid
[ 6.022910] usbhid: USB HID core driver
[ 6.334059] usbcore: registered new interface driver snd-usb-audio
[ 7.886123] usb-vbus3: disabling
[ 7.890491] usb-vbus1: disabling

ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/5p, 480M

Hi bm2017,
The following is an example to enable usb 3.0 on USB_SS0 and PEX1

file: arch/arm64/boot/dts/tegra210-jetson-cv-base-p2597-2180-a00.dts

xusb_pad_ctl: xusb_padctl { /* Put common control config here */
nvidia,ss_portmap = <0x21>;
nvidia,lane_owner = <0xff56>; —> <0xf056>
nvidia,lane-map = <0x14>; --><0x04>
nvidia,enable-sata-port;
status = “okay”;
};

xusb@70090000 {
/* nvidia,uses_external_pmic;
/* nvidia,gpio_controls_muxed_ss_lanes; /
nvidia,gpio_ss1_sata = <0>;
nvidia,ulpicap = <0>; /
No ulpi support. can we remove */
nvidia,portmap = <0x0e03>; --><0x0e07>
nvidia,common_padctl = <&xusb_pad_ctl>;
status = “okay”;
};

For your case, please refer to [Tegra_Linux_Driver_Package_Documents_R24.2.1 → Start_L4T_Docs.html → Downloads → Platform Adaptation and Bring-Up Guide (PDF)]
https://developer.nvidia.com/embedded/dlc/l4t-documentation-24-2-1