mirror of
https://git.proxmox.com/git/fwupd
synced 2026-01-27 00:37:19 +00:00
This also lets us remove the call to dfu_device_wait_for_replug() which was causing a deadlock due to unsafe main context usage. Splitting the code allows us to use the device list to watch for replug, without adding even more Jabra- specific plugin code to the DFU plugin. Looking at this with a 40,000ft view, the Jabra runtime really doesn't have much in common with DFU and the reason it was originally all lumped together was that the daemon couldn't "change" plugins between detach and update. It's unfortunate that we have to include a sleep() in the DFU code after the DFU probe, but this is specified by Jabra themselves. Attempting to open the device without waiting reboots the hub back into runtime firmware mode, so we can't even retry the failing setup action.
38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
DFU Support
|
|
===========
|
|
|
|
Introduction
|
|
------------
|
|
|
|
Device Firmware Update is a standard that allows USB devices to be easily and
|
|
safely updated by any operating system.
|
|
|
|
Firmware Format
|
|
---------------
|
|
|
|
The daemon will decompress the cabinet archive and extract a firmware blob in
|
|
DFU or DfuSe file format.
|
|
|
|
This plugin supports the following protocol IDs:
|
|
|
|
* org.usb.dfu
|
|
* com.st.dfuse
|
|
|
|
GUID Generation
|
|
---------------
|
|
|
|
These devices use the standard USB DeviceInstanceId values, e.g.
|
|
|
|
* `USB\VID_273F&PID_1003&REV_0001`
|
|
* `USB\VID_273F&PID_1003`
|
|
* `USB\VID_273F`
|
|
|
|
Quirk use
|
|
---------
|
|
This plugin uses the following plugin-specific quirks:
|
|
|
|
| Quirk | Description | Minimum fwupd version |
|
|
|------------------------|---------------------------------------------|-----------------------|
|
|
|`DfuFlags` | Optional quirks for a DFU device which doesn't follow the DFU 1.0 or 1.1 specification | 1.0.1|
|
|
|`DfuForceVersion` | Forces a specific DFU version for the hardware device. This is required if the device does not set, or sets incorrectly, items in the DFU functional descriptor. |1.0.1|
|