9.0 umass problem
I have a USB compact flash reader-writer which is normally connected to my computer all the time but rarely contains a compact flash card. Here is a snippet from a verbose dmesg with FreeBSD 9.0-RC3: ugen0.5: vendor 0x05e3 at usbus0 umass0: vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.32, addr 5 on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x4101 umass0:2:0:-1: Attached to scbus2 (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 1 0 0 ff 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error (probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0? ... (probe0:umass-sim0:0:0:0): AutoSense failed (probe0:umass-sim0:0:0:0): Error 5, Unretryable error GEOM: new disk da0 pass2 at umass-sim0 bus 0 scbus2 target 0 lun 0 pass2: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device pass2: 1.000MB/s transfers ... (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Error 5, Retries exhausted (da0:umass-sim0:0:0:0): got CAM status 0x4 (da0:umass-sim0:0:0:0): fatal error, failed to attach to device (da0:umass-sim0:0:0:0): lost device - 0 outstanding (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Error 5, Retries exhausted (da0:umass-sim0:0:0:0): removing device entry Opened disk da0 - 5 Everything works normally, but the above events take about half a minute and bring the booting-up procedure to a halt while the retries finish. Is there a umass quirk I could enable to speed up whatever is happening here? usbconfig -d 0.5 dump_device_desc says: ugen0.5: USB TO IDE vendor 0x05e3 at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x bDeviceSubClass = 0x bDeviceProtocol = 0x bMaxPacketSize0 = 0x0040 idVendor = 0x05e3 idProduct = 0x0703 bcdDevice = 0x0032 iManufacturer = 0x no string iProduct = 0x0001 retrieving string failed iSerialNumber = 0x no string bNumConfigurations = 0x0001 Here's the corresponding dmesg output from 8.2-STABLE: ugen0.5: vendor 0x05e3 at usbus0 umass0: vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.32, addr 5 on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x umass0: Get Max Lun not supported (USB_ERR_STALLED) umass0:2:0:-1: Attached to scbus2 (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 1 0 0 ff 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error (probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0? (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error GEOM: new disk da0 pass2 at umass-sim0 bus 0 scbus2 target 0 lun 0 pass2: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device pass2: 1.000MB/s transfers (da0:umass-sim0:0:0:0): SCSI status error (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): CAM status: SCSI Status Error (da0:umass-sim0:0:0:0): SCSI status: Check Condition (da0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (da0:umass-sim0:0:0:0): Error 6, Unretryable error da0 at umass-sim0 bus 0 scbus2 target 0 lun 0 da0: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device da0: 1.000MB/s transfers da0: Attempt to query device size failed: NOT READY, Medium not present (da0:umass-sim0:0:0:0): SCSI status error (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): CAM status: SCSI Status Error (da0:umass-sim0:0:0:0): SCSI status: Check Condition (da0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (da0:umass-sim0:0:0:0): Error 6, Unretryable error Opened disk da0 - 6 (da0:umass-sim0:0:0:0): SCSI status error (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): CAM status: SCSI Status Error
Re: 9.0 umass problem
On Sunday 15 January 2012 18:35:59 George Mitchell wrote: I have a USB compact flash reader-writer which is normally connected to my computer all the time but rarely contains a compact flash card. Here is a snippet from a verbose dmesg with FreeBSD 9.0-RC3: ugen0.5: vendor 0x05e3 at usbus0 umass0: vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.32, addr 5 on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x4101 umass0:2:0:-1: Attached to scbus2 (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 1 0 0 ff 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error (probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0? ... (probe0:umass-sim0:0:0:0): AutoSense failed (probe0:umass-sim0:0:0:0): Error 5, Unretryable error GEOM: new disk da0 pass2 at umass-sim0 bus 0 scbus2 target 0 lun 0 pass2: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device pass2: 1.000MB/s transfers ... (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Error 5, Retries exhausted (da0:umass-sim0:0:0:0): got CAM status 0x4 (da0:umass-sim0:0:0:0): fatal error, failed to attach to device (da0:umass-sim0:0:0:0): lost device - 0 outstanding (da0:umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR (da0:umass-sim0:0:0:0): Error 5, Retries exhausted (da0:umass-sim0:0:0:0): removing device entry Opened disk da0 - 5 Everything works normally, but the above events take about half a minute and bring the booting-up procedure to a halt while the retries finish. Is there a umass quirk I could enable to speed up whatever is happening here? usbconfig -d 0.5 dump_device_desc says: ugen0.5: USB TO IDE vendor 0x05e3 at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x bDeviceSubClass = 0x bDeviceProtocol = 0x bMaxPacketSize0 = 0x0040 idVendor = 0x05e3 idProduct = 0x0703 bcdDevice = 0x0032 iManufacturer = 0x no string iProduct = 0x0001 retrieving string failed iSerialNumber = 0x no string bNumConfigurations = 0x0001 Here's the corresponding dmesg output from 8.2-STABLE: ugen0.5: vendor 0x05e3 at usbus0 umass0: vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.32, addr 5 on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x umass0: Get Max Lun not supported (USB_ERR_STALLED) umass0:2:0:-1: Attached to scbus2 (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 1 0 0 ff 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error (probe0:umass-sim0:0:0:0): Down reving Protocol Version from 2 to 0? (probe0:umass-sim0:0:0:0): SCSI status error (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI status: Check Condition (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (probe0:umass-sim0:0:0:0): Error 6, Unretryable error GEOM: new disk da0 pass2 at umass-sim0 bus 0 scbus2 target 0 lun 0 pass2: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device pass2: 1.000MB/s transfers (da0:umass-sim0:0:0:0): SCSI status error (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): CAM status: SCSI Status Error (da0:umass-sim0:0:0:0): SCSI status: Check Condition (da0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (da0:umass-sim0:0:0:0): Error 6, Unretryable error da0 at umass-sim0 bus 0 scbus2 target 0 lun 0 da0: Generic STORAGE DEVICE 1.00 Removable Direct Access SCSI-0 device da0: 1.000MB/s transfers da0: Attempt to query device size failed: NOT READY, Medium not present (da0:umass-sim0:0:0:0): SCSI status error (da0:umass-sim0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (da0:umass-sim0:0:0:0): CAM status: SCSI Status Error (da0:umass-sim0:0:0:0): SCSI status: Check Condition (da0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) (da0:umass-sim0:0:0:0): Error 6, Unretryable error Opened disk da0 - 6
Re: usb/164090: [umodem] [patch] Add sysctl with ucom unit number
On Sat, Jan 14, 2012 at 12:45, Hans Petter Selasky hsela...@c2i.net wrote: On Saturday 14 January 2012 10:51:07 Mykhaylo Yehorov wrote: On Fri, Jan 13, 2012 at 22:54, Hans Petter Selasky hsela...@c2i.net wrote: Hi, Could you patch ucom_set_pnpinfo_usb() instead, so that such a sysctl is created for all ucom devices, not only umodem? I guess it will be necessary to remove a sysctl oid from a parent sysctl tree before destroying ucom structures. It's would be better to do in ucom_detach() but now there is no a pointer to a parent device structure from there. Now all drivers that use ucom pass a pointer to parent softc structure to ucom_attach(). Is there any reason for this? May be it's would be more useful to pass a pointer to a parent device structure. Can you explain a bit more how you use this information in your scripts? I've got a gps receiver and a mobile phone that supported by the umodem driver. I can attach its in any order. So I use sysctl to generate gpsd and ppp configs with appropriate values of serial port. Ok, I see. And you cannot use the information passed through devd by ucom_set_pnpinfo_usb()?ucom_detach You are right. It's possible to use ucom_set_pnpinfo_usb(). In the attached patch an ucom sysctl oid will be added to a parent sysctl tree in ucom_set_pnpinfo_usb() and will be removed in ucom_detach(). -- Mykhaylo Yehorov --- sys/dev/usb/serial/usb_serial.h.orig2011-11-11 06:20:22.0 +0200 +++ sys/dev/usb/serial/usb_serial.h 2012-01-14 22:59:23.0 +0200 @@ -70,6 +70,7 @@ #include sys/tty.h #include sys/serial.h #include sys/fcntl.h +#include sys/sysctl.h /* Module interface related macros */ #defineUCOM_MODVER 1 @@ -134,6 +135,7 @@ struct usb_process sc_tq; uint32_t sc_unit; uint32_t sc_subunits; + struct sysctl_oid *sc_sysctl_dev_ucom; }; struct ucom_softc { --- sys/dev/usb/serial/usb_serial.c.orig2011-11-11 06:20:22.0 +0200 +++ sys/dev/usb/serial/usb_serial.c 2012-01-14 23:01:15.0 +0200 @@ -274,6 +274,8 @@ sc[subunit].sc_flag |= UCOM_FLAG_ATTACHED; } + ssc-sc_sysctl_dev_ucom = NULL; + DPRINTF(tp = %p, unit = %d, subunits = %d\n, sc-sc_tty, ssc-sc_unit, ssc-sc_subunits); @@ -292,6 +294,8 @@ if (ssc-sc_subunits == 0) return; /* not initialized */ + sysctl_remove_oid(ssc-sc_sysctl_dev_ucom, 1, 0); + usb_proc_drain(ssc-sc_tq); for (subunit = 0; subunit ssc-sc_subunits; subunit++) { @@ -433,6 +437,12 @@ if (usbd_set_pnpinfo(uaa-device, iface_index, buf) != 0) device_printf(dev, Could not set PNP info\n); + + if (ssc-sc_sysctl_dev_ucom == NULL) + ssc-sc_sysctl_dev_ucom = SYSCTL_ADD_INT(NULL, + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, ucom, CTLFLAG_RD, + ssc-sc_unit, -1, Attached ucom unit number); } static void ___ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org
Re: usb/164090: [umodem] [patch] Add sysctl with ucom unit number
The following reply was made to PR usb/164090; it has been noted by GNATS. From: Mykhaylo Yehorov yeho...@gmail.com To: Hans Petter Selasky hsela...@c2i.net Cc: freebsd-usb@freebsd.org, freebsd-gnats-sub...@freebsd.org Subject: Re: usb/164090: [umodem] [patch] Add sysctl with ucom unit number Date: Mon, 16 Jan 2012 00:26:53 +0200 --002354470e84513e6804b69898ff Content-Type: text/plain; charset=UTF-8 On Sat, Jan 14, 2012 at 12:45, Hans Petter Selasky hsela...@c2i.net wrote: On Saturday 14 January 2012 10:51:07 Mykhaylo Yehorov wrote: On Fri, Jan 13, 2012 at 22:54, Hans Petter Selasky hsela...@c2i.net wrote: Hi, Could you patch ucom_set_pnpinfo_usb() instead, so that such a sysctl is created for all ucom devices, not only umodem? I guess it will be necessary to remove a sysctl oid from a parent sysctl tree before destroying ucom structures. It's would be better to do in ucom_detach() but now there is no a pointer to a parent device structure from there. Now all drivers that use ucom pass a pointer to parent softc structure to ucom_attach(). Is there any reason for this? May be it's would be more useful to pass a pointer to a parent device structure. Can you explain a bit more how you use this information in your scripts? I've got a gps receiver and a mobile phone that supported by the umodem driver. I can attach its in any order. So I use sysctl to generate gpsd and ppp configs with appropriate values of serial port. Ok, I see. And you cannot use the information passed through devd by ucom_set_pnpinfo_usb()?ucom_detach You are right. It's possible to use ucom_set_pnpinfo_usb(). In the attached patch an ucom sysctl oid will be added to a parent sysctl tree in ucom_set_pnpinfo_usb() and will be removed in ucom_detach(). -- Mykhaylo Yehorov --002354470e84513e6804b69898ff Content-Type: text/plain; charset=US-ASCII; name=ucom-sysctl.diff.txt Content-Disposition: attachment; filename=ucom-sysctl.diff.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_gxgmbdqz0 LS0tIHN5cy9kZXYvdXNiL3NlcmlhbC91c2Jfc2VyaWFsLmgub3JpZwkyMDExLTExLTExIDA2OjIw OjIyLjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2Rldi91c2Ivc2VyaWFsL3VzYl9zZXJpYWwuaAky MDEyLTAxLTE0IDIyOjU5OjIzLjAwMDAwMDAwMCArMDIwMApAQCAtNzAsNiArNzAsNyBAQAogI2lu Y2x1ZGUgPHN5cy90dHkuaD4KICNpbmNsdWRlIDxzeXMvc2VyaWFsLmg+CiAjaW5jbHVkZSA8c3lz L2ZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgogCiAvKiBNb2R1bGUgaW50ZXJmYWNl IHJlbGF0ZWQgbWFjcm9zICovCiAjZGVmaW5lCVVDT01fTU9EVkVSCTEKQEAgLTEzNCw2ICsxMzUs NyBAQAogCXN0cnVjdCB1c2JfcHJvY2VzcyBzY190cTsKIAl1aW50MzJfdCBzY191bml0OwogCXVp bnQzMl90IHNjX3N1YnVuaXRzOworCXN0cnVjdCBzeXNjdGxfb2lkICpzY19zeXNjdGxfZGV2X3Vj b207CiB9OwogCiBzdHJ1Y3QgdWNvbV9zb2Z0YyB7Ci0tLSBzeXMvZGV2L3VzYi9zZXJpYWwvdXNi X3NlcmlhbC5jLm9yaWcJMjAxMS0xMS0xMSAwNjoyMDoyMi4wMDAwMDAwMDAgKzAyMDAKKysrIHN5 cy9kZXYvdXNiL3NlcmlhbC91c2Jfc2VyaWFsLmMJMjAxMi0wMS0xNCAyMzowMToxNS4wMDAwMDAw MDAgKzAyMDAKQEAgLTI3NCw2ICsyNzQsOCBAQAogCQlzY1tzdWJ1bml0XS5zY19mbGFnIHw9IFVD T01fRkxBR19BVFRBQ0hFRDsKIAl9CiAKKwlzc2MtPnNjX3N5c2N0bF9kZXZfdWNvbSA9IE5VTEw7 CisKIAlEUFJJTlRGKCJ0cCA9ICVwLCB1bml0ID0gJWQsIHN1YnVuaXRzID0gJWRcbiIsCiAJCXNj LT5zY190dHksIHNzYy0+c2NfdW5pdCwgc3NjLT5zY19zdWJ1bml0cyk7CiAKQEAgLTI5Miw2ICsy OTQsOCBAQAogCWlmIChzc2MtPnNjX3N1YnVuaXRzID09IDApCiAJCXJldHVybjsJCS8qIG5vdCBp bml0aWFsaXplZCAqLwogCisJc3lzY3RsX3JlbW92ZV9vaWQoc3NjLT5zY19zeXNjdGxfZGV2X3Vj b20sIDEsIDApOworCiAJdXNiX3Byb2NfZHJhaW4oJnNzYy0+c2NfdHEpOwogCiAJZm9yIChzdWJ1 bml0ID0gMDsgc3VidW5pdCA8IHNzYy0+c2Nfc3VidW5pdHM7IHN1YnVuaXQrKykgewpAQCAtNDMz LDYgKzQzNywxMiBAQAogICAgIAogICAgIGlmICh1c2JkX3NldF9wbnBpbmZvKHVhYS0+ZGV2aWNl LCBpZmFjZV9pbmRleCwgYnVmKSAhPSAwKQogCWRldmljZV9wcmludGYoZGV2LCAiQ291bGQgbm90 IHNldCBQTlAgaW5mb1xuIik7CisKKwlpZiAoc3NjLT5zY19zeXNjdGxfZGV2X3Vjb20gPT0gTlVM TCkKKwkJc3NjLT5zY19zeXNjdGxfZGV2X3Vjb20gPSBTWVNDVExfQUREX0lOVChOVUxMLAorCQkg ICAgU1lTQ1RMX0NISUxEUkVOKGRldmljZV9nZXRfc3lzY3RsX3RyZWUoZGV2KSksCisJCSAgICBP SURfQVVUTywgInVjb20iLCBDVExGTEFHX1JELAorCQkgICAgJnNzYy0+c2NfdW5pdCwgLTEsICJB dHRhY2hlZCB1Y29tIHVuaXQgbnVtYmVyIik7CiB9CiAKIHN0YXRpYyB2b2lkCg== --002354470e84513e6804b69898ff-- ___ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org