USB reset fails when using a LimeSDR Mini on FreeBSD

Hans Petter Selasky hps at selasky.org
Fri Jun 26 08:54:57 UTC 2020


Hi,

On 2020-06-26 09:37, Jan Behrens wrote:
> 1. Are there (intended or accidental/unwanted) API and/or behaviour
> differences between Linux/macOS's libusb. Are there certain
> considerations when building apps that use libusb? Is it wrong to call
> libusb_reset_device() in a driver? If yes, why? If no, what is the
> function used for?

Some devices are only tested using Windows, and I know that timing may 
affect how libusb_reset_device() works. My guess is that 
libusb_reset_device() should only be used in the case you've uploaded 
new firmware to the device, and that USB stack on the device has been 
rebooted. In FreeBSD there are a bunch of sysctl's which affect the 
libusb reset device behaviour:

hw.usb.timings.extra_power_up_time: 20
hw.usb.timings.resume_recovery: 50
hw.usb.timings.resume_wait: 50
hw.usb.timings.resume_delay: 250
hw.usb.timings.set_address_settle: 10
hw.usb.timings.port_resume_delay: 40
hw.usb.timings.port_powerup_delay: 300
hw.usb.timings.port_reset_recovery: 250
hw.usb.timings.port_root_reset_delay: 200
hw.usb.timings.port_reset_delay: 50

In order to figure out exactly what is wrong, you need to have a USB 
analyzer, capturing all USB communications on the USB cable.

--HPS


More information about the freebsd-usb mailing list