You are not logged in.

#1 2016-01-15 19:03:17

belette
Member
Registered: 2014-11-17
Posts: 121

[SOLVED] How to check UASP support?

Hi,

Is there a way to check that the controler supports UASP?
I am about to buy an external hard drive with UASP enabled.
Many thanks

this is my lsusb -v :

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            4.03
  iManufacturer           3 Linux 4.3.3-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0
Hub Descriptor:
  bLength              12
  bDescriptorType      42
  nNbrPorts             4
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  bHubDecLat          0.0 micro seconds
  wHubDelay             0 nano seconds
  DeviceRemovable    0x00
 Hub Port Status:
   Port 1: 0000.0263 5Gbps power suspend enable connect
   Port 2: 0000.02a0 5Gbps power Rx.Detect
   Port 3: 0000.02a0 5Gbps power Rx.Detect
   Port 4: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           15
  bNumDeviceCaps          1
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x0008
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   3
      Lowest fully-functional device speed is SuperSpeed (5Gbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         512 micro seconds

my lsmod

lsmod | grep uas
uas                    24576  0
usb_storage          61440  1 uas
scsi_mod              151552  4 uas,usb_storage,libata,sd_mod
usbcore               196608  11 uas,btusb,snd_usb_audio,usb_storage,usbserial,snd_usbmidi_lib,ehci_hcd,ehci_pci,usbhid,xhci_hcd,xhci_pci

is it enough if I see UAS in lsmod ? or does that only means it is load on my kernel but not 100% confirmation it would work?

Last edited by belette (2016-01-23 17:08:39)

Offline

#2 2016-01-15 21:27:16

tom.ty89
Member
Registered: 2012-11-15
Posts: 896

Re: [SOLVED] How to check UASP support?

I think the best way is to check the spec of your motherboard...

Offline

#3 2016-01-15 22:12:30

belette
Member
Registered: 2014-11-17
Posts: 121

Re: [SOLVED] How to check UASP support?

thanks
the problem is that it is a very specific hardware (fanless pc) so not easy to find the specs..

Offline

#4 2016-01-16 06:13:22

severach
Member
Registered: 2015-05-23
Posts: 192

Re: [SOLVED] How to check UASP support?

Product: Plugable USB3-SATA-UASP1 Lay Flat Docking Station
Chip: Asmedia ASM1153

In Windows, ensure that the drive in device manager says "SCSI Device" instead of "USB Device". In Linux, look for Driver=uas instead of Driver=usb-storage. Alas my 32GB Sandisk Extreme does not support uas.

# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 5: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 6: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 004: ID 0781:5580 SanDisk Corp. SDCZ80 Flash Drive
Bus 004 Device 003: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3 Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3 Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
...
00:1f.0 ISA bridge: Intel Corporation C226 Series Chipset Family Server Advanced SKU LPC Controller (rev 04)
...

These are the platforms I've tested so far.

Linux enables uas on: Intel 8 Series USB 3, Intel 7 Series USB 3, Intel 7 Series USB 2, NEC/Rensas uPD720200 USB 3, NEC/Rensas uPD720201 USB 3, Intel i965 USB 2, Expresscard 54 NEC/Rensas uPD720202
Linux avoids uas on: Asmedia ASM1042
  uas-detect.h UAS requires streams, disabled on the ASM1042. http://www.spinics.net/lists/linux-usb/msg116147.html

Windows enables uas on: Intel 6 series USB 2, NEC/Rensas uPD720200 USB 3, NEC/Rensas uPD720201 USB 3
Windows avoids uas on: Asmedia ASM1042

Windows and Linux enable UAS on any USB controller that isn't blacklisted. The Asmedia ASM1042 was the only chip for which Windows 7 support could be found and is now blacklisted by all OS due to chip bugs so Windows 7 does not support UASP.

To get UASP you need 3 components.
OS Support: Windows 8, Windows 10, Linux
USB controller support: Any USB 2 or 3+ interface that doesn't have UASP blacklisted.
UASP ready peripherals: UASP standards solidified near the end of USB 3.0 development so most USB 3.0 storage products are not UASP compatible. Some buggy chips were produced so some products claiming UASP support have been blacklisted. Hopefully most USB 3.1 products will include UASP support.

Last edited by severach (2016-01-16 06:14:08)

Offline

#5 2016-01-16 06:30:26

tom.ty89
Member
Registered: 2012-11-15
Posts: 896

Re: [SOLVED] How to check UASP support?

I just wonder if all 7 series or above support it: https://en.wikipedia.org/wiki/USB_Attac … re_support

Offline

#6 2016-01-17 14:12:52

belette
Member
Registered: 2014-11-17
Posts: 121

Re: [SOLVED] How to check UASP support?

thanks severach

It is like we have the same controler? (we have the same ID : 1d6b:0003) and your enabled UAS device is connected to Port 5 under BUS 04 (your USB3.0 controler)

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 5: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Is is too bad I have a Sandisk as well but I think UAS is not activaded on this one :

Bus 002 Device 013: ID 0781:5588 SanDisk Corp. 

so I guess if my USB device I will purchas has UASP then I don't think I would have any issue, what do you think?
many thanks for your help

Offline

#7 2016-01-17 14:42:13

tom.ty89
Member
Registered: 2012-11-15
Posts: 896

Re: [SOLVED] How to check UASP support?

lsusb -vvv -d 0781:5588

If it support UASP it will have Interface Descriptor with "bInterfaceProtocol 98" (in addition to one with "bInterfaceProtocol 80 Bulk-Only"). This is my UASP SATA adapter (http://www.amazon.com/StarTech-SATA-Dri … B00HJZJI84):

[tom@localhost ~]$ lsusb -v -d 174c:55aa

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x55aa ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
  bcdDevice            1.00
  iManufacturer           2 
  iProduct                3 
  iSerial                 1 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    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     0x81  EP 1 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     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-out pipe (0x04)
      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
        Status pipe (0x02)
      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               0
        Command pipe (0x01)
[tom@localhost ~]$ 

By the way I wonder how many thumb drives / portable HDDs on the market support UASP anyway. Mostly it's those SATA adapter that supports it.

P.S. I wonder if the vendorID/productID of the root hub really means anything.

Last edited by tom.ty89 (2016-01-17 14:43:44)

Offline

#8 2016-01-17 14:57:06

belette
Member
Registered: 2014-11-17
Posts: 121

Re: [SOLVED] How to check UASP support?

thanks tom!

so no way to know if my controller would support it on his side? (I know for the one I am going to buy that it supports so no probleme on this side : http://www.raidon.com.tw/RAIDON2013/RAI … 0-b3.html)
My issue is more on my controler side (ID 1d6b:0003 Linux Foundation 3.0 root hub) where I have no cloue if it would support it..

Offline

#9 2016-01-17 16:27:06

tom.ty89
Member
Registered: 2012-11-15
Posts: 896

Re: [SOLVED] How to check UASP support?

From what I've read, it depends on whether the motherboard's vendor implement it, instead of depending on the model of the PCH chip or so. But there doesn't seem to be much source about it so I am not sure if it's true.

My point is, does it matter much anyway? I mean, are you struggling on whether to buy a cheaper model of the device which does not support UASP? If not then, there isn't much to worry, coz UASP devices works on host controller that does not support UASP.

Offline

#10 2016-01-17 16:51:23

severach
Member
Registered: 2015-05-23
Posts: 192

Re: [SOLVED] How to check UASP support?

The Linux root hub is a generic device. My Asus P8Z77-V LK board has two of them.

# lsusb
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
# lspci
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
07:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller

The Intel controller supports UASP. The Asmedia does not.

It's mostly nothing that supports UASP, but of all the nothing, it's the USB SATA controllers that we have the most support for. There are some Sandisk Extreme CZ80 that have it and the new USB pocket SSD are also supposed to.

Last edited by severach (2016-01-18 12:02:29)

Offline

#11 2016-01-17 17:23:53

tom.ty89
Member
Registered: 2012-11-15
Posts: 896

Re: [SOLVED] How to check UASP support?

Only A PORTION (if any) of SanDisk CZ80 supports it...I've got two, one 32GB, and one 16GB which was bought later. Neither of them supports UASP. Not mention that SanDisk never marketed it as "UASP flash drive" anyway.

severach wrote:

The Intel controller supports UASP. The Asmedia does not.

Do you have concrete docs which shows that these are universally true?

Last edited by tom.ty89 (2016-01-17 17:30:12)

Offline

#12 2016-01-23 16:44:32

belette
Member
Registered: 2014-11-17
Posts: 121

Re: [SOLVED] How to check UASP support?

Hi,

Just to give you some news as I have received my unit and good news it is working through UAS smile

lsusb -v -d 152d:9561
      bInterfaceProtocol     80 Bulk-Only
      bInterfaceProtocol     98 

lsusb -t
 Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M

many thanks again for your help!
fyi, bandwitdh is very high but I am still not sure where the bottleneck is! I have been able to reach around 3Gbit/s on one disk (RAID1) and 3.3Gbit/s on two disks (RAID 0)

Offline

Board footer

Powered by FluxBB