On 12/19/10 11:22, Sergey Vlasov wrote:
However, the kernel now has internal support for the Cypress ATACB
protocol - the ums-cypress.ko module, which attaches to CY7C68300 and
CY7C68310 bridges instead of the standard usb-storage module,
translates standard ATA_12 and ATA_16 SCSI commands to Cypress ATACB
commands, and implementing this translation at the kernel level
ensures that no other command can be sent to the device between the
two ATACB commands. The only problem is that the device ID list
(drivers/usb/storage/unusual_cypress.h) does not contain the vendor
and product IDs for your device:
Bus 002 Device 004: ID 14cd:6116 Super Top
Adding an entry for your device to that file and recompiling usb
storage modules should make the ums-cypress module handle that USB-ATA
bridge; then you should use "-d sat" instead of "-d usbcypress" to use
the in-kernel translation code.
On Sat, Dec 18, 2010 at 06:45:50PM +0100, Richard Schütz wrote:
NOTE: This is reproducible with another USB ATA bridge which supports
SAT (smartctl -d sat), too!
This, however, looks like a completely different problem - the SAT
protocol does not need back-to-back commands, everything is done with
a single command which should not conflict with other commands issued
before or after it. Please provide the usbmon trace for the error
with "-d sat" too.
You were bang on! Patching the drivers and using the kernel translation
fixes the problem. I can transmit data and use "smartctl -d sat"
simultaneously without errors.
The cause for the problem with my other external drive must be a
different one then.
More details on that:
lsusb -v:
Bus 002 Device 020: ID 1e68:001b TrekStor GmbH & Co. KG DataStation maxi g.u
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1e68 TrekStor GmbH & Co. KG
idProduct 0x001b DataStation maxi g.u
bcdDevice 0.00
iManufacturer 1 JMicron
iProduct 11 TrekStor DS maxi g.u
iSerial 3 200811130EB5
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 USB Mass Storage
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 (Zip)
iInterface 6 MSC Bulk-Only Transfer
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
can't get debug descriptor: Connection timed out
Device Status: 0xff01
Self Powered
It looks like there's a JMicron chip inside, but "smartctl -d
usbjmicron" fails. Reading data from the drive and querying SMART with
"smartctl -d sat" works without problem. Writing data and then querying
SMART results in errors.
kernel errors: http://richard.qasl.de/kernel.log
usbmon trace: http://richard.qasl.de/2.mon.out
--
Regards,
Richard Schütz
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html