Unable to attach Garmin GPS (mass storage mode)

Bartosz Fabianowski freebsd at chillt.de
Thu Apr 12 07:35:38 UTC 2018


I have had this problem for a couple of years. Whenever I attach my 
Garmin GPS in mass storage mode, no da device is created and the GPS 
freezes completely. I have to take out a battery to reset it. I am 
getting this with 10-STABLE and 11-STABLE, with a Garmin eTrex Touch 20 
and a Garmin Oregon 700. I get the same symptoms in all cases.

The eTrex Touch 20 went through a number of firmware updates. It once 
had a firmware that supported mass storage mode only. When I plugged it 
into my FreeBSD machine, it worked correctly. After I upgraded to a 
newer firmware that gives me a choice between mass storage and MTP, the 
above symptoms started. So it is some change to the Garmin USB stack 
that causes this. Needless to say, the device works correctly with 
Windows and Linux - they seem to have tested that.

I have ehci and xhci in my kernel. If I comment out xhci, the device is 
not recognized at all - no dmesg output and the device thinks it has 
been plugged into a charger. With xhci, I get the following output 
before the device freezes:

Apr 12 09:17:02 tawaki kernel: usb_alloc_device: set address 2 failed 
(USB_ERR_IOERROR, ignored)
Apr 12 09:17:04 tawaki kernel: usbd_setup_device_desc: getting device 
descriptor at addr 2 failed, USB_ERR_IOERROR
Apr 12 09:17:04 tawaki kernel: usbd_req_re_enumerate: addr=2, set 
address failed! (USB_ERR_IOERROR, ignored)
Apr 12 09:17:06 tawaki kernel: usbd_setup_device_desc: getting device 
descriptor at addr 2 failed, USB_ERR_IOERROR
Apr 12 09:17:07 tawaki kernel: usbd_req_re_enumerate: addr=2, set 
address failed! (USB_ERR_IOERROR, ignored)
Apr 12 09:17:09 tawaki kernel: usbd_setup_device_desc: getting device 
descriptor at addr 2 failed, USB_ERR_IOERROR
Apr 12 09:17:09 tawaki kernel: usbd_req_re_enumerate: addr=2, set 
address failed! (USB_ERR_IOERROR, ignored)
Apr 12 09:17:10 tawaki kernel: usbd_setup_device_desc: getting device 
descriptor at addr 2 failed, USB_ERR_IOERROR
Apr 12 09:17:11 tawaki kernel: usbd_req_re_enumerate: addr=2, set 
address failed! (USB_ERR_IOERROR, ignored)
Apr 12 09:17:13 tawaki kernel: usbd_setup_device_desc: getting device 
descriptor at addr 2 failed, USB_ERR_IOERROR
Apr 12 09:17:13 tawaki kernel: ugen0.2: <Unknown > at usbus0 (disconnected)
Apr 12 09:17:13 tawaki kernel: uhub_reattach_port: could not allocate 
new device

The USB controllers are:

xhci0 at pci0:0:20:0:      class=0x0c0330 card=0x1818103c chip=0x1e318086 
rev=0x04 hdr=0x00
     vendor     = 'Intel Corporation'
     device     = '7 Series/C210 Series Chipset Family USB xHCI Host 
Controller'
     class      = serial bus
     subclass   = USB
ehci0 at pci0:0:26:0:      class=0x0c0320 card=0x1818103c chip=0x1e2d8086 
rev=0x04 hdr=0x00
     vendor     = 'Intel Corporation'
     device     = '7 Series/C216 Chipset Family USB Enhanced Host 
Controller'
     class      = serial bus
     subclass   = USB


More information about the freebsd-usb mailing list