Hi All:
Our carrier board has three USB3.0 type A port.
I follow the Jetson/TX2 USB - eLinux.org instructions. this is what i have done as below:
1.modify ODMDATA to 0x7090000 to use config#4 USB lane mapping.
2.comment out
[ 0.142498] node /plugin-manager/fragment-500-pcie-config match with board >=3310-1000-500
[ 0.142936] node /plugin-manager/fragment-500-xusb-config match with board >=3310-1000-500
[ 0.143213] node /plugin-manager/fragment-500-e3325-pcie match with board >=3310-1000-500
3.change power tree
Change vbus-2-supply from vdd_usb2_5v to battery_reg. The modifications are as follows:
pinctrl@3520000 {
vbus-0-supply = <&vdd_usb0_5v>;
vbus-1-supply = <&vdd_usb1_5v>;
- vbus-2-supply = <&vdd_usb2_5v>;
+ vbus-2-supply = <&battery_reg>;
vbus-3-supply = <&battery_reg>;
vddio-hsic-supply = <&battery_reg>;
avdd_usb-supply = <&spmic_sd3>;
vclamp_usb-supply = <&spmic_sd2>;
avdd_pll_erefeut-supply = <&spmic_sd2>;
};
I try to modify kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts file to enable USB3.0 for three of them, and get the following result.
4.change device tree
hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts.
usb_cd {
status = "okay";
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>;
phy-names = "otg-phy";
};
xotg {
status = "okay";
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>;
phy-names = "otg-usb2";
};
xudc@3550000 {
status = "okay";
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
phy-names = "usb2", "usb3";
emc-frequency = <150000000>;
};
pcie-controller@10003000 {
pci@1,0 {
nvidia,num-lanes = <1>;
nvidia,disable-clock-request;
status = "okay";
};
pci@2,0 {
nvidia,num-lanes = <1>;
status = "okay";
};
pci@3,0 {
nvidia,num-lanes = <1>;
status = "disabled";
};
};
xhci@3530000 {
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(2)>;
phy-names = "utmi-0", "utmi-1","utmi-2", "usb3-0", "usb3-1", "usb3-2";
};
pinctrl@3520000 {
pinmux {
usb2-micro {
nvidia,lanes = "otg-0";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
};
usb3-micro {
nvidia,lanes = "usb3-0";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
};
usb2-1 {
nvidia,lanes = "otg-1";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
};
usb2-2 {
nvidia,lanes = "otg-2";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
};
usb3-1 {
nvidia,lanes = "usb3-1";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
};
usb3-2 {
nvidia,lanes = "usb3-2";
nvidia,function = "xusb";
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
};
};
};
then i flash the dtb to target board
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk1pl
then i use the command dmesg | grep usb
[ 0.301135] usbcore: registered new interface driver usbfs
[ 0.301194] usbcore: registered new interface driver hub
[ 0.301307] usbcore: registered new device driver usb
[ 0.360197] vdd-usb0-5v: 5000 mV
[ 0.360367] vdd-usb1-5v: 5000 mV
[ 2.616491] usbcore: registered new interface driver r8152
[ 2.616523] usbcore: registered new interface driver asix
[ 2.616555] usbcore: registered new interface driver ax88179_178a
[ 2.616579] usbcore: registered new interface driver cdc_ether
[ 2.616613] usbcore: registered new interface driver smsc75xx
[ 2.616638] usbcore: registered new interface driver net1080
[ 2.616684] usbcore: registered new interface driver cdc_subset
[ 2.616711] usbcore: registered new interface driver zaurus
[ 2.616753] usbcore: registered new interface driver cdc_ncm
[ 2.617109] tegra-xotg xotg: usb2 phy is not available yet
[ 2.617879] usbcore: registered new interface driver cdc_acm
[ 2.617923] usbcore: registered new interface driver usb-storage
[ 2.617978] usbcore: registered new interface driver usbserial
[ 2.618001] usbcore: registered new interface driver cp210x
[ 2.618021] usbserial: USB Serial support registered for cp210x
[ 2.618044] usbcore: registered new interface driver ftdi_sio
[ 2.618064] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 2.618087] usbcore: registered new interface driver option
[ 2.618104] usbserial: USB Serial support registered for GSM modem (1-port)
[ 2.618129] usbcore: registered new interface driver pl2303
[ 2.618145] usbserial: USB Serial support registered for pl2303
[ 2.618397] tegra-usb-cd usb_cd: otg phy is not available yet
[ 2.620765] tegra-xudc-new 3550000.xudc: usb3 phy is not available yet
[ 2.756959] usbcore: registered new interface driver gspca_zc3xx
[ 2.766088] usbcore: registered new interface driver usbhid
[ 2.766089] usbhid: USB HID core driver
[ 4.199515] tegra186-padctl 3520000.pinctrl: invalid group "usb3-0" for function "xusb"
[ 4.208476] tegra186-padctl 3520000.pinctrl: invalid group "usb3-1" for function "xusb"
[ 4.217408] tegra186-padctl 3520000.pinctrl: invalid group "usb3-2" for function "xusb"
[ 4.948970] xhci-tegra 3530000.xhci: Direct firmware load for tegra18x_xusb_firmware failed with error -2
[ 5.047632] vdd-usb0-5v: disabling
[ 5.047634] vdd-usb1-5v: disabling
[ 7.701666] usb0: HOST MAC 5a:d9:d3:3f:e4:72
[ 7.706692] usb0: MAC 9a:d2:87:39:81:f8
[ 7.711566] usb1: HOST MAC 4e:7c:f6:38:e5:ef
[ 7.716552] usb1: MAC aa:8e:4c:f0:87:60
[ 7.874932] device usb0 entered promiscuous mode
[ 7.884752] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 7.898182] device usb1 entered promiscuous mode
[ 7.921922] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[ 7.921928] l4tbr0: port 2(usb1) entered forwarding state
[ 7.921943] l4tbr0: port 2(usb1) entered forwarding state
[ 7.923766] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 7.923769] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 7.923771] usb usb1: Product: xHCI Host Controller
[ 7.923773] usb usb1: Manufacturer: Linux 4.4.38 xhci-hcd
[ 7.923774] usb usb1: SerialNumber: 3530000.xhci
[ 7.940971] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 7.940974] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 7.940976] usb usb2: Product: xHCI Host Controller
[ 7.940978] usb usb2: Manufacturer: Linux 4.4.38 xhci-hcd
[ 7.940979] usb usb2: SerialNumber: 3530000.xhci
[ 8.704827] l4tbr0: port 2(usb1) entered disabled state
just one usb 3.0 is work now.
can anyone give me some advice?
thanks a lot.