Mass storage can be used only via mini-USB2 port and crashes for USB3 port

I have a Seagate USB drive that provides USB3.0 as well as USB2.0 support.
The Specs can be found here: https://www.seagate.com/www-content/datasheets/pdfs/bup-portable-ds1853-2-1512DS1853-3-1608GB-en_GB.pdf

When I connect the drive via Mini-USB (USB2.0) port of the Jetson TX2 DeveloperKit, it works fine. I can mount, read and write files.

But when I connect via USB3.0 port, the Jetson TX2 crashes and has to be rebooted.
Kernel logs reveal:

[  +1,647650] tegra-xusb 3530000.xhci: controller firmware hang

Relevant output from dmesg -H:

[  +0,000002] usb 2-1: Manufacturer: Seagate
[  +0,000002] usb 2-1: SerialNumber: NA9SV9Y8
[  +0,012879] scsi host2: uas
[  +0,002205] scsi 2:0:0:0: Direct-Access     Seagate  BUP BK           0109 PQ: 0 ANSI: 6

...

[  +4,117889] sd 2:0:0:0: [sda] 9767541167 512-byte logical blocks: (5.00 TB/4.55 TiB)
[  +0,008070] sd 2:0:0:0: [sda] 4096-byte physical blocks
[  +0,006115] sd 2:0:0:0: [sda] Write Protect is off
[  +0,004803] sd 2:0:0:0: [sda] Mode Sense: 53 00 00 08
[  +0,000423] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  +1,438506] sd 2:0:0:0: [sda] tag#6 uas_eh_abort_handler 0 uas-tag 7 inflight: CMD IN 
[  +0,000092] sd 2:0:0:0: [sda] tag#6 CDB: opcode=0x88 88 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00
[  +0,001062] sd 2:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD IN 
[  +0,000030] sd 2:0:0:0: [sda] tag#0 CDB: opcode=0x88 88 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00
[  +0,000620] sd 2:0:0:0: [sda] tag#5 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD IN 
[  +0,000025] sd 2:0:0:0: [sda] tag#5 CDB: opcode=0x88 88 00 00 00 00 00 00 00 00 1d 00 00 00 01 00 00
[  +0,000597] sd 2:0:0:0: [sda] tag#4 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD IN 
[  +0,000019] sd 2:0:0:0: [sda] tag#4 CDB: opcode=0x88 88 00 00 00 00 00 00 00 00 1c 00 00 00 01 00 00
[  +0,000581] sd 2:0:0:0: [sda] tag#3 uas_eh_abort_handler 0 uas-tag 4 inflight: CMD IN 
[  +0,000017] sd 2:0:0:0: [sda] tag#3 CDB: opcode=0x88 88 00 00 00 00 00 00 00 00 1b 00 00 00 01 00 00
[  +0,001127] scsi host2: uas_eh_bus_reset_handler start
[  +1,647650] tegra-xusb 3530000.xhci: controller firmware hang
[  +0,005990] tegra-xusb 3530000.xhci: hcd_reinit is disabled or in progress
[  +3,514068] tegra-xusb 3530000.xhci: xHCI host not responding to stop endpoint command.
[  +0,008271] tegra-xusb 3530000.xhci: Assuming host is dying, halting host.
[  +0,069747] tegra-xusb 3530000.xhci: Host not halted after 16000 microseconds.
[  +0,007573] tegra-xusb 3530000.xhci: Non-responsive xHCI host is not halting.
[  +0,007228] tegra-xusb 3530000.xhci: Completing active URBs anyway.
[  +0,006587] usb 2-1: cmd cmplt err -108
[  +0,004013] usb 2-1: cmd cmplt err -108
[  +0,003945] usb 2-1: cmd cmplt err -108
[  +0,003951] usb 2-1: cmd cmplt err -108
[  +0,003977] usb 2-1: cmd cmplt err -2
[  +0,004865] tegra-xusb 3530000.xhci: HC died; cleaning up
[  +0,000665] usb 2-1: Disable of device-initiated U1 failed.
[  +0,000231] usb 2-1: Disable of device-initiated U2 failed.
[  +0,000054] usb 2-1: Could not disable xHCI U2 timeout, bus schedule bandwidth may be impacted.
[  +0,024870] tegra-xusb 3530000.xhci: hcd_reinit is disabled or in progress
[Jul 1 16:23] Watchdog detected hard LOCKUP on cpu 4
[  +0,000187] ------------[ cut here ]------------
...

lsblk lists the drive, but only as sda not as sda1:

lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1          7:1    0    16M  1 loop 
sda            8:0    0   4,6T  0 disk 
mmcblk0      179:0    0  29,1G  0 disk 
├─mmcblk0p1  179:1    0    28G  0 part /
...

sudo lsusb -v outputs:

Bus 002 Device 002: ID 0bc2:ab30 Seagate RSS LLC

and hangs indefinetly.

lsusb -v outputs:

Bus 002 Device 002: ID 0bc2:ab30 Seagate RSS LLC 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x0bc2 Seagate RSS LLC
  idProduct          0xab30 
  bcdDevice            1.09
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              224mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        MaxStreams             32
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               7
        MaxStreams             32
        Data-out pipe (0x04)

...

Can you provide a fix?
I need the faster USB3 connection to allow a higher framerate, the video is stored with.

The accepted answer for https://devtalk.nvidia.com/default/topic/1052174/jetson-tx2/unable-to-mount-sub-connected-dvd-drive-on-jetson-tx2/post/5341072/#5341072 suggests to modify the kernel configuration with:

CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y

How would I modify the kernel configuration?

[url]https://devtalk.nvidia.com/default/topic/1056458/jetson-tx2/usb3-hangs-when-connecting-a-uasp-enabled-portable-drive/[/url] might be the same issue.

I don’t know if any of the above fixes would work for you, but first I’d consider checking if it is a power issue. USB3 mode can draw a lot more power, especially on a drive as it is accessed. Have you tried with an externally powered USB3 HUB?

Please refer to this thread and remember to modify your device ID.

https://devtalk.nvidia.com/default/topic/1056458

It’s definitly not the power consumption. I tried an externally powered USB3 hub with the same result.
I tried with a different Seagate drive (Seagate Expansion 2TB) and it worked without a problem.

I will try as suggested by WayneWWW.

https://devtalk.nvidia.com/default/topic/1056458/jetson-tx2/usb3-hangs-when-connecting-a-uasp-enabled-portable-drive/post/5358637/#5358637

This solved it for me!

To survive a reboot one should add usb_storage.quirks=0bc2:ab30:u to the kernel boot parameters in /boot/extlinux/extlinux.conf:

TIMEOUT 30
DEFAULT primary

MENU TITLE p2771-0000 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 usb_storage.quirks=0bc2:ab30:u