Re: [RFC 0/5] usbfs: Add support for bulk streams

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 08/22/2013 12:54 AM, Sarah Sharp wrote:
On Thu, Aug 15, 2013 at 10:33:42PM +0200, Hans de Goede wrote:
Hi,

On 08/15/2013 12:42 PM, Hans de Goede wrote:

<snip>

What device did you find?  I have yet to see a shipping device with
streams...

I don't know about streams, I'm hoping that having a uasp device means it will
also use streams. So far I've been unable to get my hands on anything doing uasp,
but it seems the tide is turning and now I've found multiple. Now lets hope that:
1) They really support uasp 2) they use streams (not sure if that is optional
or mandatory with uasp).

This is the one I've ordered:

http://www.amazon.co.uk/Anker%C2%AE-Uspeed-Enclosure-2-5-Inch-Support/dp/B005B5NLZ0/

Correction, this one just arrived today and it despite its product
description claiming it does, it does *not* support uasp.


This one also looks nice, and plugable is known to be a Linux friendly company,
and they should be available in the US:

http://www.amazon.co.uk/Plugable-Lay-Flat-Docking-Station-ASM1053E/dp/B00D399JU2

I've ordered this one now ...

I just ordered that one as well, and it looks like it doesn't have UAS
exposed, even though the descriptors mention it:

<snip>

> I wonder if this needs a vendor specific command to disconnect and
> reconnect in UAS mode?  Or perhaps a firmware blob?  I'll have to
> connect it under Windows with a USB bus analyzer and see what the driver
> does.

Mine arrived yesterday and it does have UAS support (as alternate
setting 1 for interface 0) in its descriptors, without needing any special
commands.

On a hunch I tried to reproduce your experience with my plugable dock,
and if I turn it on without a harddisk in there it does not advertise
uasp either, so likely it only advertises uasp if the harddisk is
tcq capable (or some such), and without a harddisk it cannot determine
that ...

I wrote a small libusb program to get the super speed endpoint companion
descriptors, and it can do up to 4 bulk streams on the uas data endpoints,
so it seems like a perfect device to test uasp and bulk streams with.

BTW we really ought to extend lsusb to list the number of streams an
endpoint can handle in the endpoint info it prints with -v.

I can load the Linux uas driver, after which I hit:
https://bugzilla.kernel.org/show_bug.cgi?id=51031

So I'm happy to hear you've one too, I hope it will do uasp once you
insert a harddisk, because then hopefully you can fix that bug :)

If inserting a harddisk fails, ASMedia controllers have upgradable firmware inside
them, so the first thing to try and get uasp working on your model is to try
the firmware upgrade:
http://plugable.com/2013/04/22/usb3-sata-uasp1-sleep-and-large-volume-firmware-update

Note I did not need to do this, but judging from the descriptors you do seem to have
slightly different firmware, yours has a manufacturer string of "ASM1053E", where
as mine has a manufacturer string of "Plugable". I've attached my full descriptors
(from when a harddisk is inserted into the dock).

If that does not work I guess you should contact plugable about this, as
said before various people in the FOSS community have good experience with them,
they are quite FOSS / Linux friendly.

Regards,

Hans
Bus 007 Device 003: ID 174c:55aa ASMedia Technology Inc. ASMedia 2105 SATA bridge
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x55aa ASMedia 2105 SATA bridge
  bcdDevice            1.00
  iManufacturer           2 Plugable
  iProduct                3 USB3-SATA-UASP1
  iSerial                 1 000000000015
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               36mA
    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             16
        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             16
        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             16
        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)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0001
  Self Powered

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux