usb/110855: ugen: interrupt in msgs are truncated when buffer is full

Markus Henschel m.henschel at bally-wulff.de
Wed Mar 28 09:42:02 UTC 2007


Hans Petter Selasky schrieb:
> The following reply was made to PR usb/110855; it has been noted by 
> GNATS.
> 
> From: Hans Petter Selasky <hselasky at c2i.net> To: Markus Henschel 
> <m.henschel at bally-wulff.de> Cc: freebsd-usb at freebsd.org, 
> freebsd-gnats-submit at freebsd.org Subject: Re: usb/110855: ugen: 
> interrupt in msgs are truncated when buffer is full Date: Tue, 27 Mar
>  2007 21:33:37 +0200
> 
> On Tuesday 27 March 2007 18:55, Markus Henschel wrote:
>> Hans Petter Selasky schrieb:
>>> On Tuesday 27 March 2007 11:30, Markus Henschel wrote:
>>>> Hans Petter Selasky schrieb:
>>>>> On Monday 26 March 2007 16:13, Markus Henschel wrote:
>>>>>>> Number:         110855 Category:       usb Synopsis: 
>>>>>>> ugen: interrupt in msgs are truncated when buffer is full
>>>>>>>  Confidential:   no Severity:       serious Priority: 
>>>>>>> medium Responsible:    freebsd-usb State:          open 
>>>>>>> Quarter: Keywords: Date-Required: Class: change-request 
>>>>>>> Submitter-Id:   current-users Arrival-Date:   Mon Mar 26 
>>>>>>> 14:20:04 GMT 2007 Closed-Date: Last-Modified: Originator:
>>>>>>>  Markus Henschel Release: 6.2 custom kernel Organization:
>>>>>>> 
>>>>>> 
>>>>>> Bally Wulff Automaten GmbH
>>>>>> 
>>>>>>> Environment:
>>>>>> 
>>>>>> FreeBSD freebsd-1.bally.de 6.2-RELEASE FreeBSD 6.2-RELEASE
>>>>>>  #11: Fri Mar 23 21:28:38 CET 2007 
>>>>>> prog at freebsd-1.bally.de:/usr/obj/usr/src/sys/BALLYWULFF 
>>>>>> i386
>>>>>> 
>>>>>>> Description:
>>>>>> 
>>>>>> We use ugen for some user space drivers. When an interrupt
>>>>>>  in endpoint is used ugen creates a queue that is filled by
>>>>>>  the kernel. The user space driver is responsible for 
>>>>>> reading data from the device file. If this happens too slow
>>>>>>  the queue is full and new msgs arriving from the usb 
>>>>>> device are lost. This behavior is OK.
>>>>>> 
>>>>>> The problem is that the queue is not a multiple of the 
>>>>>> interrupt in endpoints msgs size. So it is possible that 
>>>>>> the last msg in the queue is truncated. This is very hard 
>>>>>> to detect for a user space driver. The data stream seen by
>>>>>>  the user space driver will contain an incomplete msgs 
>>>>>> directly followed by the next message without knowing 
>>>>>> truncation happened (except when using some data corruption
>>>>>>  detection mechanism).
>>>>>> 
>>>>>> It would be much better if ugen would fill the queues of 
>>>>>> interrupt in endpoints until there is no more space for a 
>>>>>> complete msg. This way the user space driver will not loose
>>>>>>  sync with the incoming msgs.
>>>>> 
>>>>> The new USB stack has this fixed already. What I do is that 
>>>>> the USB driver stops polling the interrupt endpoint when the
>>>>>  user-land application does not read data. When the user-land
>>>>>  application has read a packet, the interrupt endpoint is 
>>>>> started again. The only problem is that some devices, like a
>>>>>  Microsoft mouse I have, stops working immediately when its 
>>>>> internal buffer overflows. Bad hardware design. But if your 
>>>>> hardware is not like that, the new ugen, which is part of the
>>>>>  new USB driver, will work great for you.
>>>>> 
>>>>> Also packet alignment is kept between reads: Only one packet
>>>>>  per read.
>>>>> 
>>>>> See:
>>>>> 
>>>>> http://www.turbocat.net/~hselasky/usb4bsd
>>>>> 
>>>>> --HPS
>>>> 
>>>> Thanks,
>>>> 
>>>> I gave it a try and it seems to work fine :-). Could you please
>>>>  explain how reading an interrupt in endpoint works internally
>>>>  with the new ugen? Is there still a buffer that recieves data
>>>>  from the endpoint or is each read request from user land 
>>>> synchronously triggering a read data request on the interrupt 
>>>> endpoint?
>>> 
>>> Yes, there is a buffer, but the buffer is packet-based, and not a
>>>  "ring" based, so you will never get problem with packet 
>>> alignment.
>>> 
>>>> Why isn't O_NONBLOCK working anymore?
>>> 
>>> It is implemented, and it should work. Can you explain more what
>>>  is not working?
>>> 
>>> --HPS
>> 
>> With the old ugen I did something like:
>> 
>> int iDevice=open("/dev/ugen0.4", O_RDONLY); fcntl(iDevice, F_SETFL,
>>  O_NONBLOCK);
> 
> I've just committed a patch for that to the P4 tree. It will be in 
> SVN in not too long. It was just the matter of a missing IOCTL that 
> F_SETFL uses. Usually the following works when you want to set/clear
>  non-blocking mode:
> 
> int t = 1; fcntl(iDevice, FIONBIO, &t)
> 
>> 
>> Now the fcntl call fails. But instead this works and does the same:
>> 
>> 
>> 
>> 
>> int iDevice=open("/dev/ugen0.4", O_RDONLY|O_NONBLOCK);
>> 
>> 
>> I thought the O_NONBLOCK flag was just for the open call itself?!? 
>> Whatever, it does what I need :-)
>> 
>> The only thing that keeps me from using the new usb stack is umass
>>  now. When inserting an usb flash memory stick it is detected and 
>> says umass attached to ii but then it takes ages (more that 30s) 
>> for the device files to become available. A "camcontrol rescan all"
>>  hangs during this time too.Is it possible to use the old umass 
>> with the new stack or just revert umass to an older version from 
>> you like 1.6.1?
> 
> If you use the SVN version, reverting won't help much. Could you turn
>  on debugging: sysctl hw.usb.umass.debug=-1
> 
> And see what is going on when you plug your umass device.
> 
>> 
>> BTW: The performance of the new usb stack is great. umass 
>> throughput with the memory stick nearly increased by 50%!!
> 
> Cool.
> 
> --HPS _______________________________________________ 
> freebsd-usb at freebsd.org mailing list 
> http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe,
>  send any mail to "freebsd-usb-unsubscribe at freebsd.org"
> 
Hi,

here is the dmesg output with hw.usb.umass.debug=-1:

umass0: <JetFlash Mass Storage Device, class 0/0, rev 2.00/1.41, addr 126>
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0: Get Max Lun not supported (USBD_STALLED)
umass0:umass_cam_action: 0:-1:-1:XPT_PATH_INQ:.
umass0:0:0:-1: Attached to scbus0
umass0:umass_cam_rescan: scbus0: scanning for 0:0:-1
umass0:umass_cam_action: 0:-1:-1:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/36b data/18b sense
umass0:umass_bbb_dump_cbw: CBW 1: cmd = 6b (0x120000002400), data = 36b,
lun = 0, dir = in
umass0:umass_attach: Attach finishedumass0:umass_transfer_start:
transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=36

umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 274: sig = 0x28120799 (invalid), tag =
274, res = 134217728, status = 0x8f (<invalid>)
umass0:umass_t_bbb_status_callback: truncating residue from 134217728 to
36 bytes
umass0:umass_t_bbb_status_callback: bad CSW signature 0x28120799 !=
0x53425355
umass0:umass_t_bbb_status_callback: Failed to read CSW:
USBD_NORMAL_COMPLETION, try 0
umass0:umass_transfer_start: transfer index = 5
umass0:umass_transfer_start: transfer index = 8
umass0:umass_t_bbb_status_callback: Failed to read CSW: USBD_TIMEOUT, try 1
umass0:umass_tr_error: transfer error, USBD_TIMEOUT -> reset
umass0:umass_transfer_start: transfer index = 0
umass0:umass_t_bbb_reset1_callback: BBB reset!
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/36b data/18b sense
umass0:umass_transfer_start: transfer index = 1
umass0:umass_transfer_start: transfer index = 2
umass0:umass_transfer_start: transfer index = 3
umass0:umass_bbb_dump_cbw: CBW 2: cmd = 6b (0x120000002400), data = 36b,
lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=36
umass0:umass_transfer_start: transfer index = 5
umass0:umass_transfer_start: transfer index = 8
umass0:umass_t_bbb_status_callback: Failed to read CSW: USBD_TIMEOUT, try 0
umass0:umass_transfer_start: transfer index = 5
umass0:umass_transfer_start: transfer index = 8
umass0:umass_t_bbb_status_callback: Failed to read CSW: USBD_TIMEOUT, try 1
umass0:umass_tr_error: transfer error, USBD_TIMEOUT -> reset
umass0:umass_transfer_start: transfer index = 0
umass0:umass_t_bbb_reset1_callback: BBB reset!
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/36b data/18b sense
umass0:umass_transfer_start: transfer index = 1
umass0:umass_transfer_start: transfer index = 2
umass0:umass_transfer_start: transfer index = 3
umass0:umass_bbb_dump_cbw: CBW 3: cmd = 6b (0x120000002400), data = 36b,
lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=36
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 3: sig = 0x53425355 (valid), tag = 3, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/255b data/18b sense
umass0:umass_bbb_dump_cbw: CBW 4: cmd = 6b (0x12018000ff00), data =
255b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=255
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 4: sig = 0x53425355 (valid), tag = 4, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_SET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x00, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 5: cmd = 6b (0x000000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 5: sig = 0x53425355 (valid), tag = 5, res
= 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 6: cmd = 6b (0x030000002000), data = 32b,
lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 6: sig = 0x53425355 (valid), tag = 6, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 7: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umassX:umass_cam_rescan_callback: xpt0: Rescan succeeded
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 7: sig = 0x53425355 (valid), tag = 7, res
= 0, status = 0x00 (good)
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <JetFlash TS512MJFV30 8.07> Removable Direct Access SCSI-2 device
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
da0: 40.000MB/s transfers
da0: 484MB (991232 512 byte sectors: 64H 32S/T 484C)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 8: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 8: sig = 0x53425355 (valid), tag = 8, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 9: cmd = 6b (0x1e0000000100), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 9: sig = 0x53425355 (valid), tag = 9, res
= 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 10: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 10: sig = 0x53425355 (valid), tag = 10,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 11: cmd = 10b (0x280000000000...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 11: sig = 0x53425355 (valid), tag = 11,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 12: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 12: sig = 0x53425355 (valid), tag = 12,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 13: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 13: sig = 0x53425355 (valid), tag = 13,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 14: cmd = 6b (0x1e0000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 14: sig = 0x53425355 (valid), tag = 14,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 15: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 15: sig = 0x53425355 (valid), tag = 15,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 16: cmd = 6b (0x1e0000000100), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 16: sig = 0x53425355 (valid), tag = 16,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 17: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 17: sig = 0x53425355 (valid), tag = 17,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 18: cmd = 10b (0x280000000001...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 18: sig = 0x53425355 (valid), tag = 18,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 19: cmd = 10b (0x280000000000...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 19: sig = 0x53425355 (valid), tag = 19,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 20: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 20: sig = 0x53425355 (valid), tag = 20,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 21: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 21: sig = 0x53425355 (valid), tag = 21,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 22: cmd = 6b (0x1e0000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 22: sig = 0x53425355 (valid), tag = 22,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 23: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 23: sig = 0x53425355 (valid), tag = 23,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 24: cmd = 6b (0x1e0000000100), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 24: sig = 0x53425355 (valid), tag = 24,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 25: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 25: sig = 0x53425355 (valid), tag = 25,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 26: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 26: sig = 0x53425355 (valid), tag = 26,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 27: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 27: sig = 0x53425355 (valid), tag = 27,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 28: cmd = 6b (0x1e0000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 28: sig = 0x53425355 (valid), tag = 28,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 29: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 29: sig = 0x53425355 (valid), tag = 29,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 30: cmd = 6b (0x1e0000000100), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 30: sig = 0x53425355 (valid), tag = 30,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 31: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 31: sig = 0x53425355 (valid), tag = 31,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 32: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 32: sig = 0x53425355 (valid), tag = 32,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 33: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 33: sig = 0x53425355 (valid), tag = 33,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x1e, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 34: cmd = 6b (0x1e0000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 34: sig = 0x53425355 (valid), tag = 34,
res = 0, status = 0x00 (good)


I tried a memory stick from another manufacturer that worked without
problems. Here is the output for comparison:
umass0: <LG USB DRIVE, class 0/0, rev 2.00/2.00, addr 126>
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0:umass_cam_action: 0:-1:-1:XPT_PATH_INQ:.
umass0:0:0:-1: Attached to scbus0
umass0:umass_cam_rescan: scbus0: scanning for 0:0:-1
umass0:umass_cam_action: 0:-1:-1:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/36b data/18b sense
umass0:umass_bbb_dump_cbw: CBW 1: cmd = 6b (0x120000002400), data = 36b,
lun = 0, dir = in
umass0:umass_attach: Attach finished
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=36
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 1: sig = 0x53425355 (valid), tag = 1, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x12, flags: 0x40, 6b
cmd/255b data/18b sense
umass0:umass_bbb_dump_cbw: CBW 2: cmd = 6b (0x12018000ff00), data =
255b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=255
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 2: sig = 0x53425355 (valid), tag = 2, res
= 219, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_SET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x00, flags: 0xc0, 6b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 3: cmd = 6b (0x000000000000), data = 0b,
lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 3: sig = 0x53425355 (valid), tag = 3, res
= 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 4: cmd = 6b (0x030000002000), data = 32b,
lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 4: sig = 0x53425355 (valid), tag = 4, res
= 14, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 5: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umassX:umass_cam_rescan_callback: xpt0: Rescan succeeded
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 5: sig = 0x53425355 (valid), tag = 5, res
= 0, status = 0x00 (good)
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <  > Fixed Direct Access SCSI-0 device
umass0:umass_cam_action: 0:0:0:XPT_GET_TRAN_SETTINGS:.
umass0:umass_cam_action: 0:0:0:XPT_PATH_INQ:.
da0: 40.000MB/s transfers
da0: 1000MB (2048000 512 byte sectors: 64H 32S/T 1000C)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 6: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 6: sig = 0x53425355 (valid), tag = 6, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 7: cmd = 10b (0x280000000000...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 7: sig = 0x53425355 (valid), tag = 7, res
= 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 8: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 8: sig = 0x53425355 (valid), tag = 8, res
= 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 9: cmd = 6b (0x030000002000), data = 32b,
lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 9: sig = 0x53425355 (valid), tag = 9, res
= 14, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 10: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 10: sig = 0x53425355 (valid), tag = 10,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 11: cmd = 10b (0x280000000001...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 11: sig = 0x53425355 (valid), tag = 11,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x28, flags: 0x40, 10b
cmd/512b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 12: cmd = 10b (0x280000000000...), data =
512b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=512
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 12: sig = 0x53425355 (valid), tag = 12,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 13: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 13: sig = 0x53425355 (valid), tag = 13,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 14: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 14: sig = 0x53425355 (valid), tag = 14,
res = 14, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 15: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 15: sig = 0x53425355 (valid), tag = 15,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 16: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 16: sig = 0x53425355 (valid), tag = 16,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 17: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 17: sig = 0x53425355 (valid), tag = 17,
res = 14, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x25, flags: 0x40, 10b
cmd/8b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 18: cmd = 10b (0x250000000000...), data =
8b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=8
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 18: sig = 0x53425355 (valid), tag = 18,
res = 0, status = 0x00 (good)
umass0:umass_cam_action: 0:0:0:XPT_SCSI_IO: cmd: 0x35, flags: 0xc0, 10b
cmd/0b data/32b sense
umass0:umass_bbb_dump_cbw: CBW 19: cmd = 10b (0x350000000000...), data =
0b, lun = 0, dir = out
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 19: sig = 0x53425355 (valid), tag = 19,
res = 0, status = 0x01 (failed)
umass0:umass_t_bbb_status_callback: Command failed, residue = 0
umass0:umass_cam_cb: Fetching 32 bytes of sense data
umass0:umass_bbb_dump_cbw: CBW 20: cmd = 6b (0x030000002000), data =
32b, lun = 0, dir = in
umass0:umass_transfer_start: transfer index = 4
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=32
umass0:umass_t_bbb_data_read_callback: max_bulk=131072, data_rem=0
umass0:umass_transfer_start: transfer index = 8
umass0:umass_bbb_dump_csw: CSW 20: sig = 0x53425355 (valid), tag = 20,
res = 14, status = 0x00 (good)


Tell me if you need more information.


-- 
Regards,



Markus Henschel
Development

BALLY WULFF Automaten GmbH
Maybachufer 48-51
12045 Berlin
Phone:  +49(30)62002 161
FAX:    +49(30)62002 230
http://www.ballywulff.de


More information about the freebsd-usb mailing list