(adsbygoogle = window.adsbygoogle []).push();To: linux-usb@xxxxxxxxxxxxxxx
Subject: UAS not working with JMS567 based disk enclosure
From: Jack Coulter
Date: Tue, 14 Feb 2017 16:40:14 +1100
Openpgp: id=EF574A09C098980E667AFF3DFD17BB17080D29CF; url= :11371/pks/lookup?op=get&options=mr&search=0xFD17BB17080D29CF
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0
(adsbygoogle = window.adsbygoogle []).push();Hi,I'm using an external multiple-disk enclosure (specifically a HotwayH82-SU3S2), which from lsusb appears to use a JMS567 SATA-USB bridge:> Bus 002 Device 002: ID 152d:0567 JMicron Technology Corp. / JMicron> USA Technology Corp. JMS567 SATA 6Gb/s bridgeAccording to the manufacturer's product sheet [1] for this chip, itsupports the UAS protocol, but when connected to my system (runningkernel 4.9.8), it falls back to the older usb-storage driver:> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M> __ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000MI had a look at uas-detect.h, specifically uas_use_uas_driver, but Ididn't see any of the warning messages within that function printed todmesg when the device is attached. I added some extra dev_warn callsearlier in the function and determined that uas_find_uas_alt_setting isreturning a negative value. This prompted me to look at the output oflsusb -v for this device:> Bus 002 Device 002: ID 152d:0567 JMicron Technology Corp. / JMicron> USA Technology Corp. JMS567 SATA 6Gb/s bridge> Device Descriptor:> bLength 18> bDescriptorType 1> bcdUSB 3.00> bDeviceClass 0> bDeviceSubClass 0> bDeviceProtocol 0> bMaxPacketSize0 9> idVendor 0x152d JMicron Technology Corp. / JMicron USA> Technology Corp.> idProduct 0x0567 JMS567 SATA 6Gb/s bridge> bcdDevice 2.05> iManufacturer 10 JMicron> iProduct 11 USB to ATA/ATAPI Bridge> iSerial 5 152D00539000> bNumConfigurations 1> Configuration Descriptor:> bLength 9> bDescriptorType 2> wTotalLength 44> bNumInterfaces 1> bConfigurationValue 1> iConfiguration 0> bmAttributes 0xc0> Self Powered> MaxPower 2mA> 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> 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> HIRD 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: 0x000d> Self Powered> U1 Enabled> U2 EnabledIt seems that it's lacking the interface descriptor for UAS, when Icompared it to the output from a different enclosure with which UASworks correctly:> Bus 002 Device 092: ID 174c:1351 ASMedia Technology Inc.> Device Descriptor:> bLength 18> bDescriptorType 1> bcdUSB 3.10> bDeviceClass 0> bDeviceSubClass 0> bDeviceProtocol 0> bMaxPacketSize0 9> idVendor 0x174c ASMedia Technology Inc.> idProduct 0x1351> bcdDevice 0.01> 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)What would cause the missing interface descriptor? Looking atunusual_uas.h, I can see this device's USB product id listed with somequirks, but if my understanding is correct, it should still work, andgiven the presence of the exact ID, I imagine that this device is indeedsupported by the current kernel, but I don't understand why it's notworking as it should. Is this a hardware issue with the JMS567-basedenclosure, or is it a kernel issue?[1] regards,JackAttachment:signature.ascDescription: OpenPGP digital signature
Driver Jmicron Usb To Ata Atapi Bridge
2ff7e9595c
Comments