Hello again,
I’ve been playing around with device tree configuration but have been unable to get USB 3.0 to work through our connector. USB 2.0 seems to continue to work though.
We have connected the following TX1 SOM pins to the usb3 physical connector, using the “Jetson TX1 Pin Name” from Jetson_TX1_Generic_Customer_Pinmux spreadsheet:
F43, USB_SS0_RX+
F44, USB_SS0_RX-
C43, USB_SS0_TX+
C44, USB_SS0_TX-
A36, USB0_OTG_ID
B39, USB0_D
B40, USB0_D-
A17, USB0_EN_OC
We are basing our kernel configuration on that of the jetson TX1 devkit and so I think the relevent device tree file for us is tegra210-jetson-cv-base-p2597-2180-a00.dts (which is included by tegra210-jetson-tx1-p2597-2180-a01-devkit.dts).
When I make changes to this file and then inspect the contents of /proc/device-tree I can see the values match my changes.
Based on you suggestion to:
I’ve made the following changes:
tegra210-jetson-cv-base-p2597-2180-a00.dts:504
xudc@700d0000.status="disabled" -> "okay"
tegra210-jetson-cv-base-p2597-2180-a00.dts:510
xotg.status="disabled" -> "okay"
And in my kernel config I have enabled XOTG with:
CONFIG_USB_TEGRA_XOTG=y
I’ve cross-referenced the OEM Product Design Guide, Jetson TX1 Carrier Board Specification, and the Customer Pinmux spreadsheet, and read through this document and I understand the following: When you say “SSP1” this is short for “USB SS Port 1”, which is denoted “USB_SS#1” in the OEM Product Design Guide, and the “Jetson TX1 Pin Names” for this port are USB_SS0_*. Based on our configuration I understand that we have “SSP1” wired to our USB3 connector.
Unfortunately, I’m unable to determine which “USB Port <#>” corresponds to the “Jetson TX1 Pin Names” of USB0_*. I would have guessed this was USBP0, but looking at the device tree, it seems that USBP0 is disabled (since nvidia,portmap=0x0e03), suggesting that these pins are for a different USB “port” (in the device-tree sense, I guess).
Based on which pins we have wired to our connnector, I believe that the nvidia,lane_owner=<0xff56> and nvidia,portmap=<0x0e03> are correct, and that I should just need to change nvidia,ss_portmap. Ive tried the following values: <0x21> (default), <0x01>, and <0x31>.
My understanding is that the Jetson TX1 Devkit default of <0x21> means:
SSP0 + USBP1 = SOM ethernet controller
SSP1 + USBP2 = USB3 connector on the devkit
In all three of my tries the behavior I observe is that a USB 2.0 flash drive will enumerate and mount correctly through a USB 3.0 OTG cable, but a USB 3.0 portable hard drive will not (through the same USB 3.0 OTG cable).
When I plug the USB 3.0 OTG cable in, I can see the following warnings in the terminal:
[ 60.087200] regulator_get() failed for (tegra-ehci.0,usb_vbus), -19
[ 60.095964] usb_phy: failed regulator_get vdd_vbus_usb:-19, inst:0
[ 61.141175] Could not add tegra-ehci.0 to power domain using device tree
And I see the following in the kernel log:
Aug 29 16:14:00 testmachine kernel: [ 60.020390] extcon-gpio-states 1.extcon: Cable state 2
Aug 29 16:14:00 testmachine kernel: [ 60.020594] tegra-xotg xotg.26: extcon_id_notifications():219: USB_ID pin grounded
Aug 29 16:14:00 testmachine kernel: [ 60.077549] otg state changed: SUSPEND --> HOST
Aug 29 16:14:00 testmachine kernel: [ 60.082501] tegra USB phy - inst[0] platform info:
Aug 29 16:14:00 testmachine kernel: [ 60.082609] port_otg: yes
Aug 29 16:14:00 testmachine kernel: [ 60.082678] has_hostpc: yes
Aug 29 16:14:00 testmachine kernel: [ 60.082743] phy_interface: USB_PHY_INTF_UTMI
Aug 29 16:14:00 testmachine kernel: [ 60.082806] op_mode: TEGRA_USB_OPMODE_HOST
Aug 29 16:14:00 testmachine kernel: [ 60.082867] qc2_voltage: 0
Aug 29 16:14:00 testmachine kernel: [ 60.082929] hot_plug: disabled
Aug 29 16:14:00 testmachine kernel: [ 60.082991] remote_wakeup: enabled
Aug 29 16:14:00 testmachine kernel: [ 60.087200] regulator_get() failed for (tegra-ehci.0,usb_vbus), -19
Aug 29 16:14:00 testmachine kernel: [ 60.095964] usb_phy: failed regulator_get vdd_vbus_usb:-19, inst:0
Aug 29 16:14:00 testmachine kernel: [ 60.189473] extcon-gpio-states 1.extcon: Cable state 2
Aug 29 16:14:01 testmachine kernel: [ 61.113362] tegra-ehci tegra-ehci.0: Tegra EHCI Host Controller
Aug 29 16:14:01 testmachine kernel: [ 61.113644] tegra-ehci tegra-ehci.0: new USB bus registered, assigned bus number 1
Aug 29 16:14:01 testmachine kernel: [ 61.115019] tegra-ehci tegra-ehci.0: irq 52, io mem 0x7d000000
Aug 29 16:14:01 testmachine kernel: [ 61.127871] tegra-ehci tegra-ehci.0: USB 2.0 started, EHCI 1.10
Aug 29 16:14:01 testmachine kernel: [ 61.128683] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
Aug 29 16:14:01 testmachine kernel: [ 61.128803] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Aug 29 16:14:01 testmachine kernel: [ 61.128903] usb usb1: Product: Tegra EHCI Host Controller
Aug 29 16:14:01 testmachine kernel: [ 61.128998] usb usb1: Manufacturer: Linux 3.10.96-skydio-24.1-gabb2224-dirty ehci_hcd
Aug 29 16:14:01 testmachine kernel: [ 61.129089] usb usb1: SerialNumber: tegra-ehci.0
Aug 29 16:14:01 testmachine kernel: [ 61.138712] hub 1-0:1.0: USB hub found
Aug 29 16:14:01 testmachine kernel: [ 61.138958] hub 1-0:1.0: 1 port detected
Aug 29 16:14:01 testmachine kernel: [ 61.141175] Could not add tegra-ehci.0 to power domain using device tree
Aug 29 16:14:01 testmachine kernel: [ 61.141307] reg-fixed-sync-voltage 5.regulator: Consumer c1 does not have device name
Aug 29 16:14:01 testmachine kernel: [ 61.142243] platform 5.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.145923] platform 7.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.148849] platform d.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.151623] platform c9.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.155171] platform ca.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.156773] platform cb.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.158719] platform cc.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.160636] platform cd.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.162055] reg-fixed-sync-voltage ce.regulator: Consumer c0 does not have device name
Aug 29 16:14:01 testmachine kernel: [ 61.162328] platform ce.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.163849] platform d1.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.165496] platform d3.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.166977] reg-fixed-sync-voltage 5.regulator: Consumer c1 does not have device name
Aug 29 16:14:01 testmachine kernel: [ 61.167421] platform 5.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.169263] platform 7.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.170968] platform d.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:14:01 testmachine kernel: [ 61.172581] platform c9.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Then I plug in the USB 3.0 hard drive and I see no messages in the kernel log. When I unplug the usb 3.0 hard drive, then plug in the usb 2.0 flash key, I see the following.
Aug 29 16:22:02 testmachine kernel: [ 541.828245] usb 1-1: new high-speed USB device number 2 using tegra-ehci
Aug 29 16:22:02 testmachine kernel: [ 541.880522] usb 1-1: New USB device found, idVendor=0930, idProduct=6545
Aug 29 16:22:02 testmachine kernel: [ 541.880668] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Aug 29 16:22:02 testmachine kernel: [ 541.880780] usb 1-1: Product: DataTraveler 2.0
Aug 29 16:22:02 testmachine kernel: [ 541.880875] usb 1-1: Manufacturer: Kingston
Aug 29 16:22:02 testmachine kernel: [ 541.880970] usb 1-1: SerialNumber: 408D5C16386DB0416953F037
Aug 29 16:22:02 testmachine kernel: [ 541.886571] usb-storage 1-1:1.0: USB Mass Storage device detected
Aug 29 16:22:02 testmachine kernel: [ 541.889683] scsi0 : usb-storage 1-1:1.0
Aug 29 16:22:02 testmachine kernel: [ 541.896237] platform ca.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.901773] platform cb.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.903470] platform cc.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.904934] platform cd.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.906280] reg-fixed-sync-voltage ce.regulator: Consumer c0 does not have device name
Aug 29 16:22:02 testmachine kernel: [ 541.906527] platform ce.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.911079] platform d1.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.912933] platform d3.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.914382] reg-fixed-sync-voltage 5.regulator: Consumer c1 does not have device name
Aug 29 16:22:02 testmachine kernel: [ 541.914759] platform 5.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.916629] platform 7.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.919671] platform d.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.920733] platform c9.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:02 testmachine kernel: [ 541.921749] platform ca.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.895483] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 6
Aug 29 16:22:03 testmachine kernel: [ 542.902444] platform cb.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.904088] sd 0:0:0:0: [sda] 60481536 512-byte logical blocks: (30.9 GB/28.8 GiB)
Aug 29 16:22:03 testmachine kernel: [ 542.905879] platform cc.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.906407] sd 0:0:0:0: [sda] Write Protect is off
Aug 29 16:22:03 testmachine kernel: [ 542.906609] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
Aug 29 16:22:03 testmachine kernel: [ 542.909328] platform cd.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.910181] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Aug 29 16:22:03 testmachine kernel: [ 542.910873] reg-fixed-sync-voltage ce.regulator: Consumer c0 does not have device name
Aug 29 16:22:03 testmachine kernel: [ 542.911958] platform ce.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.914082] platform d1.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.915816] platform d3.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.917207] reg-fixed-sync-voltage 5.regulator: Consumer c1 does not have device name
Aug 29 16:22:03 testmachine kernel: [ 542.917669] platform 5.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.919553] platform 7.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.921339] platform d.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.923148] platform c9.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 542.924681] platform ca.regulator: Driver reg-fixed-sync-voltage requests probe deferral
Aug 29 16:22:03 testmachine kernel: [ 543.037992] sda: sda1
Aug 29 16:22:03 testmachine kernel: [ 543.053023] sd 0:0:0:0: [sda] Attached SCSI removable disk